def useradmin_search(request): """Search users in the institution. """ inst = request.user.institution q = request.GET.get('q', '').lower() if not q: return HttpResponseRedirect(reverse('institutions:useradmin')) profiles = Profile.objects.filter(institution=inst.name) usernames = [x.user for x in profiles if q in x.user] users = [User.objects.get(x) for x in usernames] last_logins = UserLastLogin.objects.filter( username__in=[x.username for x in users]) for u in users: if u.username == request.user.username: u.is_self = True populate_user_info(u) _populate_user_quota_usage(u) for e in last_logins: if e.username == u.username: u.last_login = e.last_login return render_to_response('institutions/useradmin_search.html', { 'inst': inst, 'users': users, 'q': q, }, context_instance=RequestContext(request))
def useradmin_search(request): """Search users in the institution. """ inst = request.user.institution q = request.GET.get('q', '').lower() if not q: return HttpResponseRedirect(reverse('institutions:useradmin')) profiles = Profile.objects.filter(institution=inst.name) usernames = [x.user for x in profiles if q in x.user] users = [User.objects.get(x) for x in usernames] last_logins = UserLastLogin.objects.filter(username__in=[x.username for x in users]) for u in users: if u.username == request.user.username: u.is_self = True populate_user_info(u) _populate_user_quota_usage(u) for e in last_logins: if e.username == u.username: u.last_login = e.last_login return render_to_response('institutions/useradmin_search.html', { 'inst': inst, 'users': users, 'q': q, }, context_instance=RequestContext(request))
def org_user_admin(request): """List organization user. """ org = request.user.org # 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 users_plus_one = ccnet_api.get_org_users_by_url_prefix( org.url_prefix, per_page * (current_page - 1), per_page + 1) if len(users_plus_one) == per_page + 1: page_next = True else: page_next = False users = users_plus_one[:per_page] last_logins = UserLastLogin.objects.filter( username__in=[x.email for x in users]) for user in users: if user.props.id == request.user.id: user.is_self = True populate_user_info(user) try: user.self_usage = get_org_user_self_usage(org.org_id, user.email) user.share_usage = 0 #seafile_api.get_user_share_usage(user.email) user.quota = get_org_user_quota(org.org_id, user.email) except SearpcError as e: logger.error(e) user.self_usage = -1 user.share_usage = -1 user.quota = -1 user.is_org_staff = is_org_staff(org.org_id, user.email) # populate user last login time user.last_login = None for last_login in last_logins: if last_login.username == user.email: user.last_login = last_login.last_login return render( request, 'organizations/org_user_admin.html', { 'users': users, 'current_page': current_page, 'prev_page': current_page - 1, 'next_page': current_page + 1, 'per_page': per_page, 'page_next': page_next, })
def org_useradmin_admins(request): """List organization admin user. """ org = request.user.org admin_users = [] not_admin_users = [] users = ccnet_api.get_org_users_by_url_prefix(org.url_prefix, -1, -1) last_logins = UserLastLogin.objects.filter( username__in=[x.email for x in users]) user_self = None for user in users: populate_user_info(user) if is_org_staff(org.org_id, user.email): try: user.self_usage = get_org_user_self_usage( org.org_id, user.email) user.share_usage = 0 #seafile_api.get_user_share_usage(user.email) user.quota = get_org_user_quota(org.org_id, user.email) except SearpcError as e: logger.error(e) user.self_usage = -1 user.share_usage = -1 user.quota = -1 # populate user last login time user.last_login = None for last_login in last_logins: if last_login.username == user.email: user.last_login = last_login.last_login # set current user at the first of the user list if user.id == request.user.id: user.is_self = True user_self = user continue else: admin_users.append(user) else: not_admin_users.append(user) if user_self: admin_users.insert(0, user_self) return render(request, 'organizations/org_useradmin_admins.html', { 'users': admin_users, 'not_admin_users': not_admin_users, })
def useradmin(request): """List users in the institution. """ # 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', '100')) except ValueError: current_page = 1 per_page = 100 offset = per_page * (current_page - 1) inst = request.user.institution usernames = [ x.user for x in Profile.objects.filter(institution=inst.name)[offset:offset + per_page + 1] ] if len(usernames) == per_page + 1: page_next = True else: page_next = False users = [User.objects.get(x) for x in usernames[:per_page]] last_logins = UserLastLogin.objects.filter( username__in=[x.username for x in users]) for u in users: if u.username == request.user.username: u.is_self = True populate_user_info(u) _populate_user_quota_usage(u) for e in last_logins: if e.username == u.username: u.last_login = e.last_login return render_to_response('institutions/useradmin.html', { 'inst': inst, 'users': users, '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))
def useradmin(request): """List users in the institution. """ # 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', '100')) except ValueError: current_page = 1 per_page = 100 offset = per_page * (current_page - 1) inst = request.user.institution usernames = [x.user for x in Profile.objects.filter(institution=inst.name)[offset:offset + per_page + 1]] if len(usernames) == per_page + 1: page_next = True else: page_next = False users = [User.objects.get(x) for x in usernames[:per_page]] last_logins = UserLastLogin.objects.filter(username__in=[x.username for x in users]) for u in users: if u.username == request.user.username: u.is_self = True populate_user_info(u) _populate_user_quota_usage(u) for e in last_logins: if e.username == u.username: u.last_login = e.last_login return render_to_response('institutions/useradmin.html', { 'inst': inst, 'users': users, '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))