1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-21 03:18:23 +00:00

set admin debug

This commit is contained in:
imwhatiam
2014-04-16 11:47:53 +08:00
committed by zhengxie
parent 8b56620a53
commit bf9bbaaa08
5 changed files with 288 additions and 235 deletions

View File

@@ -709,9 +709,60 @@ def sys_traffic_admin(request):
},
context_instance=RequestContext(request))
@login_required
@sys_staff_required
def sys_db_user_admin(request):
"""List all admins from database.
"""
users = get_emailusers('DB', -1, -1)
admin_users = []
not_admin_users = []
for user in users:
if user.is_staff == True:
admin_users.append(user)
else:
not_admin_users.append(user)
last_logins = UserLastLogin.objects.filter(username__in=[x.email for x in admin_users])
for user in admin_users:
if user.props.id == request.user.id:
user.is_self = True
try:
user.self_usage = seafile_api.get_user_self_usage(user.email)
user.share_usage = seafile_api.get_user_share_usage(user.email)
user.quota = seafile_api.get_user_quota(user.email)
except:
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
have_ldap = True if len(get_emailusers('LDAP', 0, 1)) > 0 else False
return render_to_response(
'sysadmin/sys_db_useradmin.html', {
'admin_users': admin_users,
'not_admin_users': not_admin_users,
'CALC_SHARE_USAGE': CALC_SHARE_USAGE,
'have_ldap': have_ldap,
},
context_instance=RequestContext(request))
@login_required
@sys_staff_required
def batch_user_make_admin(request):
if not request.user.is_staff and not request.user.org['is_staff']:
raise Http404
if not request.is_ajax() or request.method != 'POST':
raise Http404
result = {}
content_type = 'application/json; charset=utf-8'
@@ -720,21 +771,31 @@ def batch_user_make_admin(request):
success = []
failed = []
already_admin = []
if len(get_emailusers('LDAP', 0, 1)) > 0:
messages.error(request, _(u'Using LDAP now, can not set admin'))
result['success'] = True
return HttpResponse(json.dumps(result), content_type=content_type)
for email in set_admin_emails:
try:
user = User.objects.get(email=email)
user.is_staff = True
user.save()
success.append(email)
if user.is_staff == True:
already_admin.append(email)
else:
user.is_staff = True
user.save()
success.append(email)
except User.DoesNotExist:
failed.append(email)
for item in success:
messages.success(request, _(u'Successfully set %s as admin') % item)
for item in failed:
messages.error(request, _(u'Failed set %s as admin') % item)
messages.error(request, _(u'Failed set %s as admin: not exist or invalid email') % item)
for item in already_admin:
messages.error(request, _(u'Failed set %s as admin: already admin user') % item)
result['success'] = True
return HttpResponse(json.dumps(result), content_type=content_type)