示例#1
0
def repo_settings(request, repo_base, repo):
  try:
    login = get_login(request)
    res = DataHubManager.has_repo_privilege(login, repo_base, repo, 'CREATE')
    
    if not (res and res['tuples'][0][0]):
      raise Exception('Access denied. Missing required privileges.')
    
    manager = DataHubManager(user=repo_base)
    res = manager.list_collaborators(repo_base, repo)
    
    collaborators = [(c[0].split('=')[0]).strip() for c in res['tuples']]
    collaborators = filter(lambda x: x!='' and x!=repo_base, collaborators)

    res = {
        'login': get_login(request),
        'repo_base': repo_base,
        'repo': repo,
        'collaborators': collaborators}
    res.update(csrf(request))
    return render_to_response("repo-settings.html", res)
  except Exception, e:
    return HttpResponse(json.dumps(
        {'error': str(e)}),
        content_type="application/json")
示例#2
0
def user(request, repo_base=None):
    username = request.user.get_username()

    if not repo_base:
        repo_base = username

    manager = DataHubManager(user=username, repo_base=repo_base)
    repos = manager.list_repos()

    visible_repos = []

    for repo in repos:
        collaborators = manager.list_collaborators(repo)
        collaborators = filter(
            lambda x: x != '' and x != repo_base, collaborators)

        visible_repos.append({
            'name': repo,
            'owner': repo_base,
            'public': True if 'PUBLIC' in collaborators else False,
            'collaborators': collaborators,
        })

    collaborator_repos = manager.list_collaborator_repos()

    return render_to_response("user-browse.html", {
        'login': username,
        'repo_base': repo_base,
        'repos': visible_repos,
        'collaborator_repos': collaborator_repos})
示例#3
0
def repo_settings(request, repo_base, repo):
    try:
        login = get_login(request)
        res = DataHubManager.has_repo_privilege(login, repo_base, repo,
                                                'CREATE')

        if not (res and res['tuples'][0][0]):
            raise Exception('Access denied. Missing required privileges.')

        manager = DataHubManager(user=repo_base)
        res = manager.list_collaborators(repo_base, repo)

        collaborators = [(c[0].split('=')[0]).strip() for c in res['tuples']]
        collaborators = filter(lambda x: x != '' and x != repo_base,
                               collaborators)

        res = {
            'login': get_login(request),
            'repo_base': repo_base,
            'repo': repo,
            'collaborators': collaborators
        }
        res.update(csrf(request))
        return render_to_response("repo-settings.html", res)
    except Exception, e:
        return HttpResponse(json.dumps({'error': str(e)}),
                            content_type="application/json")
示例#4
0
def user(request, repo_base=None):
    username = request.user.get_username()

    if not repo_base:
        repo_base = username

    manager = DataHubManager(user=username, repo_base=repo_base)
    repos = manager.list_repos()

    visible_repos = []

    for repo in repos:
        collaborators = manager.list_collaborators(repo)
        collaborators = filter(lambda x: x != '' and x != repo_base,
                               collaborators)

        visible_repos.append({
            'name': repo,
            'owner': repo_base,
            'public': True if 'PUBLIC' in collaborators else False,
            'collaborators': collaborators,
        })

    collaborator_repos = manager.list_collaborator_repos()

    return render_to_response(
        "user-browse.html", {
            'login': username,
            'repo_base': repo_base,
            'repos': visible_repos,
            'collaborator_repos': collaborator_repos
        })
示例#5
0
def user(request, repo_base):
    try:
        login = get_login(request)

        res = DataHubManager.has_base_privilege(login, repo_base, 'CONNECT')
        if not (res and res['tuples'][0][0]):
            raise Exception('Access denied. Missing required privileges.')

        manager = DataHubManager(user=repo_base)
        res = manager.list_repos()
        repos = [t[0] for t in res['tuples']]

        visible_repos = []

        for repo in repos:
            res = manager.list_collaborators(repo_base, repo)

            collaborators = [(c[0].split('=')[0]).strip()
                             for c in res['tuples']]
            collaborators = filter(lambda x: x != '' and x != repo_base,
                                   collaborators)

            if login not in collaborators and login != repo_base:
                continue

            visible_repos.append({
                'name':
                repo,
                'owner':
                repo_base,
                'public':
                True if 'PUBLIC' in collaborators else False,
                'collaborators':
                collaborators,
                'collaborators_str':
                ', '.join(collaborators),
                'num_collaborators':
                len(collaborators)
            })

        return render_to_response(
            "user-browse.html", {
                'login': get_login(request),
                'repo_base': repo_base,
                'repos': visible_repos
            })

    except Exception, e:
        return HttpResponse(json.dumps({'error': str(e)}),
                            content_type="application/json")
示例#6
0
def repo_settings(request, repo_base, repo):
    '''
    returns the settings page for a repo.
    '''
    username = request.user.get_username()
    manager = DataHubManager(user=username, repo_base=repo_base)
    collaborators = manager.list_collaborators(repo)

    # remove the current user from the collaborator list
    collaborators = filter(lambda x: x != '' and x !=
                           username, collaborators)

    res = {
        'login': username,
        'repo_base': repo_base,
        'repo': repo,
        'collaborators': collaborators}
    res.update(csrf(request))

    return render_to_response("repo-settings.html", res)
示例#7
0
def repo_settings(request, repo_base, repo):
    '''
    returns the settings page for a repo.
    '''
    username = request.user.get_username()
    manager = DataHubManager(user=username, repo_base=repo_base)
    collaborators = manager.list_collaborators(repo)

    # remove the current user from the collaborator list
    collaborators = filter(lambda x: x != '' and x != username, collaborators)

    res = {
        'login': username,
        'repo_base': repo_base,
        'repo': repo,
        'collaborators': collaborators
    }
    res.update(csrf(request))

    return render_to_response("repo-settings.html", res)
示例#8
0
def user(request, repo_base):
  try:
    login = get_login(request)

    res = DataHubManager.has_base_privilege(login, repo_base, 'CONNECT')
    if not (res and res['tuples'][0][0]):
      raise Exception('Access denied. Missing required privileges.')

    manager = DataHubManager(user=repo_base)
    res = manager.list_repos()
    repos = [t[0] for t in res['tuples']]

    visible_repos = []
    
    for repo in repos:
      res = manager.list_collaborators(repo_base, repo)

      collaborators = [(c[0].split('=')[0]).strip() for c in res['tuples']]
      collaborators = filter(lambda x: x!='' and x!=repo_base, collaborators)

      if login not in collaborators and login != repo_base:
        continue

      visible_repos.append({
          'name':repo,
          'owner': repo_base,
          'public': True if 'PUBLIC' in collaborators else False,
          'collaborators': collaborators,
          'collaborators_str': ', '.join(collaborators),
          'num_collaborators': len(collaborators)
      })
    
    return render_to_response("user-browse.html", {
        'login': get_login(request),
        'repo_base': repo_base,
        'repos': visible_repos})    
  
  except Exception, e:
    return HttpResponse(json.dumps(
        {'error': str(e)}),
        content_type="application/json")