Commit 4eb78e15 authored by ibuler's avatar ibuler

用户模块修改告一段落

parent 3efd810f
...@@ -9,15 +9,8 @@ from django.shortcuts import get_object_or_404 ...@@ -9,15 +9,8 @@ from django.shortcuts import get_object_or_404
from jperm.models import Perm from jperm.models import Perm
from jumpserver.api import * from jumpserver.api import *
cryptor = PyCrypt(KEY)
class RaiseError(Exception):
pass
def my_render(template, data, request):
return render_to_response(template, data, context_instance=RequestContext(request))
def get_host_groups(groups): def get_host_groups(groups):
......
...@@ -538,11 +538,9 @@ def get_session_user_info(request): ...@@ -538,11 +538,9 @@ def get_session_user_info(request):
获取用户的信息 获取用户的信息
""" """
user_id = request.session.get('user_id', 0) user_id = request.session.get('user_id', 0)
user = User.objects.filter(id=user_id) user = get_object(User, id=user_id)
if user: if user:
user = user[0] return [user.id, user.username, user]
dept = user.dept
return [user.id, user.username, user, dept.id, dept.name, dept]
def get_user_dept(request): def get_user_dept(request):
...@@ -698,6 +696,10 @@ def http_error(request, emg): ...@@ -698,6 +696,10 @@ def http_error(request, emg):
return render_to_response('error.html', locals()) return render_to_response('error.html', locals())
def my_render(template, data, request):
return render_to_response(template, data, context_instance=RequestContext(request))
CRYPTOR = PyCrypt(KEY) CRYPTOR = PyCrypt(KEY)
# if LDAP_ENABLE: # if LDAP_ENABLE:
......
...@@ -7,19 +7,13 @@ from jperm.models import Apply ...@@ -7,19 +7,13 @@ from jperm.models import Apply
def name_proc(request): def name_proc(request):
user_id = request.session.get('user_id') user_id = request.session.get('user_id')
role_id = request.session.get('role_id') role_id = request.session.get('role_id')
if role_id == 2: # if role_id == 2:
user_total_num = User.objects.all().count() user_total_num = User.objects.all().count()
user_active_num = User.objects.filter().count() user_active_num = User.objects.filter().count()
host_total_num = Asset.objects.all().count() host_total_num = Asset.objects.all().count()
host_active_num = Asset.objects.filter(is_active=True).count() host_active_num = Asset.objects.filter(is_active=True).count()
else: # else:
user, dept = get_session_user_dept(request) # pass
print user, dept
user_total_num = dept.user_set.all().count()
user_active_num = dept.user_set.filter(is_active=True).count()
host_total_num = dept.asset_set.all().count()
host_active_num = dept.asset_set.all().filter(is_active=True).count()
pass
username = User.objects.get(id=user_id).name username = User.objects.get(id=user_id).name
apply_info = Apply.objects.filter(admin=username, status=0, read=0) apply_info = Apply.objects.filter(admin=username, status=0, read=0)
......
...@@ -290,7 +290,7 @@ def to_dept_name(user_id): ...@@ -290,7 +290,7 @@ def to_dept_name(user_id):
@register.filter(name='to_role_name') @register.filter(name='to_role_name')
def to_role_name(role_id): def to_role_name(role_id):
role_dict = {'0': '普通用户', '1': '部门管理员', '2': '超级管理员'} role_dict = {'0': '普通用户', '1': '管理员', '2': '超级管理员'}
return role_dict.get(str(role_id), '未知') return role_dict.get(str(role_id), '未知')
...@@ -302,7 +302,7 @@ def to_avatar(role_id='0'): ...@@ -302,7 +302,7 @@ def to_avatar(role_id='0'):
@register.filter(name='get_user_asset_group') @register.filter(name='get_user_asset_group')
def get_user_asset_group(user): def get_user_asset_group(user):
return user_perm_group_api(user) return user.get_asset_group()
@register.filter(name='group_asset_list') @register.filter(name='group_asset_list')
......
...@@ -50,12 +50,9 @@ def get_data(data, items, option): ...@@ -50,12 +50,9 @@ def get_data(data, items, option):
@require_role(role='user') @require_role(role='user')
def index_cu(request): def index_cu(request):
user_id = request.session.get('user_id') user_id = request.session.get('user_id')
user = User.objects.filter(id=user_id) user = get_object(User, id=user_id)
if user:
user = user[0]
login_types = {'L': 'LDAP', 'M': 'MAP'} login_types = {'L': 'LDAP', 'M': 'MAP'}
user_id = request.session.get('user_id') username = user.username
username = User.objects.get(id=user_id).username
posts = user.get_asset() posts = user.get_asset()
host_count = len(posts) host_count = len(posts)
new_posts = [] new_posts = []
...@@ -91,16 +88,16 @@ def index(request): ...@@ -91,16 +88,16 @@ def index(request):
week_data = Log.objects.filter(start_time__range=[from_week, datetime.datetime.now()]) week_data = Log.objects.filter(start_time__range=[from_week, datetime.datetime.now()])
elif is_role_request(request, 'admin'): elif is_role_request(request, 'admin'):
user = get_session_user_info(request)[2] return index_cu(request)
dept_name, dept = get_session_user_info(request)[4:] # user = get_session_user_info(request)[2]
users = User.objects.filter(dept=dept) # users = User.objects.filter(dept=dept)
hosts = Asset.objects.filter(dept=dept) # hosts = Asset.objects.filter(dept=dept)
online = Log.objects.filter(dept_name=dept_name, is_finished=0) # online = Log.objects.filter(dept_name=dept_name, is_finished=0)
online_host = online.values('host').distinct() # online_host = online.values('host').distinct()
online_user = online.values('user').distinct() # online_user = online.values('user').distinct()
active_users = users.filter(is_active=1) # active_users = users.filter(is_active=1)
active_hosts = hosts.filter(is_active=1) # active_hosts = hosts.filter(is_active=1)
week_data = Log.objects.filter(dept_name=dept_name, start_time__range=[from_week, datetime.datetime.now()]) # week_data = Log.objects.filter(dept_name=dept_name, start_time__range=[from_week, datetime.datetime.now()])
# percent of dashboard # percent of dashboard
if users.count() == 0: if users.count() == 0:
...@@ -157,32 +154,32 @@ def skin_config(request): ...@@ -157,32 +154,32 @@ def skin_config(request):
return render_to_response('skin_config.html') return render_to_response('skin_config.html')
def pages(posts, r): # def pages(posts, r):
"""分页公用函数""" # """分页公用函数"""
contact_list = posts # contact_list = posts
p = paginator = Paginator(contact_list, 10) # p = paginator = Paginator(contact_list, 10)
try: # try:
current_page = int(r.GET.get('page', '1')) # current_page = int(r.GET.get('page', '1'))
except ValueError: # except ValueError:
current_page = 1 # current_page = 1
#
page_range = page_list_return(len(p.page_range), current_page) # page_range = page_list_return(len(p.page_range), current_page)
#
try: # try:
contacts = paginator.page(current_page) # contacts = paginator.page(current_page)
except (EmptyPage, InvalidPage): # except (EmptyPage, InvalidPage):
contacts = paginator.page(paginator.num_pages) # contacts = paginator.page(paginator.num_pages)
#
if current_page >= 5: # if current_page >= 5:
show_first = 1 # show_first = 1
else: # else:
show_first = 0 # show_first = 0
if current_page <= (len(p.page_range) - 3): # if current_page <= (len(p.page_range) - 3):
show_end = 1 # show_end = 1
else: # else:
show_end = 0 # show_end = 0
#
return contact_list, p, contacts, page_range, current_page, show_first, show_end # return contact_list, p, contacts, page_range, current_page, show_first, show_end
def is_latest(): def is_latest():
......
...@@ -120,6 +120,11 @@ class User(models.Model): ...@@ -120,6 +120,11 @@ class User(models.Model):
else: else:
return assets_info return assets_info
def update(self, **kwargs):
for key, value in kwargs.items():
self.__setattr__(key, value)
self.save()
class AdminGroup(models.Model): class AdminGroup(models.Model):
""" """
......
...@@ -22,7 +22,8 @@ urlpatterns = patterns('juser.views', ...@@ -22,7 +22,8 @@ urlpatterns = patterns('juser.views',
(r'^user_del_ajax/$', 'user_del_ajax'), (r'^user_del_ajax/$', 'user_del_ajax'),
(r'^user_edit/$', view_splitter, {'su': user_edit, 'adm': user_edit_adm}), (r'^user_edit/$', view_splitter, {'su': user_edit, 'adm': user_edit_adm}),
(r'^profile/$', 'profile'), (r'^profile/$', 'profile'),
(r'^chg_info/$', 'chg_info'), (r'^change_info/$', 'change_info'),
(r'^regen_ssh_key/$', 'regen_ssh_key'),
(r'^chg_role/$', 'chg_role'), (r'^chg_role/$', 'chg_role'),
(r'^down_key/$', 'down_key'), (r'^down_key/$', 'down_key'),
) )
This diff is collapsed.
...@@ -16,12 +16,6 @@ ...@@ -16,12 +16,6 @@
<a class="dropdown-toggle" data-toggle="dropdown" href="#"> <a class="dropdown-toggle" data-toggle="dropdown" href="#">
<i class="fa fa-wrench"></i> <i class="fa fa-wrench"></i>
</a> </a>
<ul class="dropdown-menu dropdown-user">
<li><a href="#">未启用 1</a>
</li>
<li><a href="#">未启用 2</a>
</li>
</ul>
<a class="close-link"> <a class="close-link">
<i class="fa fa-times"></i> <i class="fa fa-times"></i>
</a> </a>
...@@ -117,10 +111,6 @@ ...@@ -117,10 +111,6 @@
<td class="text-navy">角色</td> <td class="text-navy">角色</td>
<td>{{ user.id | get_role }}</td> <td>{{ user.id | get_role }}</td>
</tr> </tr>
<tr>
<td class="text-navy">部门</td>
<td>{{ user.dept.name }}</td>
</tr>
<tr> <tr>
<td class="text-navy">Email</td> <td class="text-navy">Email</td>
<td>{{ user.email }}</td> <td>{{ user.email }}</td>
......
...@@ -14,15 +14,7 @@ ...@@ -14,15 +14,7 @@
<a class="collapse-link"> <a class="collapse-link">
<i class="fa fa-chevron-up"></i> <i class="fa fa-chevron-up"></i>
</a> </a>
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
<i class="fa fa-wrench"></i>
</a>
<ul class="dropdown-menu dropdown-user">
<li><a href="#">未启用 1</a>
</li>
<li><a href="#">未启用 2</a>
</li>
</ul>
<a class="close-link"> <a class="close-link">
<i class="fa fa-times"></i> <i class="fa fa-times"></i>
</a> </a>
...@@ -59,11 +51,11 @@ ...@@ -59,11 +51,11 @@
</div> </div>
<div class="hr-line-dashed"></div> <div class="hr-line-dashed"></div>
<div class="form-group"> <div class="form-group">
<label for="ssh_key_pwd" class="col-sm-2 control-label">密钥密码<span class="red-fonts">*</span></label> <label for="ssh_key_pwd" class="col-sm-2 control-label">SSH密钥</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input id="ssh_key_pwd" name="ssh_key_pwd" placeholder="SSH Key Password" type="password" class="form-control" value="{{ user.ssh_key_pwd }}"> <a value="/juser/regen_ssh_key/?uuid={{ user.uuid }}" id="regen_ssh_key" class="form-control"> 重新生成</a>
<span class="help-block m-b-none"> <span class="help-block m-b-none">
登陆 Jumpserver 使用的SSH密钥的密码,更改密钥密码需要重新下载密钥 重新生成密钥,需要重新下载并导入
</span> </span>
</div> </div>
</div> </div>
...@@ -89,7 +81,9 @@ ...@@ -89,7 +81,9 @@
</div> </div>
</div> </div>
</div> </div>
{% endblock %}
{% block self_footer_js %}
<script> <script>
$('#userForm').validator({ $('#userForm').validator({
timely: 2, timely: 2,
...@@ -102,12 +96,6 @@ $('#userForm').validator({ ...@@ -102,12 +96,6 @@ $('#userForm').validator({
ok: "", ok: "",
msg: {required: "必须填写!"} msg: {required: "必须填写!"}
}, },
"ssh_key_pwd": {
rule: "required;length[6~50]",
tip: "ssh私钥密码",
ok: "",
msg: {required: "必须填写"}
},
"name": { "name": {
rule: "required", rule: "required",
tip: "姓名", tip: "姓名",
...@@ -119,14 +107,25 @@ $('#userForm').validator({ ...@@ -119,14 +107,25 @@ $('#userForm').validator({
tip: "Email", tip: "Email",
ok: "", ok: "",
msg: {required: "必须填写"} msg: {required: "必须填写"}
}, }
}, },
valid: function(form) { valid: function(form) {
form.submit(); form.submit();
} }
}); });
</script> $("document").ready(function() {
$("#regen_ssh_key").click(function () {
alert('申请已提交,请等待,请勿重复提交');
$.get(
$(this).attr('value'),
{},
function(data){
alert(data)
}
)
})
})
</script>
{% endblock %} {% endblock %}
\ No newline at end of file
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
<input type="text" class="form-control input-sm" id="search_input" name="search" placeholder="Search"> <input type="text" class="form-control input-sm" id="search_input" name="search" placeholder="Search">
<div class="input-group-btn"> <div class="input-group-btn">
<button id='search_btn' type="submit" class="btn btn-sm btn-primary"> <button id='search_btn' type="submit" class="btn btn-sm btn-primary">
—搜索— -搜索-
</button> </button>
</div> </div>
</div> </div>
......
...@@ -24,7 +24,6 @@ ...@@ -24,7 +24,6 @@
<td class="text-center">用户名</td> <td class="text-center">用户名</td>
<td class="text-center">姓名</td> <td class="text-center">姓名</td>
<td class="text-center">角色</td> <td class="text-center">角色</td>
<td class="text-center">部门</td>
<td class="text-center">Email</td> <td class="text-center">Email</td>
<td class="text-center">激活</td> <td class="text-center">激活</td>
{# <td class="text-center">添加时间</td>#} {# <td class="text-center">添加时间</td>#}
...@@ -38,7 +37,6 @@ ...@@ -38,7 +37,6 @@
<td class="text-center">{{ user.username }}</td> <td class="text-center">{{ user.username }}</td>
<td class="text-center">{{ user.name }}</td> <td class="text-center">{{ user.name }}</td>
<td class="text-center">{{ user.id | get_role }}</td> <td class="text-center">{{ user.id | get_role }}</td>
<td class="text-center">{{ user.dept.name }}</td>
<td class="text-center">{{ user.email }}</td> <td class="text-center">{{ user.email }}</td>
<td class="text-center">{{ user.is_active|bool2str }}</td> <td class="text-center">{{ user.is_active|bool2str }}</td>
{# <td class="text-center">{{ user.date_joined }}</td>#} {# <td class="text-center">{{ user.date_joined }}</td>#}
......
...@@ -48,10 +48,6 @@ ...@@ -48,10 +48,6 @@
<td class="text-navy">角色</td> <td class="text-navy">角色</td>
<td>{{ user.id | get_role }}</td> <td>{{ user.id | get_role }}</td>
</tr> </tr>
<tr>
<td class="text-navy">部门</td>
<td>{{ user.dept.name }}</td>
</tr>
<tr> <tr>
<td class="text-navy">Email</td> <td class="text-navy">Email</td>
<td>{{ user.email }}</td> <td>{{ user.email }}</td>
......
...@@ -10,18 +10,12 @@ ...@@ -10,18 +10,12 @@
<div class="ibox-title"> <div class="ibox-title">
<h5> 查看用户 </h5> <h5> 查看用户 </h5>
<div class="ibox-tools"> <div class="ibox-tools">
<a class="collapse-link"> <a class="collapise-link">
<i class="fa fa-chevron-up"></i> <i class="fa fa-chevron-up"></i>
</a> </a>
<a class="dropdown-toggle" data-toggle="dropdown" href="#"> <a class="dropdown-toggle" data-toggle="dropdown" href="#">
<i class="fa fa-wrench"></i> <i class="fa fa-wrench"></i>
</a> </a>
<ul class="dropdown-menu dropdown-user">
<li><a href="#">未启用 1</a>
</li>
<li><a href="#">未启用 2</a>
</li>
</ul>
<a class="close-link"> <a class="close-link">
<i class="fa fa-times"></i> <i class="fa fa-times"></i>
</a> </a>
...@@ -37,7 +31,7 @@ ...@@ -37,7 +31,7 @@
<input type="text" class="form-control input-sm" id="search_input" name="keyword" placeholder="Search"> <input type="text" class="form-control input-sm" id="search_input" name="keyword" placeholder="Search">
<div class="input-group-btn"> <div class="input-group-btn">
<button id='search_btn' type="submit" class="btn btn-sm btn-primary"> <button id='search_btn' type="submit" class="btn btn-sm btn-primary">
- 搜索 - -搜索-
</button> </button>
</div> </div>
</div> </div>
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<a data-toggle="dropdown" class="dropdown-toggle" href="#"> <a data-toggle="dropdown" class="dropdown-toggle" href="#">
<span class="clear"> <span class="clear">
<span class="block m-t-xs"> <span class="block m-t-xs">
<strong class="font-bold">{{ session_user_id | to_name}} <span style="color: #8095a8">{{ session_user_id | to_dept_name}}</span></strong> <strong class="font-bold">{{ session_user_id | to_name}} <span style="color: #8095a8"></span></strong>
</span> </span>
<span class="text-muted text-xs block"> <span class="text-muted text-xs block">
{{ session_role_id | to_role_name }} <b class="caret"></b> {{ session_role_id | to_role_name }} <b class="caret"></b>
...@@ -16,8 +16,8 @@ ...@@ -16,8 +16,8 @@
</a> </a>
<ul class="dropdown-menu animated fadeInRight m-t-xs"> <ul class="dropdown-menu animated fadeInRight m-t-xs">
<li><a value="/juser/profile/?id={{ session_user_id }}" class="iframe_user">个人信息</a></li> <li><a value="/juser/profile/?id={{ session_user_id }}" class="iframe_user">个人信息</a></li>
<li><a href="/juser/chg_info/">修改信息</a></li> <li><a href="/juser/change_info/">修改信息</a></li>
<li><a href="/juser/chg_role/">切换角色</a></li> <li><a href="/juser/change_role/">切换角色</a></li>
<li class="divider"></li> <li class="divider"></li>
<li><a href="/logout/">注销</a></li> <li><a href="/logout/">注销</a></li>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment