Exemple #1
0
 def request_access(self, pkg_id):
     # If the user is logged in show the access request button
     pkg = Package.get(pkg_id)
     if c.user and not user_has_role(c.userobj, 'admin', pkg) and\
                     not user_has_role(c.userobj, 'editor', pkg) and\
                     not c.userobj.sysadmin and\
                     not config.get('smtp_server', False):
         following = KataAccessRequest.is_requesting(c.userobj.id, pkg_id)
         if not following:
             return snippet('snippets/access_button.html',
                        obj_id=pkg_id,
                        following=following)
     return ''
    def test_give_default_permissions(self):
        model.repo.new_revision()
        anna = model.Package(name=u'annakarenina')
        war = model.Package(name=u'warandpeace')
        warauthor1 = model.User(name=u'warauthor1')
        warauthor2 = model.User(name=u'warauthor2')
        for obj in [anna, war, warauthor1, warauthor2]:
            model.Session.add(obj)
        model.repo.commit_and_remove()

        # make changes
        anna = model.Package.by_name(u'annakarenina')
        rev = model.repo.new_revision() 
        rev.author = u'warauthor1'
        anna.title = u'title1'
        model.repo.commit_and_remove()

        anna = model.Package.by_name(u'annakarenina')
        rev = model.repo.new_revision() 
        rev.author = u'warauthor2'
        anna.title = u'title2'
        model.repo.commit_and_remove()

        model.give_all_packages_default_user_roles()
        model.Session.commit()

        anna = model.Package.by_name(u'annakarenina')
        war = model.Package.by_name(u'warandpeace')
        warauthor1 = model.User.by_name(u'warauthor1')
        warauthor2 = model.User.by_name(u'warauthor2')
        visitor = model.User.by_name(model.PSEUDO_USER__VISITOR)
        assert model.user_has_role(visitor, model.Role.EDITOR, anna)
        assert model.user_has_role(visitor, model.Role.EDITOR, war)
        assert not model.user_has_role(warauthor1, model.Role.ADMIN, war)
        assert model.user_has_role(warauthor1, model.Role.ADMIN, anna)
        assert model.user_has_role(warauthor2, model.Role.ADMIN, anna)
Exemple #3
0
    def test_give_default_permissions(self):
        model.repo.new_revision()
        anna = model.Package(name=u'annakarenina')
        war = model.Package(name=u'warandpeace')
        warauthor1 = model.User(name=u'warauthor1')
        warauthor2 = model.User(name=u'warauthor2')
        for obj in [anna, war, warauthor1, warauthor2]:
            model.Session.add(obj)
        model.repo.commit_and_remove()

        # make changes
        anna = model.Package.by_name(u'annakarenina')
        rev = model.repo.new_revision()
        rev.author = u'warauthor1'
        anna.title = u'title1'
        model.repo.commit_and_remove()

        anna = model.Package.by_name(u'annakarenina')
        rev = model.repo.new_revision()
        rev.author = u'warauthor2'
        anna.title = u'title2'
        model.repo.commit_and_remove()

        model.give_all_packages_default_user_roles()
        model.Session.commit()

        anna = model.Package.by_name(u'annakarenina')
        war = model.Package.by_name(u'warandpeace')
        warauthor1 = model.User.by_name(u'warauthor1')
        warauthor2 = model.User.by_name(u'warauthor2')
        visitor = model.User.by_name(model.PSEUDO_USER__VISITOR)
        assert model.user_has_role(visitor, model.Role.EDITOR, anna)
        assert model.user_has_role(visitor, model.Role.EDITOR, war)
        assert not model.user_has_role(warauthor1, model.Role.ADMIN, war)
        assert model.user_has_role(warauthor1, model.Role.ADMIN, anna)
        assert model.user_has_role(warauthor2, model.Role.ADMIN, anna)