Ejemplo n.º 1
0
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'}
Ejemplo n.º 2
0
 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('/')
Ejemplo n.º 3
0
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'}
Ejemplo n.º 4
0
    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]
Ejemplo n.º 5
0
    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]