diff options
Diffstat (limited to 'libbe')
-rw-r--r-- | libbe/util/wsgi.py | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/libbe/util/wsgi.py b/libbe/util/wsgi.py index 62b0428..fc460bc 100644 --- a/libbe/util/wsgi.py +++ b/libbe/util/wsgi.py @@ -544,41 +544,6 @@ class WSGI_AppObject (WSGI_Object): return self.default_handler(environ, start_response) -class AdminApp (WSGI_AppObject, WSGI_DataObject, WSGI_Middleware): - """WSGI middleware for managing users - - Changing passwords, usernames, etc. - """ - def __init__(self, users=None, setting='be-auth', *args, **kwargs): - handler = ('^admin/?', self.admin) - if 'urls' not in kwargs: - kwargs['urls'] = [handler] - else: - kwargs.urls.append(handler) - super(AdminApp, self).__init__(*args, **kwargs) - self.users = users - self.setting = setting - - def admin(self, environ, start_response): - if not '{}.user'.format(self.setting) in environ: - realm = envirion.get('{}.realm'.format(self.setting)) - raise Unauthenticated(realm=realm) - uname = environ.get('{}.user'.format(self.setting)) - user = self.users[uname] - data = self.post_data(environ) - source = 'post' - name = self.data_get_string( - data, 'name', default=None, source=source) - if name is not None: - self.users[uname].set_name(name) - password = self.data_get_string( - data, 'password', default=None, source=source) - if password is not None: - self.users[uname].set_password(password) - self.users.save() - return self.ok_response(environ, start_response, None) - - class SilentRequestHandler (wsgiref.simple_server.WSGIRequestHandler): def log_message(self, format, *args): pass @@ -939,92 +904,6 @@ if libbe.TESTING: self.failUnless('child_app' in log, log) self.failUnless('ValueError: Dummy Error' in log, log) - - class AdminAppTestCase (WSGITestCase): - def setUp(self): - WSGITestCase.setUp(self) - self.users = Users() - self.users.add_user( - User('Aladdin', 'Big Al', password='open sesame')) - self.users.add_user( - User('guest', 'Guest', password='guestpass')) - def child_app(environ, start_response): - pass - app = AdminApp( - app=child_app, users=self.users, logger=self.logger) - app = AuthenticationApp( - app=app, realm='Dummy Realm', users=self.users, - logger=self.logger) - self.app = UppercaseHeaderApp(app=app, logger=self.logger) - - def basic_auth(self, uname, password): - """HTTP basic authorization string""" - return 'Basic {}'.format( - '{}:{}'.format(uname, password).encode('base64')) - - def test_new_name(self): - self.getURL( - self.app, '/admin/', method='POST', - data_dict={'name':'Prince Al'}, - environ={'HTTP_Authorization': - self.basic_auth('Aladdin', 'open sesame')}) - self.failUnless(self.status == '200 OK', self.status) - self.failUnless(self.response_headers == [], - self.response_headers) - self.failUnless(self.exc_info == None, self.exc_info) - self.failUnless(self.users['Aladdin'].name == 'Prince Al', - self.users['Aladdin'].name) - self.failUnless(self.users.changed == True, - self.users.changed) - - def test_new_password(self): - self.getURL( - self.app, '/admin/', method='POST', - data_dict={'password':'New Pass'}, - environ={'HTTP_Authorization': - self.basic_auth('Aladdin', 'open sesame')}) - self.failUnless(self.status == '200 OK', self.status) - self.failUnless(self.response_headers == [], - self.response_headers) - self.failUnless(self.exc_info == None, self.exc_info) - self.failUnless((self.users['Aladdin'].passhash == - self.users['Aladdin'].hash('New Pass')), - self.users['Aladdin'].passhash) - self.failUnless(self.users.changed == True, - self.users.changed) - - def test_guest_name(self): - self.getURL( - self.app, '/admin/', method='POST', - data_dict={'name':'SPAM'}, - environ={'HTTP_Authorization': - self.basic_auth('guest', 'guestpass')}) - self.failUnless(self.status.startswith('403 '), self.status) - self.failUnless(self.response_headers == [ - ('Content-Type', 'text/plain')], - self.response_headers) - self.failUnless(self.exc_info == None, self.exc_info) - self.failUnless(self.users['guest'].name == 'Guest', - self.users['guest'].name) - self.failUnless(self.users.changed == False, - self.users.changed) - - def test_guest_password(self): - self.getURL( - self.app, '/admin/', method='POST', - data_dict={'password':'SPAM'}, - environ={'HTTP_Authorization': - self.basic_auth('guest', 'guestpass')}) - self.failUnless(self.status.startswith('403 '), self.status) - self.failUnless(self.response_headers == [ - ('Content-Type', 'text/plain')], - self.response_headers) - self.failUnless(self.exc_info == None, self.exc_info) - self.failUnless(self.users['guest'].name == 'Guest', - self.users['guest'].name) - self.failUnless(self.users.changed == False, - self.users.changed) - unitsuite =unittest.TestLoader().loadTestsFromModule(sys.modules[__name__]) suite = unittest.TestSuite([unitsuite, doctest.DocTestSuite()]) |