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")
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")