mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 03:12:25 -05:00 
			
		
		
		
	require account approval flags
This commit is contained in:
		
					parent
					
						
							
								ad61584d7a
							
						
					
				
			
			
				commit
				
					
						b3d5587415
					
				
			
		
					 4 changed files with 43 additions and 6 deletions
				
			
		|  | @ -120,9 +120,15 @@ func main() { | |||
| 			&cli.BoolFlag{ | ||||
| 				Name:    flagNames.AccountsOpenRegistration, | ||||
| 				Usage:   "Allow anyone to submit an account signup request. If false, server will be invite-only.", | ||||
| 				Value:   false, | ||||
| 				Value:   true, | ||||
| 				EnvVars: []string{envNames.AccountsOpenRegistration}, | ||||
| 			}, | ||||
| 			&cli.BoolFlag{ | ||||
| 				Name:    flagNames.AccountsRequireApproval, | ||||
| 				Usage:   "Do account signups require approval by an admin or moderator before user can log in? If false, new registrations will be automatically approved.", | ||||
| 				Value:   true, | ||||
| 				EnvVars: []string{envNames.AccountsRequireApproval}, | ||||
| 			}, | ||||
| 		}, | ||||
| 		Commands: []*cli.Command{ | ||||
| 			{ | ||||
|  |  | |||
|  | @ -14,10 +14,9 @@ | |||
| #  You should have received a copy of the GNU Affero General Public License | ||||
| #  along with this program.  If not, see <http://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| ################### | ||||
| ##### CONFIG ###### | ||||
| ################### | ||||
| 
 | ||||
| ########################### | ||||
| ##### GENERAL CONFIG ###### | ||||
| ########################### | ||||
| # String. Log level to use throughout the application. Must be lower-case. | ||||
| # Options: ["debug","info","warn","error","fatal"] | ||||
| # Default: "info" | ||||
|  | @ -39,6 +38,9 @@ host: "localhost" | |||
| # Default: "https" | ||||
| protocol: "https" | ||||
| 
 | ||||
| ############################ | ||||
| ##### DATABASE CONFIG ###### | ||||
| ############################ | ||||
| # Config pertaining to the Gotosocial database connection | ||||
| db: | ||||
|   # String. Database type. | ||||
|  | @ -72,9 +74,26 @@ db: | |||
|   # Default: "postgres" | ||||
|   database: "postgres" | ||||
| 
 | ||||
| ############################### | ||||
| ##### WEB TEMPLATE CONFIG ##### | ||||
| ############################### | ||||
| # Config pertaining to templating of web pages/email notifications and the like | ||||
| template: | ||||
|   # String. Directory from which gotosocial will attempt to load html templates (.tmpl files). | ||||
|   # Examples: ["/some/absolute/path/", "./relative/path/", "../../some/weird/path/"] | ||||
|   # Default: "./web/template/" | ||||
|   baseDir: "./web/template/" | ||||
| 
 | ||||
| ########################### | ||||
| ##### ACCOUNTS CONFIG ##### | ||||
| ########################### | ||||
| # Config pertaining to creation and maintenance of accounts on the server, as well as defaults for new accounts. | ||||
| accounts: | ||||
|   # Bool. Do we want people to be able to just submit sign up requests, or do we want invite only? | ||||
|   # Options: [true, false] | ||||
|   # Default: true | ||||
|   openRegistration: true | ||||
|   # Bool. Do sign up requests require approval from an admin/moderator before an account can sign in/use the server? | ||||
|   # Options: [true, false] | ||||
|   # Default: true | ||||
|   requireApproval: true | ||||
|  |  | |||
|  | @ -18,7 +18,12 @@ | |||
| 
 | ||||
| package config | ||||
| 
 | ||||
| // AccountsConfig contains configuration to do with creating accounts, new registrations, and defaults. | ||||
| type AccountsConfig struct { | ||||
| 	// Do we want people to be able to just submit sign up requests, or do we want invite only? | ||||
| 	OpenRegistration bool | ||||
| 	OpenRegistration bool `yaml:"openRegistration"` | ||||
| 	// Do sign up requests require approval from an admin/moderator? | ||||
| 	RequireApproval bool `yaml:"requireApproval"` | ||||
| 	// Do we require a reason for a sign up or is an empty string OK? | ||||
| 	ReasonRequired bool `yaml:"reasonRequired"` | ||||
| } | ||||
|  |  | |||
|  | @ -142,6 +142,10 @@ func (c *Config) ParseCLIFlags(f KeyedFlags) { | |||
| 	if f.IsSet(fn.AccountsOpenRegistration) { | ||||
| 		c.AccountsConfig.OpenRegistration = f.Bool(fn.AccountsOpenRegistration) | ||||
| 	} | ||||
| 
 | ||||
| 	if f.IsSet(fn.AccountsRequireApproval) { | ||||
| 		c.AccountsConfig.RequireApproval = f.Bool(fn.AccountsRequireApproval) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| // KeyedFlags is a wrapper for any type that can store keyed flags and give them back. | ||||
|  | @ -169,6 +173,7 @@ type Flags struct { | |||
| 	DbDatabase               string | ||||
| 	TemplateBaseDir          string | ||||
| 	AccountsOpenRegistration string | ||||
| 	AccountsRequireApproval  string | ||||
| } | ||||
| 
 | ||||
| // GetFlagNames returns a struct containing the names of the various flags used for | ||||
|  | @ -188,6 +193,7 @@ func GetFlagNames() Flags { | |||
| 		DbDatabase:               "db-database", | ||||
| 		TemplateBaseDir:          "template-basedir", | ||||
| 		AccountsOpenRegistration: "accounts-open-registration", | ||||
| 		AccountsRequireApproval:  "accounts-require-approval", | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
|  | @ -208,5 +214,6 @@ func GetEnvNames() Flags { | |||
| 		DbDatabase:               "GTS_DB_DATABASE", | ||||
| 		TemplateBaseDir:          "GTS_TEMPLATE_BASEDIR", | ||||
| 		AccountsOpenRegistration: "GTS_ACCOUNTS_OPEN_REGISTRATION", | ||||
| 		AccountsRequireApproval:  "GTS_ACCOUNTS_REQUIRE_APPROVAL", | ||||
| 	} | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue