diff --git a/pagure/default_config.py b/pagure/default_config.py index f454b32..e855ee7 100644 --- a/pagure/default_config.py +++ b/pagure/default_config.py @@ -43,6 +43,9 @@ ENABLE_NEW_PROJECTS = True # Enables / Disables deleting projects on this pagure instance ENABLE_DEL_PROJECTS = True +# Enables / Disables managing access to the repos +ENABLE_USER_MNGT = True + # The URL to use to clone the git repositories. GIT_URL_SSH = 'ssh://git@pagure.org/' GIT_URL_GIT = 'git://pagure.org/' diff --git a/pagure/templates/master.html b/pagure/templates/master.html index ecc4985..884d6fe 100644 --- a/pagure/templates/master.html +++ b/pagure/templates/master.html @@ -49,9 +49,11 @@
  • Users
  • + {% if config.get('ENABLE_USER_MNGT', True) %}
  • Groups
  • + {% endif %} {% if admin %}
  • Admin diff --git a/pagure/templates/settings.html b/pagure/templates/settings.html index 877fdbe..fa76eb0 100644 --- a/pagure/templates/settings.html +++ b/pagure/templates/settings.html @@ -217,6 +217,7 @@ +{% if config.get('ENABLE_USER_MNGT', True) %}

    Users and Groups

    @@ -269,6 +270,7 @@ {% endfor %}
    +{% endif %} {% if plugins %} diff --git a/pagure/ui/groups.py b/pagure/ui/groups.py index 7e3c5ca..a4d16e2 100644 --- a/pagure/ui/groups.py +++ b/pagure/ui/groups.py @@ -24,6 +24,9 @@ import pagure.lib.git @pagure.APP.route('/groups') def group_lists(): ''' List all the groups associated with all the projects. ''' + if not pagure.APP.config.get('ENABLE_USER_MNGT', True): + flask.abort(404) + group_type = 'user' if pagure.is_admin(): group_type = None @@ -52,6 +55,8 @@ def group_lists(): @pagure.APP.route('/group/', methods=['GET', 'POST']) def view_group(group): ''' Displays information about this group. ''' + if not pagure.APP.config.get('ENABLE_USER_MNGT', True): + flask.abort(404) group_type = 'user' if pagure.is_admin(): @@ -113,6 +118,9 @@ def view_group(group): def group_user_delete(user, group): """ Delete an user from a certain group """ + if not pagure.APP.config.get('ENABLE_USER_MNGT', True): + flask.abort(404) + form = pagure.forms.ConfirmationForm() if form.validate_on_submit(): @@ -152,6 +160,9 @@ def group_user_delete(user, group): def group_delete(group): """ Delete a certain group """ + if not pagure.APP.config.get('ENABLE_USER_MNGT', True): + flask.abort(404) + form = pagure.forms.ConfirmationForm() if form.validate_on_submit(): group_obj = pagure.lib.search_groups( @@ -187,6 +198,9 @@ def group_delete(group): def add_group(): """ Endpoint to create groups """ + if not pagure.APP.config.get('ENABLE_USER_MNGT', True): + flask.abort(404) + user = pagure.lib.search_user( pagure.SESSION, username=flask.g.fas_user.username) if not user: # pragma: no cover diff --git a/pagure/ui/repo.py b/pagure/ui/repo.py index 44878fb..50ff49b 100644 --- a/pagure/ui/repo.py +++ b/pagure/ui/repo.py @@ -1074,6 +1074,9 @@ def remove_user(repo, userid, username=None): def add_user(repo, username=None): """ Add the specified user from the project. """ + if not pagure.APP.config.get('ENABLE_USER_MNGT', True): + flask.abort(404) + if admin_session_timedout(): if flask.request.method == 'POST': flask.flash('Action canceled, try it again', 'error') @@ -1130,6 +1133,9 @@ def add_user(repo, username=None): def add_group_project(repo, username=None): """ Add the specified group from the project. """ + if not pagure.APP.config.get('ENABLE_USER_MNGT', True): + flask.abort(404) + if admin_session_timedout(): if flask.request.method == 'POST': flask.flash('Action canceled, try it again', 'error')