Add a new config setting to universe_wsgi.ini: new_user_dataset_access_role_default_private.

When set to True, new users will have default dataset access permissions for histories set to their Private role. Default is False (original behavior); datasets are left as public.

Resolves ticket #111.
This commit is contained in:
Daniel Blankenberg
2009-07-30 11:05:03 -04:00
parent 4fd35615fb
commit 427ba6dab5
4 changed files with 11 additions and 3 deletions
+1
View File
@@ -46,6 +46,7 @@ class Configuration( object ):
self.require_login = string_as_bool( kwargs.get( "require_login", "False" ) )
self.allow_user_creation = string_as_bool( kwargs.get( "allow_user_creation", "True" ) )
self.allow_user_deletion = string_as_bool( kwargs.get( "allow_user_deletion", "False" ) )
self.new_user_dataset_access_role_default_private = string_as_bool( kwargs.get( "new_user_dataset_access_role_default_private", "False" ) )
self.template_path = resolve_path( kwargs.get( "template_path", "templates" ), self.root )
self.template_cache = resolve_path( kwargs.get( "template_cache_path", "database/compiled_templates" ), self.root )
self.local_job_queue_workers = int( kwargs.get( "local_job_queue_workers", "5" ) )
+6 -2
View File
@@ -206,12 +206,16 @@ class GalaxyRBACAgent( RBACAgent ):
else:
return None
return role
def user_set_default_permissions( self, user, permissions={}, history=False, dataset=False, bypass_manage_permission=False ):
def user_set_default_permissions( self, user, permissions={}, history=False, dataset=False, bypass_manage_permission=False, default_access_private = False ):
# bypass_manage_permission is used to change permissions of datasets in a userless history when logging in
if user is None:
return None
if not permissions:
permissions = { self.permitted_actions.DATASET_MANAGE_PERMISSIONS : [ self.get_private_user_role( user, auto_create=True ) ] }
#default permissions
permissions = { self.permitted_actions.DATASET_MANAGE_PERMISSIONS : [ self.get_private_user_role( user, auto_create=True ) ] }
#new_user_dataset_access_role_default_private is set as True in config file
if default_access_private:
permissions[ self.permitted_actions.DATASET_ACCESS ] = permissions.values()[ 0 ]
# Delete all of the current default permissions for the user
for dup in user.default_permissions:
dup.delete()
+1 -1
View File
@@ -157,7 +157,7 @@ class User( BaseController ):
user.flush()
trans.app.security_agent.create_private_user_role( user )
# We set default user permissions, before we log in and set the default history permissions
trans.app.security_agent.user_set_default_permissions( user )
trans.app.security_agent.user_set_default_permissions( user, default_access_private = trans.app.config.new_user_dataset_access_role_default_private )
# The handle_user_login() method has a call to the history_set_default_permissions() method
# (needed when logging in with a history), user needs to have default permissions set before logging in
trans.handle_user_login( user )
+3
View File
@@ -156,6 +156,9 @@ use_interactive = True
# Can an admin user delete user accounts?
#allow_user_deletion = False
# Should default dataset access permissions be private for new users; default is False (datasets are public)
new_user_dataset_access_role_default_private = False
# ---- Job Execution --------------------------------------------------------
# Number of concurrent jobs to run (local job runner)