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)