mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-21 19:37:28 +00:00
set admin debug
This commit is contained in:
159
seahub/templates/sysadmin/sys_db_useradmin.html
Normal file
159
seahub/templates/sysadmin/sys_db_useradmin.html
Normal file
@@ -0,0 +1,159 @@
|
|||||||
|
{% extends "sysadmin/base.html" %}
|
||||||
|
{% load seahub_tags i18n %}
|
||||||
|
{% block cur_users %}tab-cur{% endblock %}
|
||||||
|
|
||||||
|
{% block left_panel %}{{block.super}}
|
||||||
|
<form action="{% url 'user_search' %}" method="get" class="side-search-form">
|
||||||
|
<input type="text" name="email" class="input" value="" placeholder="{% trans "Search users..." %}" />
|
||||||
|
</form>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block right_panel %}
|
||||||
|
<div class="tabnav ovhd">
|
||||||
|
<ul class="tabnav-tabs fleft">
|
||||||
|
<li class="tabnav-tab"><a href="{% url 'sys_useradmin' %}">{% trans "Database" %}</a></li>
|
||||||
|
<li class="tabnav-tab tabnav-tab-cur"><a href="{% url 'sys_db_useradmin' %}">{% trans "DataBaseAdmin" %}</a></li>
|
||||||
|
{% if have_ldap %}
|
||||||
|
<li class="tabnav-tab"><a href="{% url 'sys_ldap_useradmin' %}">{% trans "LDAP" %}</a></li>
|
||||||
|
{% endif %}
|
||||||
|
</ul>
|
||||||
|
<button id="add-admin-btn" class="fright"><img src="{{ MEDIA_URL }}img/add.png" alt="" class="add vam" /><span class="vam">{% trans "Add admin" %}</span></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<form id="add-admin-form" method="post" name="add-admin-form" class="tab-popup hide">{% csrf_token %}
|
||||||
|
<h3 class="hd">{% trans "Add admins"%}</h3>
|
||||||
|
<div id="add-admin-tabs" class="tab-popup-tabs">
|
||||||
|
<ul class="tab-popup-tabs-nav">
|
||||||
|
<li class="tab"><a href="#enter" class="a">{% trans 'Enter' %}</a></li>
|
||||||
|
</ul>
|
||||||
|
<div id="enter">
|
||||||
|
<textarea id="added-member-name" name="user_email" placeholder="{% trans "emails, separated by ','" %}"></textarea><br />
|
||||||
|
<p class="tip">{% trans "Tip: the emails should be the users already added."%}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bot">
|
||||||
|
<p class="error hide"></p>
|
||||||
|
<input type="submit" value="{% trans "Submit"%}" />
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th width="25%">{% trans "Email" %}</th>
|
||||||
|
<th width="15%">{% trans "Status" %}</th>
|
||||||
|
<th width="15%">{% trans "Space Used" %}</th>
|
||||||
|
<th width="22%">{% trans "Create At / Last Login" %}</th>
|
||||||
|
<th width="23%">{% trans "Operations" %}</th>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
{% for user in admin_users %}
|
||||||
|
<tr>
|
||||||
|
<td data="{{user.id}}"><a href="{{ SITE_ROOT }}useradmin/info/{{ user.props.email }}/">{{ user.email }}</a></td>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
{% if user.source != 'LDAP' %}
|
||||||
|
<div class="user-status">
|
||||||
|
{% if user.is_active %}
|
||||||
|
<span class="user-status-cur-value">{% trans "Active" %}</span>
|
||||||
|
{% else %}
|
||||||
|
<span class="user-status-cur-value">{% trans "Inactive" %}</span>
|
||||||
|
{% endif %}
|
||||||
|
<img src="{{MEDIA_URL}}img/edit_12.png" alt="{% trans "Edit"%}" title="{% trans "Edit"%}" class="user-status-edit-icon cspt vh" />
|
||||||
|
</div>
|
||||||
|
<select name="permission" class="user-status-select hide">
|
||||||
|
<option value="1" {%if user.is_active %}selected="selected"{% endif %}>{% trans "Active" %}</option>
|
||||||
|
<option value="0" {%if not user.is_active %}selected="selected"{% endif %}>{% trans "Inactive"%}</option>
|
||||||
|
</select>
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td>
|
||||||
|
{% if CALC_SHARE_USAGE %}
|
||||||
|
{{ user.self_usage|filesizeformat }} + {{ user.share_usage|filesizeformat }} {% if user.quota > 0 %} / {{ user.quota|filesizeformat }} {% endif %}
|
||||||
|
{% else %}
|
||||||
|
{{ user.self_usage|filesizeformat }} {% if user.quota > 0 %} / {{ user.quota|filesizeformat }} {% endif %}
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{% if user.source != 'LDAP' %}
|
||||||
|
{{ user.ctime|tsstr_sec }} /<br />
|
||||||
|
{% if user.last_login %}{{user.last_login|translate_seahub_time}} {% else %} -- {% endif %}
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{% if user.source != 'LDAP' %}
|
||||||
|
{% if not user.is_self %}
|
||||||
|
<a href="#" class="remove-user-btn op vh" data-url="{{ SITE_ROOT }}useradmin/remove/{{ user.props.id }}/" data-target="{{ user.props.email }}">{% trans "Delete" %}</a>
|
||||||
|
<a href="#" class="reset-user-btn op vh" data-url="{% url 'user_reset' user.id %}" data-target="{{ user.props.email }}">{% trans "ResetPwd" %}</a>
|
||||||
|
{% if user.is_staff %}
|
||||||
|
<a href="#" data-url="{% url 'user_remove_admin' user.id %}" data-target="{{ user.props.email }}" class="revoke-admin-btn op vh">{% trans "Revoke Admin" %}</a>
|
||||||
|
{% else %}
|
||||||
|
<a href="#" data-url="{% url 'user_make_admin' user.id %}" data-target="{{ user.props.email }}" class="set-admin-btn op vh">{% trans "Set Admin" %}</a>
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div id="activate-msg" class="hide">
|
||||||
|
<p>{% trans "Activating..., please wait" %}</p>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block extra_script %}
|
||||||
|
<script type="text/javascript">
|
||||||
|
var user_list = [], user_email;
|
||||||
|
{% for user in not_admin_users %}
|
||||||
|
user_email = '{{ user.email }}';
|
||||||
|
user_list.push({value:user_email, label:user_email});
|
||||||
|
{% endfor %}
|
||||||
|
$('#add-admin-btn').click(function() {
|
||||||
|
var form = $("#add-admin-form");
|
||||||
|
form.modal({appendTo: "#main", focus:false});
|
||||||
|
$('#simplemodal-container').css({'height':'auto', 'padding':0});
|
||||||
|
$('#add-admin-tabs').tabs();
|
||||||
|
addAutocomplete('#added-member-name', '#enter', user_list);
|
||||||
|
|
||||||
|
});
|
||||||
|
$('#add-admin-form').submit(function() {
|
||||||
|
var form = $(this),
|
||||||
|
cur_tab_id = $('.ui-tabs-selected a', form).attr('href'),
|
||||||
|
post_data = '',
|
||||||
|
input = $('[name="user_email"]', form);
|
||||||
|
post_data = input.val();
|
||||||
|
|
||||||
|
if (!post_data) {
|
||||||
|
apply_form_error(form.attr('id'), '{% trans "Please enter emails, or select some." %}');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var submit_btn = $('[type="submit"]', form);
|
||||||
|
disable(submit_btn);
|
||||||
|
$.ajax({
|
||||||
|
url: '{% url 'batch_user_make_admin' %}',
|
||||||
|
type: 'POST',
|
||||||
|
dataType: 'json',
|
||||||
|
cache: false,
|
||||||
|
beforeSend: prepareCSRFToken,
|
||||||
|
data: {
|
||||||
|
'set_admin_emails': post_data
|
||||||
|
},
|
||||||
|
success: function(data) {
|
||||||
|
location.reload('true');
|
||||||
|
},
|
||||||
|
error: function(data, textStatus, jqXHR) {
|
||||||
|
var errors = $.parseJSON(data.responseText);
|
||||||
|
$.each(errors, function(index, value) {
|
||||||
|
apply_form_error(form.attr('id'), value);
|
||||||
|
});
|
||||||
|
enable(submit_btn);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
{% include "sysadmin/useradmin_js.html" %}
|
||||||
|
</script>
|
||||||
|
{% endblock %}
|
@@ -9,20 +9,16 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block right_panel %}
|
{% block right_panel %}
|
||||||
<div id="tabs" class="tab-tabs">
|
<div class="tabnav ovhd">
|
||||||
<div class="hd ovhd">
|
<ul class="tabnav-tabs fleft">
|
||||||
<ul class="tab-tabs-nav fleft">
|
<li class="tabnav-tab tabnav-tab-cur"><a href="{% url 'sys_useradmin' %}">{% trans "Database" %}</a></li>
|
||||||
<li class="tab"><a href="#user" class="a" id="user-tab">{% trans "Users" %}</a></li>
|
<li class="tabnav-tab"><a href="{% url 'sys_db_useradmin' %}">{% trans "DataBaseAdmin" %}</a></li>
|
||||||
<li class="tab"><a href="#admin" class="a" id="admin-tab">{% trans "Admins" %}</a></li>
|
|
||||||
{% if have_ldap %}
|
{% if have_ldap %}
|
||||||
<li class="tab"><a href="{% url 'sys_ldap_useradmin' %}" class="a" id="ldap-tab">{% trans "LDAP" %}</a></li>
|
<li class="tabnav-tab"><a href="{% url 'sys_ldap_useradmin' %}">{% trans "LDAP" %}</a></li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
<div class="fright">
|
<button id="add-user-btn" class="fright"><img src="{{ MEDIA_URL }}img/add.png" alt="" class="add vam" /><span class="vam">{% trans "Add user" %}</span></button>
|
||||||
<button id="add-user-btn" class="hide"><img src="{{ MEDIA_URL }}img/add.png" alt="" class="add vam" /><span class="vam">{% trans "Add user"%}</span></button>
|
</div>
|
||||||
<button id="add-admin-btn" class="hide"><img src="{{ MEDIA_URL }}img/add.png" alt="" class="add vam" /><span class="vam">{% trans "Add admin"%}</span></button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<form id="add-user-form" action="" method="post" class="hide">{% csrf_token %}
|
<form id="add-user-form" action="" method="post" class="hide">{% csrf_token %}
|
||||||
<h3>{% trans "Add user" %}</h3>
|
<h3>{% trans "Add user" %}</h3>
|
||||||
@@ -35,52 +31,17 @@
|
|||||||
<p class="error hide"></p>
|
<p class="error hide"></p>
|
||||||
<input type="submit" value="{% trans "Submit" %}" class="submit" />
|
<input type="submit" value="{% trans "Submit" %}" class="submit" />
|
||||||
</form>
|
</form>
|
||||||
<form id="add-admin-form" method="post" name="add-admin-form" class="tab-popup hide">{% csrf_token %}
|
|
||||||
<h3 class="hd">{% trans "Add admins"%}</h3>
|
|
||||||
<div id="add-admin-tabs" class="tab-popup-tabs">
|
|
||||||
<ul class="tab-popup-tabs-nav">
|
|
||||||
<li class="tab"><a href="#enter" class="a">{% trans 'Enter' %}</a></li>
|
|
||||||
</ul>
|
|
||||||
<div id="enter">
|
|
||||||
<textarea id="added-member-name" name="user_email" placeholder="{% trans "emails, separated by ','" %}"></textarea><br />
|
|
||||||
<p class="tip">{% trans "Tip: the emails should be the users already added."%}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="bot">
|
|
||||||
<p class="error hide"></p>
|
|
||||||
<input type="submit" value="{% trans "Submit"%}" />
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
{% include "sysadmin/useradmin_table.html"%}
|
{% include "sysadmin/useradmin_table.html"%}
|
||||||
|
{% include "sysadmin/useradmin_paginator.html" %}
|
||||||
|
|
||||||
<div id="activate-msg" class="hide">
|
<div id="activate-msg" class="hide">
|
||||||
<p>{% trans "Activating..., please wait" %}</p>
|
<p>{% trans "Activating..., please wait" %}</p>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block extra_script %}
|
{% block extra_script %}
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
var cur_tab = $('.ui-tabs-selected .a');
|
|
||||||
var add_user_btn = $('#add-user-btn'),
|
|
||||||
add_admin_btn = $('#add-admin-btn');
|
|
||||||
if (cur_tab.attr('id') == 'user-tab') {
|
|
||||||
add_user_btn.removeClass('hide');
|
|
||||||
}
|
|
||||||
if (cur_tab.attr('id') == 'admin-tab') {
|
|
||||||
add_admin_btn.removeClass('hide');
|
|
||||||
}
|
|
||||||
$('#user-tab').click(function() {
|
|
||||||
add_user_btn.removeClass('hide');
|
|
||||||
add_admin_btn.addClass('hide');
|
|
||||||
});
|
|
||||||
$('#admin-tab').click(function() {
|
|
||||||
add_admin_btn.removeClass('hide');
|
|
||||||
add_user_btn.addClass('hide');
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#add-user-form').submit(function() {
|
$('#add-user-form').submit(function() {
|
||||||
var form = $(this),
|
var form = $(this),
|
||||||
form_id = $(this).attr('id'),
|
form_id = $(this).attr('id'),
|
||||||
@@ -134,64 +95,6 @@ $('#add-user-form').submit(function() {
|
|||||||
});
|
});
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
var user_list = [], user_email;
|
|
||||||
{% for user in users %}
|
|
||||||
{% if not user.is_self %}
|
|
||||||
{% if not user.is_staff %}
|
|
||||||
user_email = '{{ user.email }}';
|
|
||||||
user_list.push({value:user_email, label:user_email});
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
$('#add-admin-btn').click(function() {
|
|
||||||
var form = $("#add-admin-form");
|
|
||||||
form.modal({appendTo: "#main", focus:false});
|
|
||||||
$('#simplemodal-container').css({'height':'auto', 'padding':0});
|
|
||||||
$('#add-admin-tabs').tabs();
|
|
||||||
|
|
||||||
addAutocomplete('#added-member-name', '#enter', user_list);
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#add-admin-form').submit(function() {
|
|
||||||
var form = $(this),
|
|
||||||
cur_tab_id = $('.ui-tabs-selected a', form).attr('href'),
|
|
||||||
post_data = '',
|
|
||||||
input = $('[name="user_email"]', form);
|
|
||||||
post_data = input.val();
|
|
||||||
|
|
||||||
if (!post_data) {
|
|
||||||
apply_form_error(form.attr('id'), '{% trans "Please enter emails, or select some." %}');
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
var submit_btn = $('[type="submit"]', form);
|
|
||||||
disable(submit_btn);
|
|
||||||
$.ajax({
|
|
||||||
url: '{% url 'batch_user_make_admin' %}',
|
|
||||||
type: 'POST',
|
|
||||||
dataType: 'json',
|
|
||||||
cache: false,
|
|
||||||
beforeSend: prepareCSRFToken,
|
|
||||||
data: {
|
|
||||||
'set_admin_emails': post_data
|
|
||||||
},
|
|
||||||
success: function(data) {
|
|
||||||
location.reload('true');
|
|
||||||
},
|
|
||||||
error: function(data, textStatus, jqXHR) {
|
|
||||||
var errors = $.parseJSON(data.responseText);
|
|
||||||
$.each(errors, function(index, value) {
|
|
||||||
apply_form_error(form.attr('id'), value);
|
|
||||||
});
|
|
||||||
enable(submit_btn);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
|
|
||||||
{% include "sysadmin/useradmin_js.html" %}
|
{% include "sysadmin/useradmin_js.html" %}
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@@ -1,12 +1,11 @@
|
|||||||
{% load seahub_tags i18n %}
|
{% load seahub_tags i18n %}
|
||||||
<div id="user">
|
<table>
|
||||||
<table>
|
|
||||||
<tr>
|
<tr>
|
||||||
<th width="28%">{% trans "Email" %}</th>
|
<th width="25%">{% trans "Email" %}</th>
|
||||||
<th width="15%">{% trans "Status" %}</th>
|
<th width="15%">{% trans "Status" %}</th>
|
||||||
<th width="15%">{% trans "Space Used" %}</th>
|
<th width="15%">{% trans "Space Used" %}</th>
|
||||||
<th width="22%">{% trans "Create At / Last Login" %}</th>
|
<th width="22%">{% trans "Create At / Last Login" %}</th>
|
||||||
<th width="20%">{% trans "Operations" %}</th>
|
<th width="23%">{% trans "Operations" %}</th>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
{% for user in users %}
|
{% for user in users %}
|
||||||
@@ -48,79 +47,9 @@
|
|||||||
{% if not user.is_self %}
|
{% if not user.is_self %}
|
||||||
<a href="#" class="remove-user-btn op vh" data-url="{{ SITE_ROOT }}useradmin/remove/{{ user.props.id }}/" data-target="{{ user.props.email }}">{% trans "Delete" %}</a>
|
<a href="#" class="remove-user-btn op vh" data-url="{{ SITE_ROOT }}useradmin/remove/{{ user.props.id }}/" data-target="{{ user.props.email }}">{% trans "Delete" %}</a>
|
||||||
<a href="#" class="reset-user-btn op vh" data-url="{% url 'user_reset' user.id %}" data-target="{{ user.props.email }}">{% trans "ResetPwd" %}</a>
|
<a href="#" class="reset-user-btn op vh" data-url="{% url 'user_reset' user.id %}" data-target="{{ user.props.email }}">{% trans "ResetPwd" %}</a>
|
||||||
{%comment%}
|
|
||||||
{% if user.is_staff %}
|
|
||||||
<a href="#" data-url="{% url 'user_remove_admin' user.id %}" data-target="{{ user.props.email }}" class="revoke-admin-btn op vh">{% trans "Revoke Admin" %}</a>
|
|
||||||
{% else %}
|
|
||||||
<a href="#" data-url="{% url 'user_make_admin' user.id %}" data-target="{{ user.props.email }}" class="set-admin-btn op vh">{% trans "Set Admin" %}</a>
|
|
||||||
{% endif %}
|
|
||||||
{%endcomment%}
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</table>
|
</table>
|
||||||
{% include "sysadmin/useradmin_paginator.html" %}
|
|
||||||
</div>
|
|
||||||
<div class="hide" id="admin">
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th width="28%">{% trans "Email" %}</th>
|
|
||||||
<th width="15%">{% trans "Status" %}</th>
|
|
||||||
<th width="15%">{% trans "Space Used" %}</th>
|
|
||||||
<th width="22%">{% trans "Create At / Last Login" %}</th>
|
|
||||||
<th width="20%">{% trans "Operations" %}</th>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
{% for user in users %}
|
|
||||||
{% if user.is_staff %}
|
|
||||||
<tr>
|
|
||||||
<td data="{{user.id}}"><a href="{{ SITE_ROOT }}useradmin/info/{{ user.props.email }}/">{{ user.email }}</a></td>
|
|
||||||
|
|
||||||
<td>
|
|
||||||
{% if user.source != 'LDAP' %}
|
|
||||||
<div class="user-status">
|
|
||||||
{% if user.is_active %}
|
|
||||||
<span class="user-status-cur-value">{% trans "Active" %}</span>
|
|
||||||
{% else %}
|
|
||||||
<span class="user-status-cur-value">{% trans "Inactive" %}</span>
|
|
||||||
{% endif %}
|
|
||||||
<img src="{{MEDIA_URL}}img/edit_12.png" alt="{% trans "Edit"%}" title="{% trans "Edit"%}" class="user-status-edit-icon cspt vh" />
|
|
||||||
</div>
|
|
||||||
<select name="permission" class="user-status-select hide">
|
|
||||||
<option value="1" {%if user.is_active %}selected="selected"{% endif %}>{% trans "Active" %}</option>
|
|
||||||
<option value="0" {%if not user.is_active %}selected="selected"{% endif %}>{% trans "Inactive"%}</option>
|
|
||||||
</select>
|
|
||||||
{% endif %}
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<td>
|
|
||||||
{% if CALC_SHARE_USAGE %}
|
|
||||||
{{ user.self_usage|filesizeformat }} + {{ user.share_usage|filesizeformat }} {% if user.quota > 0 %} / {{ user.quota|filesizeformat }} {% endif %}
|
|
||||||
{% else %}
|
|
||||||
{{ user.self_usage|filesizeformat }} {% if user.quota > 0 %} / {{ user.quota|filesizeformat }} {% endif %}
|
|
||||||
{% endif %}
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
{% if user.source != 'LDAP' %}
|
|
||||||
{{ user.ctime|tsstr_sec }} /<br />
|
|
||||||
{% if user.last_login %}{{user.last_login|translate_seahub_time}} {% else %} -- {% endif %}
|
|
||||||
{% endif %}
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
{% if user.source != 'LDAP' %}
|
|
||||||
{% if not user.is_self %}
|
|
||||||
<a href="#" class="remove-user-btn op vh" data-url="{{ SITE_ROOT }}useradmin/remove/{{ user.props.id }}/" data-target="{{ user.props.email }}">{% trans "Delete" %}</a>
|
|
||||||
<a href="#" class="reset-user-btn op vh" data-url="{% url 'user_reset' user.id %}" data-target="{{ user.props.email }}">{% trans "ResetPwd" %}</a>
|
|
||||||
<a href="#" data-url="{% url 'user_remove_admin' user.id %}" data-target="{{ user.props.email }}" class="revoke-admin-btn op vh">{% trans "Revoke Admin" %}</a>
|
|
||||||
{% else %}
|
|
||||||
{% endif %}
|
|
||||||
{% endif %}
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
{% endif %}
|
|
||||||
{% endfor %}
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
@@ -21,7 +21,7 @@ from seahub.views.sysadmin import sys_repo_admin, sys_user_admin, user_search,\
|
|||||||
user_remove_admin, user_reset, user_activate, sys_publink_admin, \
|
user_remove_admin, user_reset, user_activate, sys_publink_admin, \
|
||||||
sys_repo_search, sys_repo_transfer, sys_list_orphan, user_deactivate, \
|
sys_repo_search, sys_repo_transfer, sys_list_orphan, user_deactivate, \
|
||||||
user_toggle_status, user_set_quota, sys_ldap_user_admin, sys_list_system, \
|
user_toggle_status, user_set_quota, sys_ldap_user_admin, sys_list_system, \
|
||||||
batch_user_make_admin
|
batch_user_make_admin, sys_db_user_admin
|
||||||
from seahub.views.ajax import *
|
from seahub.views.ajax import *
|
||||||
|
|
||||||
# Uncomment the next two lines to enable the admin:
|
# Uncomment the next two lines to enable the admin:
|
||||||
@@ -184,6 +184,7 @@ urlpatterns = patterns('',
|
|||||||
url(r'^sys/seafadmin/transfer/$', sys_repo_transfer, name='sys_repo_transfer'),
|
url(r'^sys/seafadmin/transfer/$', sys_repo_transfer, name='sys_repo_transfer'),
|
||||||
url(r'^sys/useradmin/$', sys_user_admin, name='sys_useradmin'),
|
url(r'^sys/useradmin/$', sys_user_admin, name='sys_useradmin'),
|
||||||
url(r'^sys/ldapuseradmin/$', sys_ldap_user_admin, name='sys_ldap_useradmin'),
|
url(r'^sys/ldapuseradmin/$', sys_ldap_user_admin, name='sys_ldap_useradmin'),
|
||||||
|
url(r'^sys/dbuseradmin/$', sys_db_user_admin, name='sys_db_useradmin'),
|
||||||
url(r'^sys/groupadmin/$', sys_group_admin, name='sys_group_admin'),
|
url(r'^sys/groupadmin/$', sys_group_admin, name='sys_group_admin'),
|
||||||
url(r'^sys/publinkadmin/$', sys_publink_admin, name='sys_publink_admin'),
|
url(r'^sys/publinkadmin/$', sys_publink_admin, name='sys_publink_admin'),
|
||||||
url(r'^sys/notificationadmin/', notification_list, name='notification_list'),
|
url(r'^sys/notificationadmin/', notification_list, name='notification_list'),
|
||||||
|
@@ -709,9 +709,60 @@ def sys_traffic_admin(request):
|
|||||||
},
|
},
|
||||||
context_instance=RequestContext(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
|
@login_required
|
||||||
@sys_staff_required
|
@sys_staff_required
|
||||||
def batch_user_make_admin(request):
|
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 = {}
|
result = {}
|
||||||
content_type = 'application/json; charset=utf-8'
|
content_type = 'application/json; charset=utf-8'
|
||||||
|
|
||||||
@@ -720,10 +771,19 @@ def batch_user_make_admin(request):
|
|||||||
|
|
||||||
success = []
|
success = []
|
||||||
failed = []
|
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:
|
for email in set_admin_emails:
|
||||||
try:
|
try:
|
||||||
user = User.objects.get(email=email)
|
user = User.objects.get(email=email)
|
||||||
|
if user.is_staff == True:
|
||||||
|
already_admin.append(email)
|
||||||
|
else:
|
||||||
user.is_staff = True
|
user.is_staff = True
|
||||||
user.save()
|
user.save()
|
||||||
success.append(email)
|
success.append(email)
|
||||||
@@ -733,8 +793,9 @@ def batch_user_make_admin(request):
|
|||||||
for item in success:
|
for item in success:
|
||||||
messages.success(request, _(u'Successfully set %s as admin') % item)
|
messages.success(request, _(u'Successfully set %s as admin') % item)
|
||||||
for item in failed:
|
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
|
result['success'] = True
|
||||||
return HttpResponse(json.dumps(result), content_type=content_type)
|
return HttpResponse(json.dumps(result), content_type=content_type)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user