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
fe1f825f
Commit
fe1f825f
authored
Oct 19, 2015
by
ibuler@qq.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
perm edit
parent
50d2bfb2
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
149 additions
and
16 deletions
+149
-16
views.py
jasset/views.py
+0
-0
perm_api.py
jperm/perm_api.py
+149
-16
No files found.
jasset/views.py
View file @
fe1f825f
This diff is collapsed.
Click to expand it.
jperm/perm_api.py
View file @
fe1f825f
...
@@ -65,10 +65,10 @@ def perm_user_api(perm_info):
...
@@ -65,10 +65,10 @@ def perm_user_api(perm_info):
'assets': []}}
'assets': []}}
"""
"""
try
:
try
:
new_users
=
perm_info
[
'new'
][
'users'
]
new_users
=
perm_info
.
get
(
'new'
,
{})
.
get
(
'users'
,
[])
new_assets
=
perm_info
[
'new'
][
'assets'
]
new_assets
=
perm_info
.
get
(
'new'
,
{})
.
get
(
'assets'
,[])
del_users
=
perm_info
[
'del'
][
'users'
]
del_users
=
perm_info
.
get
(
'del'
,
{})
.
get
(
'users'
,
[])
del_assets
=
perm_info
[
'del'
][
'assets'
]
del_assets
=
perm_info
.
get
(
'del'
,
{})
.
get
(
'assets'
,
[])
print
new_users
,
new_assets
print
new_users
,
new_assets
except
IndexError
:
except
IndexError
:
...
@@ -117,18 +117,151 @@ def perm_user_api(perm_info):
...
@@ -117,18 +117,151 @@ def perm_user_api(perm_info):
return
results
return
results
def
get_user_assets
(
user
):
def
user_group_permed
(
user_group
):
if
isinstance
(
user
,
int
):
assets
=
user_group
.
asset_set
.
all
()
user
=
get_object
(
User
,
id
=
user
)
asset_groups
=
user_group
.
asset_group
.
all
()
elif
isinstance
(
user
,
str
):
user
=
get_object
(
User
,
username
=
user
)
for
asset_group
in
asset_groups
:
elif
isinstance
(
user
,
User
):
assets
.
extend
(
asset_group
.
asset
.
all
())
user
=
user
else
:
return
{
'assets'
:
assets
,
'asset_groups'
:
asset_groups
}
user
=
None
def
user_permed
(
user
):
asset_groups
=
[]
assets
=
[]
user_groups
=
user
.
user_group
.
all
()
asset_groups
.
extend
(
user
.
asset_group
.
all
())
assets
.
extend
(
user
.
asset
.
all
())
for
user_group
in
user_groups
:
asset_groups
.
extend
(
user_group_permed
(
user_group
)
.
get
(
'assets'
,
[]))
assets
.
extend
((
user_group_permed
(
user_group
)
.
get
(
'asset_groups'
,
[])))
return
{
'assets'
:
assets
,
'asset_groups'
:
asset_groups
}
def
_public_perm_api
(
info
):
"""
公用的用户,用户组,主机,主机组编辑修改新建调用的api,用来完成授权
info like that:
{
'type': 'new_user',
'user': 'a',
'group': ['A', 'B']
}
{
'type': 'edit_user',
'user': 'a',
'group': {'new': ['A'], 'del': []}
}
{
'type': 'del_user',
'user': ['a', 'b']
}
{
'type': 'edit_user_group',
'group': 'A',
'user': {'del': ['a', 'b'], 'new': ['c', 'd']}
}
{
'type': 'del_user_group',
'group': ['A']
}
{
'type': 'new_asset',
'asset': 'a',
'group': ['A', 'B']
}
{
'type': 'edit_asset',
'asset': 'a',
'group': {
'del': ['A', ['B'],
'new': ['C', ['D']]
}
}
{
'type': 'del_asset',
'asset': ['a', 'b']
}
{
'type': 'edit_asset_group',
'group': 'A',
'asset': {'new': ['a', 'b'], 'del': ['c', 'd']}
}
{
'type': 'del_asset_group',
'group': ['A', 'B']
}
"""
if
info
.
get
(
'type'
)
==
'new_user'
:
new_assets
=
[]
user
=
info
.
get
(
'user'
)
user_groups
=
info
.
get
(
'group'
)
for
user_group
in
user_groups
:
new_assets
.
extend
(
user_group_permed
(
user_group
)
.
get
(
'assets'
,
[]))
perm_info
=
{
'new'
:
{
'users'
:
[
user
],
'assets'
:
new_assets
}
}
elif
info
.
get
(
'type'
)
==
'edit_user'
:
new_assets
=
[]
del_assets
=
[]
user
=
info
.
get
(
'user'
)
new_group
=
info
.
get
(
'group'
)
.
get
(
'new'
)
del_group
=
info
.
get
(
'group'
)
.
get
(
'del'
)
for
user_group
in
new_group
:
new_assets
.
extend
(
user_group_permed
(
user_group
)
.
get
(
'assets'
,
[]))
for
user_group
in
del_group
:
del_assets
.
extend
((
user_group_permed
(
user_group
)
.
get
(
'assets'
,
[])))
perm_info
=
{
'del'
:
{
'users'
:
[
user
],
'assets'
:
del_assets
},
'new'
:
{
'users'
:
[
user
],
'assets'
:
new_assets
}
}
elif
info
.
get
(
'type'
)
==
'del_user'
:
user
=
info
.
get
(
'user'
)
del_assets
=
user_permed
(
user
)
.
get
(
'assets'
,
[])
perm_info
=
{
'del'
:
{
'users'
:
[
user
],
'assets'
:
del_assets
},
}
elif
info
.
get
(
'type'
)
==
'edit_user_group'
:
user_group
=
info
.
get
(
'group'
)
new_users
=
info
.
get
(
'user'
)
.
get
(
'new'
)
del_users
=
info
.
get
(
'user'
)
.
get
(
'del'
)
assets
=
user_group_permed
(
user_group
)
.
get
(
'assets'
,
[])
perm_info
=
{
'new'
:
{
'users'
:
new_users
,
'assets'
:
assets
},
'del'
:
{
'users'
:
del_users
,
'assets'
:
assets
}
}
elif
info
.
get
(
'type'
)
==
'del_user_group'
:
assets
=
[]
user_groups
=
info
.
get
(
'group'
,
[])
del_users
=
[
user_group
.
user_set
.
all
()
for
user_group
in
user_groups
]
for
user_group
in
user_groups
:
assets
.
extend
(
user_group_permed
(
user_group
)
.
get
(
'assets'
,
[]))
perm_info
=
{}
def
refresh_group_api
(
user_group
=
None
,
asset_group
=
None
):
"""用户组添加删除用户,主机组添加删除主机触发"""
pass
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