예제 #1
0
 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')
예제 #2
0
    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)
예제 #3
0
    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)
예제 #4
0
 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')
예제 #5
0
 def test_not_authenticated_none(self):
     user = self.create_user(email='*****@*****.**')
     assert not user_has_project_permission(user, 'other:project-a')
예제 #6
0
 def test_global_admin(self):
     user = self.create_user(email='*****@*****.**', is_admin=True)
     assert user_has_project_permission(user, 'other:project-a')
예제 #7
0
 def test_not_authenticated_none(self):
     user = self.create_user(email='*****@*****.**')
     assert not user_has_project_permission(user, 'other:project-a')
예제 #8
0
 def test_global_admin(self):
     user = self.create_user(email='*****@*****.**', is_admin=True)
     assert user_has_project_permission(user, 'other:project-a')