diff --git a/seahub/base/accounts.py b/seahub/base/accounts.py index 95f4ec0513..49d9617f54 100644 --- a/seahub/base/accounts.py +++ b/seahub/base/accounts.py @@ -94,21 +94,18 @@ class UserManager(object): return user class UserPermissions(object): + def __init__(self, user): + self.user = user + def can_add_repo(self): - """ - """ return True def can_add_group(self): - """ - """ return True def can_view_org(self): - """ - """ if MULTI_TENANCY: - return True + return True if self.user.org is not None else False return False if CLOUD_MODE else True @@ -126,7 +123,7 @@ class User(object): def __init__(self, email): self.username = email self.email = email - self.permissions = UserPermissions() + self.permissions = UserPermissions(self) def __unicode__(self): return self.username diff --git a/seahub/views/sysadmin.py b/seahub/views/sysadmin.py index a6ffd98e7f..9b6370a14d 100644 --- a/seahub/views/sysadmin.py +++ b/seahub/views/sysadmin.py @@ -698,10 +698,30 @@ def sys_group_admin(request): @login_required @sys_staff_required def sys_org_admin(request): - orgs = ccnet_threaded_rpc.get_all_orgs(-1, -1) + # Make sure page request is an int. If not, deliver first page. + try: + current_page = int(request.GET.get('page', '1')) + per_page = int(request.GET.get('per_page', '25')) + except ValueError: + current_page = 1 + per_page = 25 + + orgs_plus_one = ccnet_threaded_rpc.get_all_orgs(per_page * (current_page - 1), + per_page + 1) + orgs = orgs_plus_one[:per_page] + + if len(orgs_plus_one) == per_page + 1: + page_next = True + else: + page_next = False return render_to_response('sysadmin/sys_org_admin.html', { 'orgs': orgs, + 'current_page': current_page, + 'prev_page': current_page-1, + 'next_page': current_page+1, + 'per_page': per_page, + 'page_next': page_next, }, context_instance=RequestContext(request)) @login_required