diff --git a/pagure/__init__.py b/pagure/__init__.py
index 2475236..71a8e92 100644
--- a/pagure/__init__.py
+++ b/pagure/__init__.py
@@ -757,7 +757,6 @@ urlpattern = re.compile(urlregex)
# Import the application
import pagure.ui.app
-import pagure.ui.admin
import pagure.ui.fork
import pagure.ui.groups
if APP.config.get('ENABLE_TICKETS', True):
diff --git a/pagure/templates/admin_index.html b/pagure/templates/admin_index.html
deleted file mode 100644
index aecb740..0000000
--- a/pagure/templates/admin_index.html
+++ /dev/null
@@ -1,50 +0,0 @@
-{% extends "master.html" %}
-
-{% block title %}Home{% endblock %}
-{% set tag = "admin" %}
-
-
-{% block content %}
-
-
Admin section
-
-
-
-{% endblock %}
diff --git a/pagure/templates/master.html b/pagure/templates/master.html
index cfc56b4..333a736 100644
--- a/pagure/templates/master.html
+++ b/pagure/templates/master.html
@@ -39,11 +39,6 @@
Browse
- {% if admin %}
-
- Admin
-
- {% endif %}
{% if config.get('ENABLE_NEW_PROJECTS', True) %}
diff --git a/pagure/ui/admin.py b/pagure/ui/admin.py
deleted file mode 100644
index a420bfc..0000000
--- a/pagure/ui/admin.py
+++ /dev/null
@@ -1,93 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
- (c) 2014-2016 - Copyright Red Hat Inc
-
- Authors:
- Pierre-Yves Chibon
-
-"""
-
-from functools import wraps
-
-import flask
-
-import pagure.exceptions
-import pagure.forms
-import pagure.lib
-import pagure.lib.git
-from pagure import (APP, SESSION, generate_user_key_files,
- is_admin, admin_session_timedout)
-
-
-def admin_required(function):
- """ Flask decorator to retrict access to admins of pagure.
- """
- @wraps(function)
- def decorated_function(*args, **kwargs):
- """ Decorated function, actually does the work. """
- if admin_session_timedout():
- return flask.redirect(
- flask.url_for('auth_login', next=flask.request.url))
- elif not is_admin():
- flask.flash('Access restricted', 'error')
- return flask.redirect(flask.url_for('.index'))
-
- return function(*args, **kwargs)
- return decorated_function
-
-
-# Application
-
-
-@APP.route('/admin/')
-@APP.route('/admin')
-@admin_required
-def admin_index():
- """ Front page of the admin section of the application.
- """
- form = pagure.forms.ConfirmationForm()
-
- return flask.render_template(
- 'admin_index.html', form=form,
- )
-
-
-@APP.route('/admin/gitolite', methods=['POST'])
-@admin_required
-def admin_generate_acl():
- """ Regenerate the gitolite ACL file. """
- form = pagure.forms.ConfirmationForm()
- if form.validate_on_submit():
- try:
- pagure.lib.git.generate_gitolite_acls()
- flask.flash('Gitolite ACLs updated')
- except pagure.exceptions.PagureException as err:
- flask.flash(str(err), 'error')
- return flask.redirect(flask.url_for('admin_index'))
-
-
-@APP.route('/admin/ssh', methods=['POST'])
-@admin_required
-def admin_refresh_ssh():
- """ Regenerate the user key files. """
- form = pagure.forms.ConfirmationForm()
- if form.validate_on_submit():
- try:
- generate_user_key_files()
- pagure.lib.git.generate_gitolite_acls()
- flask.flash('User key files regenerated')
- except pagure.exceptions.PagureException as err:
- flask.flash(str(err), 'error')
- return flask.redirect(flask.url_for('admin_index'))
-
-
-@APP.route('/admin/hook_token', methods=['POST'])
-@admin_required
-def admin_generate_hook_token():
- """ Regenerate the hook_token for each projects in the DB. """
- form = pagure.forms.ConfirmationForm()
- if form.validate_on_submit():
- pagure.lib.generate_hook_token(SESSION)
- flask.flash('Hook token all re-generated')
- return flask.redirect(flask.url_for('admin_index'))
diff --git a/tests/test_pagure_flask_ui_admin.py b/tests/test_pagure_flask_ui_admin.py
deleted file mode 100644
index c7edf98..0000000
--- a/tests/test_pagure_flask_ui_admin.py
+++ /dev/null
@@ -1,255 +0,0 @@
-# -*- coding: utf-8 -*-
-
-"""
- (c) 2015-2016 - Copyright Red Hat Inc
-
- Authors:
- Pierre-Yves Chibon
-
-"""
-
-__requires__ = ['SQLAlchemy >= 0.8']
-import pkg_resources
-
-import json
-import unittest
-import shutil
-import sys
-import os
-
-import pygit2
-from mock import patch
-
-sys.path.insert(0, os.path.join(os.path.dirname(
- os.path.abspath(__file__)), '..'))
-
-import pagure.lib
-import tests
-
-
-class PagureFlaskAdmintests(tests.Modeltests):
- """ Tests for flask admin controller of pagure """
-
- def setUp(self):
- """ Set up the environnment, ran before every tests. """
- super(PagureFlaskAdmintests, self).setUp()
-
- pagure.APP.config['TESTING'] = True
- pagure.SESSION = self.session
- pagure.ui.SESSION = self.session
- pagure.ui.app.SESSION = self.session
- pagure.ui.filters.SESSION = self.session
- pagure.ui.repo.SESSION = self.session
- pagure.ui.admin.SESSION = self.session
-
- pagure.APP.config['GIT_FOLDER'] = self.path
- pagure.APP.config['TICKETS_FOLDER'] = os.path.join(
- self.path, 'tickets')
- pagure.APP.config['DOCS_FOLDER'] = os.path.join(
- self.path, 'docs')
- self.app = pagure.APP.test_client()
-
- def test_admin_index(self):
- """ Test the admin_index endpoint. """
-
- output = self.app.get('/admin')
- self.assertEqual(output.status_code, 302)
-
- user = tests.FakeUser()
- with tests.user_set(pagure.APP, user):
- output = self.app.post('/admin', follow_redirects=True)
- self.assertEqual(output.status_code, 404)
- self.assertIn(
- '\n Access restricted',
- output.data)
-
- user.username = 'foo'
- with tests.user_set(pagure.APP, user):
- output = self.app.get('/admin', follow_redirects=True)
- self.assertEqual(output.status_code, 200)
- self.assertIn(
- '\n Access restricted',
- output.data)
-
- user = tests.FakeUser(
- username='pingou',
- groups=pagure.APP.config['ADMIN_GROUP'])
- with tests.user_set(pagure.APP, user):
- output = self.app.get('/admin', follow_redirects=True)
- self.assertEqual(output.status_code, 200)
- self.assertTrue('Admin section
' in output.data)
- self.assertTrue('Re-generate gitolite ACLs file' in output.data)
- self.assertTrue(
- 'Re-generate user ssh key files' in output.data)
-
- @patch('pagure.lib.git.write_gitolite_acls')
- def test_admin_generate_acl(self, wga):
- """ Test the admin_generate_acl endpoint. """
- wga.return_value = True
-
- output = self.app.get('/admin/gitolite')
- self.assertEqual(output.status_code, 404)
-
- output = self.app.post('/admin/gitolite')
- self.assertEqual(output.status_code, 302)
-
- user = tests.FakeUser()
- with tests.user_set(pagure.APP, user):
- output = self.app.post('/admin/gitolite', follow_redirects=True)
- self.assertEqual(output.status_code, 404)
- self.assertIn(
- '\n Access restricted',
- output.data)
-
- user.username = 'foo'
- with tests.user_set(pagure.APP, user):
- output = self.app.post('/admin/gitolite', follow_redirects=True)
- self.assertEqual(output.status_code, 200)
- self.assertIn(
- '\n Access restricted',
- output.data)
-
- user = tests.FakeUser(
- username='pingou',
- groups=pagure.APP.config['ADMIN_GROUP'])
- with tests.user_set(pagure.APP, user):
- output = self.app.post('/admin/gitolite', follow_redirects=True)
- self.assertEqual(output.status_code, 200)
- self.assertTrue('Admin section
' in output.data)
- self.assertTrue('Re-generate gitolite ACLs file' in output.data)
- self.assertTrue(
- 'Re-generate user ssh key files' in output.data)
- self.assertFalse(
- 'Gitolite ACLs updated'
- in output.data)
-
- csrf_token = output.data.split(
- 'name="csrf_token" type="hidden" value="')[1].split('">')[0]
-
- data = {'csrf_token': csrf_token}
- output = self.app.post(
- '/admin/gitolite', data=data, follow_redirects=True)
- self.assertEqual(output.status_code, 200)
- self.assertTrue('Admin section
' in output.data)
- self.assertTrue('Re-generate gitolite ACLs file' in output.data)
- self.assertTrue(
- 'Re-generate user ssh key files' in output.data)
- self.assertTrue(
- '\n Gitolite ACLs updated'
- in output.data)
-
- @patch('pagure.generate_user_key_files')
- def test_admin_refresh_ssh(self, gakf):
- """ Test the admin_refresh_ssh endpoint. """
- gakf.return_value = True
-
- output = self.app.get('/admin/ssh')
- self.assertEqual(output.status_code, 404)
-
- output = self.app.post('/admin/ssh')
- self.assertEqual(output.status_code, 302)
-
- user = tests.FakeUser()
- with tests.user_set(pagure.APP, user):
- output = self.app.post('/admin/ssh', follow_redirects=True)
- self.assertEqual(output.status_code, 404)
- self.assertIn(
- '\n Access restricted',
- output.data)
-
- user.username = 'foo'
- with tests.user_set(pagure.APP, user):
- output = self.app.post('/admin/ssh', follow_redirects=True)
- self.assertEqual(output.status_code, 200)
- self.assertIn(
- '\n Access restricted',
- output.data)
-
- user = tests.FakeUser(
- username='pingou',
- groups=pagure.APP.config['ADMIN_GROUP'])
- with tests.user_set(pagure.APP, user):
- output = self.app.post('/admin/ssh', follow_redirects=True)
- self.assertEqual(output.status_code, 200)
- self.assertTrue('Admin section
' in output.data)
- self.assertTrue('Re-generate gitolite ACLs file' in output.data)
- self.assertTrue(
- 'Re-generate user ssh key files' in output.data)
- self.assertFalse(
- 'Authorized file updated'
- in output.data)
-
- csrf_token = output.data.split(
- 'name="csrf_token" type="hidden" value="')[1].split('">')[0]
-
- data = {'csrf_token': csrf_token}
- output = self.app.post(
- '/admin/ssh', data=data, follow_redirects=True)
- self.assertEqual(output.status_code, 200)
- self.assertTrue('Admin section
' in output.data)
- self.assertTrue('Re-generate gitolite ACLs file' in output.data)
- self.assertTrue(
- 'Re-generate user ssh key files' in output.data)
- self.assertTrue(
- '\n User key files regenerated'
- in output.data)
-
- def test_admin_generate_hook_token(self):
- """ Test the admin_generate_hook_token endpoint. """
-
- output = self.app.get('/admin/hook_token')
- self.assertEqual(output.status_code, 404)
-
- output = self.app.post('/admin/hook_token')
- self.assertEqual(output.status_code, 302)
-
- user = tests.FakeUser()
- with tests.user_set(pagure.APP, user):
- output = self.app.post('/admin/hook_token', follow_redirects=True)
- self.assertEqual(output.status_code, 404)
- self.assertIn(
- '\n Access restricted',
- output.data)
-
- user.username = 'foo'
- with tests.user_set(pagure.APP, user):
- output = self.app.post('/admin/hook_token', follow_redirects=True)
- self.assertEqual(output.status_code, 200)
- self.assertIn(
- '\n Access restricted',
- output.data)
-
- user = tests.FakeUser(
- username='pingou',
- groups=pagure.APP.config['ADMIN_GROUP'])
- with tests.user_set(pagure.APP, user):
- output = self.app.post('/admin/hook_token', follow_redirects=True)
- self.assertEqual(output.status_code, 200)
- self.assertTrue('Admin section
' in output.data)
- self.assertTrue('Re-generate gitolite ACLs file' in output.data)
- self.assertTrue(
- 'Re-generate user ssh key files' in output.data)
- self.assertTrue(
- 'Re-generate hook-token for every projects' in output.data)
-
- csrf_token = output.data.split(
- 'name="csrf_token" type="hidden" value="')[1].split('">')[0]
- data = {'csrf_token': csrf_token}
-
- output = self.app.post(
- '/admin/hook_token', data=data, follow_redirects=True)
- self.assertEqual(output.status_code, 200)
- self.assertTrue('Admin section
' in output.data)
- self.assertTrue('Re-generate gitolite ACLs file' in output.data)
- self.assertTrue(
- 'Re-generate user ssh key files' in output.data)
- self.assertTrue(
- 'Re-generate hook-token for every projects' in output.data)
- self.assertTrue(
- '\n Hook token all re-generated'
- in output.data)
-
-
-if __name__ == '__main__':
- SUITE = unittest.TestLoader().loadTestsFromTestCase(PagureFlaskAdmintests)
- unittest.TextTestRunner(verbosity=2).run(SUITE)