Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
J
jumpserver
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ops
jumpserver
Commits
9e52e6a3
Commit
9e52e6a3
authored
Jul 03, 2015
by
ibuler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
modify some
parent
f3a0c390
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
64 additions
and
60 deletions
+64
-60
api.py
jumpserver/api.py
+14
-13
views.py
juser/views.py
+50
-47
No files found.
jumpserver/api.py
View file @
9e52e6a3
...
@@ -40,6 +40,7 @@ LDAP_ENABLE = CONF.getint('ldap', 'ldap_enable')
...
@@ -40,6 +40,7 @@ LDAP_ENABLE = CONF.getint('ldap', 'ldap_enable')
SEND_IP
=
CONF
.
get
(
'base'
,
'ip'
)
SEND_IP
=
CONF
.
get
(
'base'
,
'ip'
)
SEND_PORT
=
CONF
.
get
(
'base'
,
'port'
)
SEND_PORT
=
CONF
.
get
(
'base'
,
'port'
)
MAIL_FROM
=
CONF
.
get
(
'mail'
,
'email_host_user'
)
MAIL_FROM
=
CONF
.
get
(
'mail'
,
'email_host_user'
)
log_level
=
CONF
.
get
(
'base'
,
'log'
)
log_level
=
CONF
.
get
(
'base'
,
'log'
)
log_level_total
=
{
'debug'
:
logging
.
DEBUG
,
'info'
:
logging
.
INFO
,
'warning'
:
logging
.
WARN
,
'error'
:
logging
.
ERROR
,
log_level_total
=
{
'debug'
:
logging
.
DEBUG
,
'info'
:
logging
.
INFO
,
'warning'
:
logging
.
WARN
,
'error'
:
logging
.
ERROR
,
'critical'
:
logging
.
CRITICAL
}
'critical'
:
logging
.
CRITICAL
}
...
@@ -295,21 +296,21 @@ def api_user(request):
...
@@ -295,21 +296,21 @@ def api_user(request):
return
HttpResponse
(
json_data
)
return
HttpResponse
(
json_data
)
def
view_splitter
(
request
,
su
=
None
,
adm
=
None
):
#
def view_splitter(request, su=None, adm=None):
if
is_super_user
(
request
):
#
if is_super_user(request):
return
su
(
request
)
#
return su(request)
elif
is_group_admin
(
request
):
#
elif is_group_admin(request):
return
adm
(
request
)
#
return adm(request)
else
:
#
else:
return
HttpResponseRedirect
(
'/login/'
)
#
return HttpResponseRedirect('/login/')
def
user_group_perm_asset_group_api
(
user_group
):
#
def user_group_perm_asset_group_api(user_group):
asset_group_list
=
[]
#
asset_group_list = []
perm_list
=
user_group
.
perm_set
.
all
()
#
perm_list = user_group.perm_set.all()
for
perm
in
perm_list
:
#
for perm in perm_list:
asset_group_list
.
append
(
perm
.
asset_group
)
#
asset_group_list.append(perm.asset_group)
return
asset_group_list
#
return asset_group_list
class
Juser
(
object
):
class
Juser
(
object
):
...
...
juser/views.py
View file @
9e52e6a3
...
@@ -6,15 +6,18 @@ import random
...
@@ -6,15 +6,18 @@ import random
from
Crypto.PublicKey
import
RSA
from
Crypto.PublicKey
import
RSA
import
crypt
import
crypt
from
django.shortcuts
import
render_to_response
from
django.db.models
import
Q
from
django.db.models
import
Q
from
django.template
import
RequestContext
from
django.template
import
RequestContext
from
django.db.models
import
ObjectDoesNotExist
from
jumpserver.api
import
*
from
jumpserver.api
import
*
def
gen_rand_pwd
(
num
):
def
gen_rand_pwd
(
num
):
"""生成随机密码"""
"""
generate random password
生成随机密码
"""
seed
=
"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
seed
=
"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
salt_list
=
[]
salt_list
=
[]
for
i
in
range
(
num
):
for
i
in
range
(
num
):
...
@@ -23,24 +26,24 @@ def gen_rand_pwd(num):
...
@@ -23,24 +26,24 @@ def gen_rand_pwd(num):
return
salt
return
salt
class
AddError
(
Exception
):
pass
def
gen_sha512
(
salt
,
password
):
def
gen_sha512
(
salt
,
password
):
"""
generate sha512 format password
生成sha512加密密码
"""
return
crypt
.
crypt
(
password
,
'$6$
%
s$'
%
salt
)
return
crypt
.
crypt
(
password
,
'$6$
%
s$'
%
salt
)
def
group_add_user
(
group
,
user_id
=
None
,
username
=
None
):
def
group_add_user
(
group
,
user_id
=
None
,
username
=
None
):
try
:
"""
if
user_id
:
用户组中添加用户
user
=
User
.
objects
.
get
(
id
=
user_id
)
UserGroup Add a user
else
:
"""
user
=
User
.
objects
.
get
(
username
=
username
)
if
user_id
:
except
ObjectDoesNotExist
:
user
=
get_object
(
User
,
id
=
user_id
)
raise
AddError
(
'用户获取失败'
)
else
:
else
:
group
.
user_set
.
add
(
user
)
user
=
get_object
(
User
,
username
=
username
)
group
.
user_set
.
add
(
user
)
def
db_add_group
(
**
kwargs
):
def
db_add_group
(
**
kwargs
):
...
@@ -48,7 +51,7 @@ def db_add_group(**kwargs):
...
@@ -48,7 +51,7 @@ def db_add_group(**kwargs):
group
=
UserGroup
.
objects
.
filter
(
name
=
name
)
group
=
UserGroup
.
objects
.
filter
(
name
=
name
)
users
=
kwargs
.
pop
(
'users'
)
users
=
kwargs
.
pop
(
'users'
)
if
group
:
if
group
:
raise
Add
Error
(
u'用户组
%
s 已经存在'
%
name
)
raise
Server
Error
(
u'用户组
%
s 已经存在'
%
name
)
group
=
UserGroup
(
**
kwargs
)
group
=
UserGroup
(
**
kwargs
)
group
.
save
()
group
.
save
()
for
user_id
in
users
:
for
user_id
in
users
:
...
@@ -129,7 +132,7 @@ def ldap_add_user(username, ldap_pwd):
...
@@ -129,7 +132,7 @@ def ldap_add_user(username, ldap_pwd):
if
user
:
if
user
:
user
=
user
[
0
]
user
=
user
[
0
]
else
:
else
:
raise
Add
Error
(
u'用户
%
s 不存在'
%
username
)
raise
Server
Error
(
u'用户
%
s 不存在'
%
username
)
user_attr
=
{
'uid'
:
[
str
(
username
)],
user_attr
=
{
'uid'
:
[
str
(
username
)],
'cn'
:
[
str
(
username
)],
'cn'
:
[
str
(
username
)],
...
@@ -173,10 +176,10 @@ def dept_add(request):
...
@@ -173,10 +176,10 @@ def dept_add(request):
try
:
try
:
if
not
name
:
if
not
name
:
raise
Add
Error
(
'部门名称不能为空'
)
raise
Server
Error
(
'部门名称不能为空'
)
if
DEPT
.
objects
.
filter
(
name
=
name
):
if
DEPT
.
objects
.
filter
(
name
=
name
):
raise
Add
Error
(
u'部门名称
%
s 已存在'
%
name
)
raise
Server
Error
(
u'部门名称
%
s 已存在'
%
name
)
except
Add
Error
,
e
:
except
Server
Error
,
e
:
error
=
e
error
=
e
else
:
else
:
DEPT
(
name
=
name
,
comment
=
comment
)
.
save
()
DEPT
(
name
=
name
,
comment
=
comment
)
.
save
()
...
@@ -341,21 +344,21 @@ def group_add(request):
...
@@ -341,21 +344,21 @@ def group_add(request):
try
:
try
:
if
''
in
[
group_name
,
dept_id
]:
if
''
in
[
group_name
,
dept_id
]:
error
=
u'组名 或 部门 不能为空'
error
=
u'组名 或 部门 不能为空'
raise
Add
Error
(
error
)
raise
Server
Error
(
error
)
if
UserGroup
.
objects
.
filter
(
name
=
group_name
):
if
UserGroup
.
objects
.
filter
(
name
=
group_name
):
error
=
u'组名已存在'
error
=
u'组名已存在'
raise
Add
Error
(
error
)
raise
Server
Error
(
error
)
dept
=
DEPT
.
objects
.
filter
(
id
=
dept_id
)
dept
=
DEPT
.
objects
.
filter
(
id
=
dept_id
)
if
dept
:
if
dept
:
dept
=
dept
[
0
]
dept
=
dept
[
0
]
else
:
else
:
error
=
u'部门不存在'
error
=
u'部门不存在'
raise
Add
Error
(
error
)
raise
Server
Error
(
error
)
db_add_group
(
name
=
group_name
,
users
=
users_selected
,
dept
=
dept
,
comment
=
comment
)
db_add_group
(
name
=
group_name
,
users
=
users_selected
,
dept
=
dept
,
comment
=
comment
)
except
Add
Error
:
except
Server
Error
:
pass
pass
except
TypeError
:
except
TypeError
:
error
=
u'保存小组失败'
error
=
u'保存小组失败'
...
@@ -380,13 +383,13 @@ def group_add_adm(request):
...
@@ -380,13 +383,13 @@ def group_add_adm(request):
try
:
try
:
if
not
validate
(
request
,
user
=
users_selected
):
if
not
validate
(
request
,
user
=
users_selected
):
raise
Add
Error
(
'没有某用户权限'
)
raise
Server
Error
(
'没有某用户权限'
)
if
''
in
[
group_name
]:
if
''
in
[
group_name
]:
error
=
u'组名不能为空'
error
=
u'组名不能为空'
raise
Add
Error
(
error
)
raise
Server
Error
(
error
)
db_add_group
(
name
=
group_name
,
users
=
users_selected
,
dept
=
dept
,
comment
=
comment
)
db_add_group
(
name
=
group_name
,
users
=
users_selected
,
dept
=
dept
,
comment
=
comment
)
except
Add
Error
:
except
Server
Error
:
pass
pass
except
TypeError
:
except
TypeError
:
error
=
u'保存小组失败'
error
=
u'保存小组失败'
...
@@ -509,12 +512,12 @@ def group_edit(request):
...
@@ -509,12 +512,12 @@ def group_edit(request):
users
=
[]
users
=
[]
try
:
try
:
if
''
in
[
group_id
,
group_name
]:
if
''
in
[
group_id
,
group_name
]:
raise
Add
Error
(
'组名不能为空'
)
raise
Server
Error
(
'组名不能为空'
)
dept
=
DEPT
.
objects
.
filter
(
id
=
dept_id
)
dept
=
DEPT
.
objects
.
filter
(
id
=
dept_id
)
if
dept
:
if
dept
:
dept
=
dept
[
0
]
dept
=
dept
[
0
]
else
:
else
:
raise
Add
Error
(
'部门不存在'
)
raise
Server
Error
(
'部门不存在'
)
for
user_id
in
users_selected
:
for
user_id
in
users_selected
:
users
.
extend
(
User
.
objects
.
filter
(
id
=
user_id
))
users
.
extend
(
User
.
objects
.
filter
(
id
=
user_id
))
...
@@ -525,7 +528,7 @@ def group_edit(request):
...
@@ -525,7 +528,7 @@ def group_edit(request):
user_group
.
user_set
.
clear
()
user_group
.
user_set
.
clear
()
user_group
.
user_set
=
users
user_group
.
user_set
=
users
except
Add
Error
,
e
:
except
Server
Error
,
e
:
error
=
e
error
=
e
return
HttpResponseRedirect
(
'/juser/group_list/'
)
return
HttpResponseRedirect
(
'/juser/group_list/'
)
...
@@ -558,10 +561,10 @@ def group_edit_adm(request):
...
@@ -558,10 +561,10 @@ def group_edit_adm(request):
users
=
[]
users
=
[]
try
:
try
:
if
not
validate
(
request
,
user
=
users_selected
):
if
not
validate
(
request
,
user
=
users_selected
):
raise
Add
Error
(
u'右侧非部门用户'
)
raise
Server
Error
(
u'右侧非部门用户'
)
if
not
validate
(
request
,
user_group
=
[
group_id
]):
if
not
validate
(
request
,
user_group
=
[
group_id
]):
raise
Add
Error
(
u'没有权限修改本组'
)
raise
Server
Error
(
u'没有权限修改本组'
)
for
user_id
in
users_selected
:
for
user_id
in
users_selected
:
users
.
extend
(
User
.
objects
.
filter
(
id
=
user_id
))
users
.
extend
(
User
.
objects
.
filter
(
id
=
user_id
))
...
@@ -573,7 +576,7 @@ def group_edit_adm(request):
...
@@ -573,7 +576,7 @@ def group_edit_adm(request):
user_group
.
user_set
.
clear
()
user_group
.
user_set
.
clear
()
user_group
.
user_set
=
users
user_group
.
user_set
=
users
except
Add
Error
,
e
:
except
Server
Error
,
e
:
error
=
e
error
=
e
return
HttpResponseRedirect
(
'/juser/group_list/'
)
return
HttpResponseRedirect
(
'/juser/group_list/'
)
...
@@ -603,28 +606,28 @@ def user_add(request):
...
@@ -603,28 +606,28 @@ def user_add(request):
try
:
try
:
if
''
in
[
username
,
password
,
ssh_key_pwd
,
name
,
groups
,
role_post
,
is_active
]:
if
''
in
[
username
,
password
,
ssh_key_pwd
,
name
,
groups
,
role_post
,
is_active
]:
error
=
u'带*内容不能为空'
error
=
u'带*内容不能为空'
raise
Add
Error
raise
Server
Error
user
=
User
.
objects
.
filter
(
username
=
username
)
user
=
User
.
objects
.
filter
(
username
=
username
)
if
user
:
if
user
:
error
=
u'用户
%
s 已存在'
%
username
error
=
u'用户
%
s 已存在'
%
username
raise
Add
Error
raise
Server
Error
dept
=
DEPT
.
objects
.
filter
(
id
=
dept_id
)
dept
=
DEPT
.
objects
.
filter
(
id
=
dept_id
)
if
dept
:
if
dept
:
dept
=
dept
[
0
]
dept
=
dept
[
0
]
else
:
else
:
error
=
u'部门不存在'
error
=
u'部门不存在'
raise
Add
Error
(
error
)
raise
Server
Error
(
error
)
except
Add
Error
:
except
Server
Error
:
pass
pass
else
:
else
:
try
:
try
:
user
=
db_add_user
(
username
=
username
,
user
=
db_add_user
(
username
=
username
,
password
=
md5_crypt
(
password
),
password
=
CRYPTOR
.
md5_crypt
(
password
),
name
=
name
,
email
=
email
,
dept
=
dept
,
name
=
name
,
email
=
email
,
dept
=
dept
,
groups
=
groups
,
role
=
role_post
,
groups
=
groups
,
role
=
role_post
,
ssh_key_pwd
=
md5_crypt
(
ssh_key_pwd
),
ssh_key_pwd
=
CRYPTOR
.
md5_crypt
(
ssh_key_pwd
),
ldap_pwd
=
CRYPTOR
.
encrypt
(
ldap_pwd
),
ldap_pwd
=
CRYPTOR
.
encrypt
(
ldap_pwd
),
is_active
=
is_active
,
is_active
=
is_active
,
date_joined
=
datetime
.
datetime
.
now
())
date_joined
=
datetime
.
datetime
.
now
())
...
@@ -681,21 +684,21 @@ def user_add_adm(request):
...
@@ -681,21 +684,21 @@ def user_add_adm(request):
try
:
try
:
if
''
in
[
username
,
password
,
ssh_key_pwd
,
name
,
groups
,
is_active
]:
if
''
in
[
username
,
password
,
ssh_key_pwd
,
name
,
groups
,
is_active
]:
error
=
u'带*内容不能为空'
error
=
u'带*内容不能为空'
raise
Add
Error
raise
Server
Error
user
=
User
.
objects
.
filter
(
username
=
username
)
user
=
User
.
objects
.
filter
(
username
=
username
)
if
user
:
if
user
:
error
=
u'用户
%
s 已存在'
%
username
error
=
u'用户
%
s 已存在'
%
username
raise
Add
Error
raise
Server
Error
except
Add
Error
:
except
Server
Error
:
pass
pass
else
:
else
:
try
:
try
:
user
=
db_add_user
(
username
=
username
,
user
=
db_add_user
(
username
=
username
,
password
=
md5_crypt
(
password
),
password
=
CRYPTOR
.
md5_crypt
(
password
),
name
=
name
,
email
=
email
,
dept
=
dept
,
name
=
name
,
email
=
email
,
dept
=
dept
,
groups
=
groups
,
role
=
'CU'
,
groups
=
groups
,
role
=
'CU'
,
ssh_key_pwd
=
md5_crypt
(
ssh_key_pwd
),
ssh_key_pwd
=
CRYPTOR
.
md5_crypt
(
ssh_key_pwd
),
ldap_pwd
=
CRYPTOR
.
encrypt
(
ldap_pwd
),
ldap_pwd
=
CRYPTOR
.
encrypt
(
ldap_pwd
),
is_active
=
is_active
,
is_active
=
is_active
,
date_joined
=
datetime
.
datetime
.
now
())
date_joined
=
datetime
.
datetime
.
now
())
...
@@ -892,7 +895,7 @@ def user_edit(request):
...
@@ -892,7 +895,7 @@ def user_edit(request):
return
HttpResponseRedirect
(
'/juser/user_list/'
)
return
HttpResponseRedirect
(
'/juser/user_list/'
)
if
password
!=
user
.
password
:
if
password
!=
user
.
password
:
password
=
md5_crypt
(
password
)
password
=
CRYPTOR
.
md5_crypt
(
password
)
if
ssh_key_pwd
!=
user
.
ssh_key_pwd
:
if
ssh_key_pwd
!=
user
.
ssh_key_pwd
:
gen_ssh_key
(
user
.
username
,
ssh_key_pwd
)
gen_ssh_key
(
user
.
username
,
ssh_key_pwd
)
...
@@ -951,7 +954,7 @@ def user_edit_adm(request):
...
@@ -951,7 +954,7 @@ def user_edit_adm(request):
return
HttpResponseRedirect
(
'/juser/user_list/'
)
return
HttpResponseRedirect
(
'/juser/user_list/'
)
if
password
!=
user
.
password
:
if
password
!=
user
.
password
:
password
=
md5_crypt
(
password
)
password
=
CRYPTOR
.
md5_crypt
(
password
)
if
ssh_key_pwd
!=
user
.
ssh_key_pwd
:
if
ssh_key_pwd
!=
user
.
ssh_key_pwd
:
ssh_key_pwd
=
CRYPTOR
.
encrypt
(
ssh_key_pwd
)
ssh_key_pwd
=
CRYPTOR
.
encrypt
(
ssh_key_pwd
)
...
@@ -1001,11 +1004,11 @@ def chg_info(request):
...
@@ -1001,11 +1004,11 @@ def chg_info(request):
if
not
error
:
if
not
error
:
if
password
!=
user
.
password
:
if
password
!=
user
.
password
:
password
=
md5_crypt
(
password
)
password
=
CRYPTOR
.
md5_crypt
(
password
)
if
ssh_key_pwd
!=
user
.
ssh_key_pwd
:
if
ssh_key_pwd
!=
user
.
ssh_key_pwd
:
gen_ssh_key
(
user
.
username
,
ssh_key_pwd
)
gen_ssh_key
(
user
.
username
,
ssh_key_pwd
)
ssh_key_pwd
=
md5_crypt
(
ssh_key_pwd
)
ssh_key_pwd
=
CRYPTOR
.
md5_crypt
(
ssh_key_pwd
)
user_set
.
update
(
name
=
name
,
password
=
password
,
ssh_key_pwd
=
ssh_key_pwd
,
email
=
email
)
user_set
.
update
(
name
=
name
,
password
=
password
,
ssh_key_pwd
=
ssh_key_pwd
,
email
=
email
)
msg
=
'修改成功'
msg
=
'修改成功'
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment