In this commit I made it so that each deployment can have custom settings for

which privileges are given to users when they are intiated. These settings are
modified in mediagoblin.ini.
This commit is contained in:
tilly-Q 2013-11-29 14:29:56 -05:00
parent e36bb0ee18
commit 1c7875a18d
4 changed files with 13 additions and 6 deletions

View File

@ -35,6 +35,7 @@ allow_reporting = true
## If you want the terms of service displayed, you can uncomment this ## If you want the terms of service displayed, you can uncomment this
# show_tos = true # show_tos = true
user_privilege_scheme= "uploader,commenter,reporter"
[storage:queuestore] [storage:queuestore]
base_dir = %(here)s/user_dev/media/queue base_dir = %(here)s/user_dev/media/queue

View File

@ -25,7 +25,6 @@ def create_user(register_form):
results = hook_runall("auth_create_user", register_form) results = hook_runall("auth_create_user", register_form)
return results[0] return results[0]
def extra_validation(register_form): def extra_validation(register_form):
from mediagoblin.auth.tools import basic_extra_validation from mediagoblin.auth.tools import basic_extra_validation

View File

@ -132,11 +132,7 @@ def register_user(request, register_form):
user = auth.create_user(register_form) user = auth.create_user(register_form)
# give the user the default privileges # give the user the default privileges
default_privileges = [ user.all_privileges += get_default_privileges(user)
Privilege.query.filter(Privilege.privilege_name==u'commenter').first(),
Privilege.query.filter(Privilege.privilege_name==u'uploader').first(),
Privilege.query.filter(Privilege.privilege_name==u'reporter').first()]
user.all_privileges += default_privileges
user.save() user.save()
# log the user in # log the user in
@ -151,6 +147,14 @@ def register_user(request, register_form):
return None return None
def get_default_privileges(user):
instance_privilege_scheme = mg_globals.app_config['user_privilege_scheme']
default_privileges = [Privilege.query.filter(
Privilege.privilege_name==privilege_name).first()
for privilege_name in instance_privilege_scheme.split(',')]
default_privileges = [privilege for privilege in default_privileges if not privilege == None]
return default_privileges
def check_login_simple(username, password): def check_login_simple(username, password):
user = auth.get_user(username=username) user = auth.get_user(username=username)

View File

@ -89,6 +89,9 @@ upload_limit = integer(default=None)
# Max file size (in Mb) # Max file size (in Mb)
max_file_size = integer(default=None) max_file_size = integer(default=None)
# Privilege scheme
user_privilege_scheme = string(default="")
[jinja2] [jinja2]
# Jinja2 supports more directives than the minimum required by mediagoblin. # Jinja2 supports more directives than the minimum required by mediagoblin.
# This setting allows users creating custom templates to specify a list of # This setting allows users creating custom templates to specify a list of