mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-20 02:48:51 +00:00
Split db&ldap in pubuser
This commit is contained in:
@@ -13,7 +13,19 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block right_panel %}
|
{% block right_panel %}
|
||||||
<h3 class="hd">{% trans "Members" %}</h3>
|
{% if search %}
|
||||||
|
<h3 class="hd">{% trans "Search Results" %}</h3>
|
||||||
|
{% else %}
|
||||||
|
<div class="tabnav ovhd">
|
||||||
|
<ul class="tabnav-tabs fleft">
|
||||||
|
<li class="tabnav-tab {% if not ldap %}tabnav-tab-cur{%endif%}"><a href="{% url 'pubuser' %}">{% trans "Database" %}</a></li>
|
||||||
|
{% if have_ldap_user %}
|
||||||
|
<li class="tabnav-tab {% if ldap %}tabnav-tab-cur{%endif%}"><a href="{% url 'pubuser' %}?ldap=1">{% trans "LDAP" %}</a></li>
|
||||||
|
{% endif %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% if users %}
|
{% if users %}
|
||||||
<ul class="user-list">
|
<ul class="user-list">
|
||||||
{% for u in users %}
|
{% for u in users %}
|
||||||
@@ -34,17 +46,17 @@
|
|||||||
{% if show_paginator %}
|
{% if show_paginator %}
|
||||||
<div id="paginator">
|
<div id="paginator">
|
||||||
{% if has_prev %}
|
{% if has_prev %}
|
||||||
<a href="?page={{ current_page|add:"-1" }}">{% trans "Previous" %}</a>
|
<a href="?page={{ current_page|add:"-1" }}{% if ldap %}&ldap=1{%endif%}">{% trans "Previous" %}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% for pr in page_range %}
|
{% for pr in page_range %}
|
||||||
{% if pr == current_page %}
|
{% if pr == current_page %}
|
||||||
<span class="cur">{{ pr }}</span>
|
<span class="cur">{{ pr }}</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="?page={{ pr }}" class="pg">{{ pr }}</a>
|
<a href="?page={{ pr }}{% if ldap %}&ldap=1{%endif%}" class="pg">{{ pr }}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% if has_next %}
|
{% if has_next %}
|
||||||
<a href="?page={{ current_page|add:"1" }}">{% trans "Next" %}</a>
|
<a href="?page={{ current_page|add:"1" }}{% if ldap %}&ldap=1{%endif%}">{% trans "Next" %}</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@@ -7,7 +7,6 @@
|
|||||||
<h3>{% trans "Search User"%}</h3>
|
<h3>{% trans "Search User"%}</h3>
|
||||||
|
|
||||||
<form id="search-user-form" method="get" action=".">
|
<form id="search-user-form" method="get" action=".">
|
||||||
<p class="tip">{% trans "Tip: Use * to match any number of characters." %}</p>
|
|
||||||
<label>{% trans "Email" %}</label><input type="text" name="email" class="input" value="{{email}}" /><br />
|
<label>{% trans "Email" %}</label><input type="text" name="email" class="input" value="{{email}}" /><br />
|
||||||
<input type="submit" value="{% trans "Submit" %}" class="submit" />
|
<input type="submit" value="{% trans "Submit" %}" class="submit" />
|
||||||
</form>
|
</form>
|
||||||
|
@@ -1464,10 +1464,7 @@ def get_pub_users(request, start, limit):
|
|||||||
raise Http404 # no pubuser in cloud mode
|
raise Http404 # no pubuser in cloud mode
|
||||||
|
|
||||||
else:
|
else:
|
||||||
# Get ldap users first, if no users found, use database.
|
users_plus_one = seaserv.get_emailusers('DB', start, limit)
|
||||||
users_plus_one = seaserv.get_emailusers('LDAP', start, limit)
|
|
||||||
if len(users_plus_one) == 0:
|
|
||||||
users_plus_one = seaserv.get_emailusers('DB', start, limit)
|
|
||||||
return users_plus_one
|
return users_plus_one
|
||||||
|
|
||||||
def count_pub_users(request):
|
def count_pub_users(request):
|
||||||
@@ -1479,12 +1476,12 @@ def count_pub_users(request):
|
|||||||
elif request.cloud_mode:
|
elif request.cloud_mode:
|
||||||
return 0
|
return 0
|
||||||
else:
|
else:
|
||||||
return seaserv.count_emailusers()
|
return seaserv.ccnet_threaded_rpc.count_emailusers('DB')
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def pubuser(request):
|
def pubuser(request):
|
||||||
"""
|
"""
|
||||||
Show public users.
|
Show public users in database or ldap depending on request arg ``ldap``.
|
||||||
"""
|
"""
|
||||||
if not request.user.permissions.can_view_org():
|
if not request.user.permissions.can_view_org():
|
||||||
raise Http404
|
raise Http404
|
||||||
@@ -1496,13 +1493,30 @@ def pubuser(request):
|
|||||||
current_page = 1
|
current_page = 1
|
||||||
per_page = 20 # show 20 users per-page
|
per_page = 20 # show 20 users per-page
|
||||||
|
|
||||||
users_plus_one = get_pub_users(request, per_page * (current_page - 1),
|
# Show LDAP users or Database users.
|
||||||
per_page + 1)
|
have_ldap_user = True if len(seaserv.get_emailusers('LDAP', 0, 1)) > 0 else False
|
||||||
|
|
||||||
|
try:
|
||||||
|
ldap = True if int(request.GET.get('ldap', 0)) == 1 else False
|
||||||
|
except ValueError:
|
||||||
|
ldap = False
|
||||||
|
|
||||||
|
if ldap and have_ldap_user:
|
||||||
|
users_plus_one = seaserv.get_emailusers('LDAP',
|
||||||
|
per_page * (current_page - 1),
|
||||||
|
per_page + 1)
|
||||||
|
else:
|
||||||
|
users_plus_one = get_pub_users(request, per_page * (current_page - 1),
|
||||||
|
per_page + 1)
|
||||||
|
|
||||||
has_prev = False if current_page == 1 else True
|
has_prev = False if current_page == 1 else True
|
||||||
has_next = True if len(users_plus_one) == per_page + 1 else False
|
has_next = True if len(users_plus_one) == per_page + 1 else False
|
||||||
|
|
||||||
emailusers_count = count_pub_users(request)
|
if ldap and have_ldap_user:
|
||||||
|
emailusers_count = seaserv.ccnet_threaded_rpc.count_emailusers('LDAP')
|
||||||
|
else:
|
||||||
|
emailusers_count = count_pub_users(request)
|
||||||
|
|
||||||
num_pages = int(ceil(emailusers_count / float(per_page)))
|
num_pages = int(ceil(emailusers_count / float(per_page)))
|
||||||
page_range = get_page_range(current_page, num_pages)
|
page_range = get_page_range(current_page, num_pages)
|
||||||
show_paginator = True if len(page_range) > 1 else False
|
show_paginator = True if len(page_range) > 1 else False
|
||||||
@@ -1526,6 +1540,8 @@ def pubuser(request):
|
|||||||
'has_next': has_next,
|
'has_next': has_next,
|
||||||
'page_range': page_range,
|
'page_range': page_range,
|
||||||
'show_paginator': show_paginator,
|
'show_paginator': show_paginator,
|
||||||
|
'have_ldap_user': have_ldap_user,
|
||||||
|
'ldap': ldap,
|
||||||
}, context_instance=RequestContext(request))
|
}, context_instance=RequestContext(request))
|
||||||
|
|
||||||
@login_required_ajax
|
@login_required_ajax
|
||||||
|
@@ -318,7 +318,6 @@ def sys_user_admin_admins(request):
|
|||||||
@login_required
|
@login_required
|
||||||
@sys_staff_required
|
@sys_staff_required
|
||||||
def user_info(request, email):
|
def user_info(request, email):
|
||||||
|
|
||||||
owned_repos = seafile_api.get_owned_repo_list(email)
|
owned_repos = seafile_api.get_owned_repo_list(email)
|
||||||
|
|
||||||
quota = seafile_api.get_user_quota(email)
|
quota = seafile_api.get_user_quota(email)
|
||||||
@@ -795,16 +794,16 @@ def user_search(request):
|
|||||||
"""Search a user.
|
"""Search a user.
|
||||||
"""
|
"""
|
||||||
email = request.GET.get('email', '')
|
email = request.GET.get('email', '')
|
||||||
email_patt = email.replace('*', '%')
|
|
||||||
|
users = ccnet_threaded_rpc.search_emailusers(email, -1, -1)
|
||||||
users = ccnet_threaded_rpc.search_emailusers(email_patt, -1, -1)
|
|
||||||
last_logins = UserLastLogin.objects.filter(username__in=[x.email for x in users])
|
last_logins = UserLastLogin.objects.filter(username__in=[x.email for x in users])
|
||||||
for user in users:
|
for user in users:
|
||||||
try:
|
try:
|
||||||
user.self_usage = seafile_api.get_user_self_usage(user.email)
|
user.self_usage = seafile_api.get_user_self_usage(user.email)
|
||||||
user.share_usage = seafile_api.get_user_share_usage(user.email)
|
user.share_usage = seafile_api.get_user_share_usage(user.email)
|
||||||
user.quota = seafile_api.get_user_quota(user.email)
|
user.quota = seafile_api.get_user_quota(user.email)
|
||||||
except:
|
except SearpcError as e:
|
||||||
|
logger.error(e)
|
||||||
user.self_usage = -1
|
user.self_usage = -1
|
||||||
user.share_usage = -1
|
user.share_usage = -1
|
||||||
user.quota = -1
|
user.quota = -1
|
||||||
|
Reference in New Issue
Block a user