mirror of
				https://github.com/filebrowser/filebrowser.git
				synced 2025-10-31 17:23:09 +00:00 
			
		
		
		
	 870b5b4079
			
		
	
	
		870b5b4079
		
	
	
	
	
		
			
			License: MIT Signed-off-by: Henrique Dias <hacdias@gmail.com> Former-commit-id: bb60ec81f56f5d761ef76b2c1e26bbe83210f434 [formerly b28f83c65e0934e138a1710549f52e0f66a158e0] [formerly 7138a3215ceb144afa0ea45be2315f30b052109f [formerly 72069207c6bb0664c7b270096f6916cce76ebeb1]] Former-commit-id: 0fb7ae6353f786edd93a9166141bfa446dd3dbf9 [formerly 5cb07e8c96a7cfca1aec5843123e1abc4ca8578a] Former-commit-id: 914c0348516f072a9ccce4e105327feaaddb4cc0
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package cmd
 | |
| 
 | |
| import (
 | |
| 	"regexp"
 | |
| 
 | |
| 	"github.com/filebrowser/filebrowser/v2/rules"
 | |
| 	"github.com/filebrowser/filebrowser/v2/settings"
 | |
| 	"github.com/filebrowser/filebrowser/v2/users"
 | |
| 	"github.com/spf13/cobra"
 | |
| )
 | |
| 
 | |
| func init() {
 | |
| 	rulesCmd.AddCommand(rulesAddCmd)
 | |
| 	rulesAddCmd.Flags().BoolP("allow", "a", false, "indicates this is an allow rule")
 | |
| 	rulesAddCmd.Flags().BoolP("regex", "r", false, "indicates this is a regex rule")
 | |
| }
 | |
| 
 | |
| var rulesAddCmd = &cobra.Command{
 | |
| 	Use:   "add <path|expression>",
 | |
| 	Short: "Add a global rule or user rule",
 | |
| 	Long:  `Add a global rule or user rule.`,
 | |
| 	Args:  cobra.ExactArgs(1),
 | |
| 	Run: python(func(cmd *cobra.Command, args []string, d pythonData) {
 | |
| 		allow := mustGetBool(cmd.Flags(), "allow")
 | |
| 		regex := mustGetBool(cmd.Flags(), "regex")
 | |
| 		exp := args[0]
 | |
| 
 | |
| 		if regex {
 | |
| 			regexp.MustCompile(exp)
 | |
| 		}
 | |
| 
 | |
| 		rule := rules.Rule{
 | |
| 			Allow: allow,
 | |
| 			Regex: regex,
 | |
| 		}
 | |
| 
 | |
| 		if regex {
 | |
| 			rule.Regexp = &rules.Regexp{Raw: exp}
 | |
| 		} else {
 | |
| 			rule.Path = exp
 | |
| 		}
 | |
| 
 | |
| 		user := func(u *users.User) {
 | |
| 			u.Rules = append(u.Rules, rule)
 | |
| 			err := d.store.Users.Save(u)
 | |
| 			checkErr(err)
 | |
| 		}
 | |
| 
 | |
| 		global := func(s *settings.Settings) {
 | |
| 			s.Rules = append(s.Rules, rule)
 | |
| 			err := d.store.Settings.Save(s)
 | |
| 			checkErr(err)
 | |
| 		}
 | |
| 
 | |
| 		runRules(d.store, cmd, user, global)
 | |
| 	}, pythonConfig{}),
 | |
| }
 |