def admin_role_create(context,data_dict): ''' Creates a new admin role for the given user :param user_name: the name of the user who gets editor role :returns: on success True otherwise False :rtype: string ''' if( check_access('admin_role_create',context,data_dict) == True): user_name = data_dict.get('user_name') log.info('Creating admin role for user: %r', user_name) try: user = model.User.get(user_name) authz.add_user_to_role(user,u'admin',model.System()) model.Session.commit() return {'success': True} except: return{'success' : False, 'error' : traceback.print_exc()} else: return{'success' : False, 'msg' : 'authentication failed'}
def unlock_access(self, id): q = model.Session.query(KataAccessRequest) q = q.filter_by(id=id) req = q.first() if req: user = User.get(req.user_id) pkg = Package.get(req.pkg_id) add_user_to_role(user, 'editor', pkg) url = h.url_for(controller='package', action='read', id=req.pkg_id) h.flash_success(_("%s now has editor rights to package %s" % (user.name, pkg.name))) req.delete() meta.Session.commit() redirect(url) else: h.flash_error(_("No such request found!")) redirect('/')
def anon_editor_role_create(context, data_dict): ''' Creates a new reader role for the given user :param user_name: the name of the user who gets editor role :returns: on success True otherwise False :rtype: string ''' if (check_access('anon_editor_role_create', context, data_dict) == True): user_name = data_dict.get('user_name') log.info('Creating reader role for user: %r', user_name) try: user = model.User.get(user_name) authz.add_user_to_role(user, u'anon_editor', model.System()) model.Session.commit() return {'success': True} except: return {'success': False, 'error': traceback.print_exc()} else: return {'success': False, 'msg': 'authentication failed'}
def test_top_package_owners(self): cath = model.User(name=u'Cath') bob = model.User(name=u'Bob') jill = model.User(name=u'Jill') nate = model.User(name=u'Nate') model.Session.add_all((cath, bob, jill, nate)) model.repo.commit_and_remove() cath = model.User.by_name(u'Cath') bob = model.User.by_name(u'Bob') jill = model.User.by_name(u'Jill') nate = model.User.by_name(u'Nate') # add some package admins for pkg_name, user_names in { u'gils': (u'Cath', u'Bob', u'Jill'), u'us-gov-images': (u'Bob', u'Jill'), u'usa-courts-gov': [u'Jill'] }.items(): for user_name in user_names: user = model.User.by_name(user_name) package = model.Package.by_name(pkg_name) assert user, user_name assert package, pkg_name add_user_to_role(user, model.authz.Role.ADMIN, package) # add some decoy packages with editors user = model.User.by_name(u'Nate') for pkg_name in (u'usa-courts-gov', u'se-opengov'): package = model.Package.by_name(pkg_name) assert package add_user_to_role(user, model.authz.Role.EDITOR, package) # add some decoy groups with admins user = model.User.by_name(u'Nate') for group_name in (u'penguin', u'ukgov'): group = model.Group.by_name(group_name) assert group, group_name add_user_to_role(user, model.authz.Role.ADMIN, group) model.Session.commit() res = Stats().top_package_owners() assert len(res) == 3, res assert res[0] == (model.User.by_name(u'Jill'), 3), res[0] assert res[1] == (model.User.by_name(u'Bob'), 2), res[1] assert res[2] == (model.User.by_name(u'Cath'), 1), res[2]
def test_top_package_owners(self): cath = model.User(name=u'Cath') bob = model.User(name=u'Bob') jill = model.User(name=u'Jill') nate = model.User(name=u'Nate') model.Session.add_all((cath, bob, jill, nate)) model.repo.commit_and_remove() cath = model.User.by_name(u'Cath') bob = model.User.by_name(u'Bob') jill = model.User.by_name(u'Jill') nate = model.User.by_name(u'Nate') # add some package admins for pkg_name, user_names in {u'gils': (u'Cath', u'Bob', u'Jill'), u'us-gov-images': (u'Bob', u'Jill'), u'usa-courts-gov': [u'Jill']}.items(): for user_name in user_names: user = model.User.by_name(user_name) package = model.Package.by_name(pkg_name) assert user, user_name assert package, pkg_name add_user_to_role(user, model.authz.Role.ADMIN, package) # add some decoy packages with editors user = model.User.by_name(u'Nate') for pkg_name in (u'usa-courts-gov', u'se-opengov'): package = model.Package.by_name(pkg_name) assert package add_user_to_role(user, model.authz.Role.EDITOR, package) # add some decoy groups with admins user = model.User.by_name(u'Nate') for group_name in (u'penguin', u'ukgov'): group = model.Group.by_name(group_name) assert group, group_name add_user_to_role(user, model.authz.Role.ADMIN, group) model.Session.commit() res = Stats().top_package_owners() assert len(res) == 3, res assert res[0] == (model.User.by_name(u'Jill'), 3), res[0] assert res[1] == (model.User.by_name(u'Bob'), 2), res[1] assert res[2] == (model.User.by_name(u'Cath'), 1), res[2]