def test_authenticated_exact(self): user = self.create_user(email='*****@*****.**', project_permissions=[ 'someproject', 'other:project-a', 'otherproject' ]) assert user_has_project_permission(user, 'other:project-a')
def post(self): user = get_current_user() if user is None: return error('Not logged in.', http_code=401) args = self.post_parser.parse_args() slug = str(args.slug or args.name.replace(' ', '-').lower()) if not user_has_project_permission(user, slug): return error( 'User does not have permission to create a project with slug {}.' .format(slug), http_code=403) match = Project.query.filter(Project.slug == slug, ).first() if match: return error('Project with slug {} already exists.'.format(slug), http_code=400) repository = Repository.get(args.repository) if repository is None: return error('Repository with url {} does not exist.'.format( args.repository), http_code=400) project = Project( name=args.name, slug=slug, repository=repository, ) db.session.add(project) db.session.commit() return self.respond(project)
def post(self): user = get_current_user() if user is None: return error('Not logged in.', http_code=401) args = self.post_parser.parse_args() slug = str(args.slug or args.name.replace(' ', '-').lower()) if not user_has_project_permission(user, slug): return error('User does not have permission to create a project with slug {}.'.format(slug), http_code=403) match = Project.query.filter( Project.slug == slug, ).first() if match: return error('Project with slug {} already exists.'.format(slug), http_code=400) repository = Repository.get(args.repository) if repository is None: return error('Repository with url {} does not exist.'.format(args.repository), http_code=400) project = Project( name=args.name, slug=slug, repository=repository, ) db.session.add(project) db.session.commit() return self.respond(project)
def test_not_authenticated_pattern(self): user = self.create_user(email='*****@*****.**', project_permissions=['someproject*', 'otherproject']) assert not user_has_project_permission(user, 'other:project-a')
def test_not_authenticated_none(self): user = self.create_user(email='*****@*****.**') assert not user_has_project_permission(user, 'other:project-a')
def test_global_admin(self): user = self.create_user(email='*****@*****.**', is_admin=True) assert user_has_project_permission(user, 'other:project-a')