This is an automated email from the ASF dual-hosted git repository. gcruz pushed a commit to branch gc/8459 in repository https://gitbox.apache.org/repos/asf/allura.git
commit b60661543de263bb1a895f411acf0e4ca8abf9de Author: Guillermo Cruz <[email protected]> AuthorDate: Wed Aug 31 10:48:45 2022 -0600 [#8459] aded configurable option to prevent installation of wiki tool on new user profiles --- Allura/allura/lib/app_globals.py | 3 +++ Allura/allura/lib/plugin.py | 17 +++++++++-------- Allura/allura/model/project.py | 6 +++--- Allura/development.ini | 3 +++ 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/Allura/allura/lib/app_globals.py b/Allura/allura/lib/app_globals.py index 6f8c642a7..4ec209205 100644 --- a/Allura/allura/lib/app_globals.py +++ b/Allura/allura/lib/app_globals.py @@ -583,6 +583,9 @@ class Globals: def user_profile_urls_with_profile_path(self): return asbool(config['user_profile_url_with_profile_path']) + def user_profile_disabled_tools(self): + return aslist(config.get('user_prefs.disabled_tools',''), sep=',') + def app_static(self, resource, app=None): base = config['static.url_base'] app = app or c.app diff --git a/Allura/allura/lib/plugin.py b/Allura/allura/lib/plugin.py index 30bf65286..cd0c361de 100644 --- a/Allura/allura/lib/plugin.py +++ b/Allura/allura/lib/plugin.py @@ -1122,14 +1122,15 @@ class ProjectRegistrationProvider: if user_project: # Allow for special user-only tools p._extra_tool_status = ['user'] - # add user project informative text to home - from forgewiki import model as WM - home_app = p.app_instance('wiki') - home_page = WM.Page.query.get(app_config_id=home_app.config._id) - home_page.text = ("This is the personal project of %s." - " This project is created automatically during user registration" - " as an easy place to store personal data that doesn't need its own" - " project such as cloned repositories.") % user.display_name + if 'wiki' not in g.user_profile_disabled_tools(): + # add user project informative text to home + from forgewiki import model as WM + home_app = p.app_instance('wiki') + home_page = WM.Page.query.get(app_config_id=home_app.config._id) + home_page.text = ("This is the personal project of %s." + " This project is created automatically during user registration" + " as an easy place to store personal data that doesn't need its own" + " project such as cloned repositories.") % user.display_name # clear the RoleCache for the user so this project will # be picked up by user.my_projects() diff --git a/Allura/allura/model/project.py b/Allura/allura/model/project.py index d384b5c01..c0a010f5e 100644 --- a/Allura/allura/model/project.py +++ b/Allura/allura/model/project.py @@ -1058,9 +1058,9 @@ class Project(SearchIndexable, MappedClass, ActivityNode, ActivityObject): if apps is None: apps = [] if is_user_project: - apps += [('Wiki', 'wiki', 'Wiki'), - ('profile', 'profile', 'Profile'), - ] + if 'wiki' not in g.user_profile_disabled_tools(): + apps.append(('Wiki', 'wiki', 'Wiki')) + apps.append(('profile', 'profile', 'Profile')) apps += [ ('admin', 'admin', 'Admin'), ('search', 'search', 'Search'), diff --git a/Allura/development.ini b/Allura/development.ini index 9787444fa..4ddbc0c1b 100644 --- a/Allura/development.ini +++ b/Allura/development.ini @@ -250,6 +250,9 @@ user_prefs_storage.ldap.fields.display_name = cn ; Limit the number of emails a user can claim. user_prefs.maximum_claimed_emails = 20 +; Disabled tools by default when creating a user profile +; user_prefs.disabled_tools = + ; Control the order of sections on the user profile page user_profile_sections.order = activity, personal-data, skills, social, tools, projects
