Exemple #1
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")
Exemple #2
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")