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')