mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
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:
@@ -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" ) )
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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 )
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user