def setup(): auth = YubiAuth() for user in auth.query_users(): auth.get_user(user['id']).delete() auth.commit() auth.create_user('user1', 'pass1') auth.create_user('user2', 'pass2') auth.commit() del auth
class YubiAuthUsers(CollectionApp): base_url = '/auth/users' item_name = 'Users' caption = 'YubiAuth Users' columns = ['Username', 'YubiKeys'] template = 'auth/list' def __init__(self): from yubiauth.core.model import User as _user self.User = _user self.auth = YubiAuth() def __enter__(self): return self def __exit__(self, type, value, traceback): del self.auth def _size(self): return self.auth.session.query(self.User).count() def _get(self, offset=0, limit=None): users = self.auth.session.query(self.User).order_by(self.User.name) \ .offset(offset).limit(limit) return map(lambda user: { 'id': user.id, 'label': user.name, 'Username': '******' % (user.id, user.name), 'YubiKeys': ', '.join(user.yubikeys.keys()) }, users) def _labels(self, ids): users = self.auth.session.query(self.User.name) \ .filter(self.User.id.in_(map(int, ids))).all() return map(lambda x: x[0], users) def _delete(self, ids): self.auth.session.query(self.User) \ .filter(self.User.id.in_(map(int, ids))).delete('fetch') self.auth.commit() def create(self, request): return self.render_forms(request, [CreateUserForm(self.auth)], success_msg='User created!') def show(self, request): id = int(request.path_info_pop()) user = self.auth.get_user(id) if 'unassign' in request.params: del user.yubikeys[request.params['unassign']] self.auth.commit() msg = None if 'password' in request.params: msg = 'Password set!' return self.render_forms(request, [SetPasswordForm(user, self.auth), AssignYubiKeyForm(user, self.auth)], 'auth/user', user=user, success_msg=msg)
def setup(): auth = YubiAuth() for user in auth.query_users(): auth.get_user(user['id']).delete() auth.commit() del auth
class YubiAuthUsers(CollectionApp): base_url = '/auth/users' item_name = 'Users' caption = 'YubiAuth Users' columns = ['Username', 'YubiKeys'] template = 'auth/list' def __init__(self): from yubiauth.core.model import User as _user self.User = _user self.auth = YubiAuth() def __enter__(self): return self def __exit__(self, type, value, traceback): del self.auth def _size(self): return self.auth.session.query(self.User).count() def _get(self, offset=0, limit=None): users = self.auth.session.query(self.User).order_by(self.User.name) \ .offset(offset).limit(limit) return map( lambda user: { 'id': user.id, 'label': user.name, 'Username': '******' % (user.id, user.name), 'YubiKeys': ', '.join(user.yubikeys.keys()) }, users) def _labels(self, ids): users = self.auth.session.query(self.User.name) \ .filter(self.User.id.in_(map(int, ids))).all() return map(lambda x: x[0], users) def _delete(self, ids): self.auth.session.query(self.User) \ .filter(self.User.id.in_(map(int, ids))).delete('fetch') self.auth.commit() def create(self, request): return self.render_forms(request, [CreateUserForm(self.auth)], success_msg='User created!') def show(self, request): id = int(request.path_info_pop()) user = self.auth.get_user(id) if 'unassign' in request.params: del user.yubikeys[request.params['unassign']] self.auth.commit() msg = None if 'password' in request.params: msg = 'Password set!' return self.render_forms(request, [ SetPasswordForm(user, self.auth), AssignYubiKeyForm(user, self.auth) ], 'auth/user', user=user, success_msg=msg)