Esempio n. 1
0
    def post(self, request):
        user = request.user
        parentNode = self.CONTENT.get('parent')
        text = self.CONTENT.get('text')
        reType = self.CONTENT.get('type')
        description = self.CONTENT.get('description')
        for node in parentNode.node_set.all():
            if node.text == text:
                raise ErrorResponse(status.HTTP_400_BAD_REQUEST, 'Duplicated name under ' + parentNode.text)

        site, parentRelativePath = parentNode.get_site_and_path()
        nodeRelativePath = os.path.join(parentRelativePath, text)
        nodeFolder = os.path.join(parentNode.get_full_path(), text)
        
        if(reType == 'R'):
            if(User.has_perm(user, 'repo.add_repository', None)):
                p2_folder = p2.Folder(nodeFolder)
                p2_folder.addRepositoryFolder()
                repo = dbhandler.create_repository(text, nodeRelativePath, description, site, parentNode)
                node = repo.node
            else:
                raise PermissionDenied
        if(reType == 'C'):
            if(User.has_perm(user, 'repo.add_composite', None)):
                p2_folder = p2.Folder(nodeFolder)
                p2_folder.addCompositeFolder()
                com = dbhandler.create_composite(text, nodeRelativePath, site, parentNode)
                node = com.node
            else:
                raise PermissionDenied
        return node.as_node()
Esempio n. 2
0
def create_repository(name, path, site):
    description='Created by system automatically'
    repo = dbhandler.create_repository(name, path, description, site)
    
    admin = User.objects.get(pk=1)
    if not site.hidden:
        p2_repo = p2.Repo(repo.get_full_path())
        message, commit_id = p2_repo.update()
        if message:
            op = repo.operation_set.create(message=message, type='S', committer=admin)
            op.commit_id = commit_id
            op.save()
    else:
        repo.operation_set.create(message='Init repository in hidden site', type='S', committer=admin)
    return repo.node
Esempio n. 3
0
def create_repository(name, path, site):
    description = 'Created by system automatically'
    repo = dbhandler.create_repository(name, path, description, site)

    admin = User.objects.get(pk=1)
    if not site.hidden:
        p2_repo = p2.Repo(repo.get_full_path())
        message, commit_id = p2_repo.update()
        if message:
            op = repo.operation_set.create(message=message,
                                           type='S',
                                           committer=admin)
            op.commit_id = commit_id
            op.save()
    else:
        repo.operation_set.create(message='Init repository in hidden site',
                                  type='S',
                                  committer=admin)
    return repo.node