Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
gjl2004yn
jumpserver
提交
c24f1a05
J
jumpserver
项目概览
gjl2004yn
/
jumpserver
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jumpserver
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c24f1a05
编写于
7月 19, 2018
作者:
baltery
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[Update] 修改约束
上级
fd5f562c
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
39 addition
and
25 deletion
+39
-25
apps/assets/api/node.py
apps/assets/api/node.py
+10
-2
apps/assets/models/asset.py
apps/assets/models/asset.py
+1
-1
apps/assets/models/domain.py
apps/assets/models/domain.py
+1
-1
apps/assets/models/label.py
apps/assets/models/label.py
+1
-1
apps/assets/models/node.py
apps/assets/models/node.py
+4
-3
apps/assets/models/user.py
apps/assets/models/user.py
+2
-2
apps/assets/serializers/node.py
apps/assets/serializers/node.py
+2
-0
apps/jumpserver/settings.py
apps/jumpserver/settings.py
+4
-4
apps/orgs/mixins.py
apps/orgs/mixins.py
+12
-9
apps/orgs/models.py
apps/orgs/models.py
+1
-1
apps/users/models/group.py
apps/users/models/group.py
+1
-1
未找到文件。
apps/assets/api/node.py
浏览文件 @
c24f1a05
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# See the License for the specific language governing permissions and
# limitations under the License.
# limitations under the License.
from
rest_framework
import
generics
,
mixins
from
rest_framework
import
generics
,
mixins
,
viewsets
from
rest_framework.serializers
import
ValidationError
from
rest_framework.serializers
import
ValidationError
from
rest_framework.views
import
APIView
from
rest_framework.views
import
APIView
from
rest_framework.response
import
Response
from
rest_framework.response
import
Response
...
@@ -22,6 +22,7 @@ from django.utils.translation import ugettext_lazy as _
...
@@ -22,6 +22,7 @@ from django.utils.translation import ugettext_lazy as _
from
django.shortcuts
import
get_object_or_404
from
django.shortcuts
import
get_object_or_404
from
common.utils
import
get_logger
,
get_object_or_none
from
common.utils
import
get_logger
,
get_object_or_none
from
orgs.utils
import
get_current_org
from
..hands
import
IsSuperUser
from
..hands
import
IsSuperUser
from
..models
import
Node
from
..models
import
Node
from
..tasks
import
update_assets_hardware_info_util
,
test_asset_connectability_util
from
..tasks
import
update_assets_hardware_info_util
,
test_asset_connectability_util
...
@@ -37,11 +38,18 @@ __all__ = [
...
@@ -37,11 +38,18 @@ __all__ = [
]
]
class
NodeViewSet
(
Bulk
ModelViewSet
):
class
NodeViewSet
(
viewsets
.
ModelViewSet
):
queryset
=
Node
.
objects
.
all
()
queryset
=
Node
.
objects
.
all
()
permission_classes
=
(
IsSuperUser
,)
permission_classes
=
(
IsSuperUser
,)
serializer_class
=
serializers
.
NodeSerializer
serializer_class
=
serializers
.
NodeSerializer
def
get_queryset
(
self
):
# queryset = super(NodeViewSet, self).get_queryset()
print
(
"API GET QUWRYSET"
)
# print(get_current_org())
# print(queryset)
return
Node
.
objects
.
all
()
def
perform_create
(
self
,
serializer
):
def
perform_create
(
self
,
serializer
):
child_key
=
Node
.
root
().
get_next_child_key
()
child_key
=
Node
.
root
().
get_next_child_key
()
serializer
.
validated_data
[
"key"
]
=
child_key
serializer
.
validated_data
[
"key"
]
=
child_key
...
...
apps/assets/models/asset.py
浏览文件 @
c24f1a05
...
@@ -225,7 +225,7 @@ class Asset(OrgModelMixin):
...
@@ -225,7 +225,7 @@ class Asset(OrgModelMixin):
return
data
return
data
class
Meta
:
class
Meta
:
unique_together
=
(
'org'
,
'hostname'
)
unique_together
=
[(
'org'
,
'hostname'
),]
verbose_name
=
_
(
"Asset"
)
verbose_name
=
_
(
"Asset"
)
@
classmethod
@
classmethod
...
...
apps/assets/models/domain.py
浏览文件 @
c24f1a05
...
@@ -52,4 +52,4 @@ class Gateway(AssetUser, OrgModelMixin):
...
@@ -52,4 +52,4 @@ class Gateway(AssetUser, OrgModelMixin):
return
self
.
name
return
self
.
name
class
Meta
:
class
Meta
:
unique_together
=
[
'name'
,
'org'
]
unique_together
=
[
(
'name'
,
'org'
)
]
apps/assets/models/label.py
浏览文件 @
c24f1a05
...
@@ -34,4 +34,4 @@ class Label(models.Model):
...
@@ -34,4 +34,4 @@ class Label(models.Model):
class
Meta
:
class
Meta
:
db_table
=
"assets_label"
db_table
=
"assets_label"
unique_together
=
(
'name'
,
'value'
)
unique_together
=
[(
'name'
,
'value'
),]
apps/assets/models/node.py
浏览文件 @
c24f1a05
...
@@ -23,7 +23,8 @@ class Node(OrgModelMixin):
...
@@ -23,7 +23,8 @@ class Node(OrgModelMixin):
is_node
=
True
is_node
=
True
def
__str__
(
self
):
def
__str__
(
self
):
return
self
.
full_value
return
self
.
value
# return self.full_value
def
__eq__
(
self
,
other
):
def
__eq__
(
self
,
other
):
return
self
.
key
==
other
.
key
return
self
.
key
==
other
.
key
...
@@ -181,8 +182,8 @@ class Node(OrgModelMixin):
...
@@ -181,8 +182,8 @@ class Node(OrgModelMixin):
@
classmethod
@
classmethod
def
root
(
cls
):
def
root
(
cls
):
root
=
cls
.
objects
.
filter
(
key__regex
=
r
'^[0-9]+$'
)
root
=
cls
.
objects
.
filter
(
key__regex
=
r
'^[0-9]+$'
)
if
len
(
root
)
==
1
:
if
root
:
return
root
.
get
()
return
root
[
0
]
else
:
else
:
return
cls
.
create_root_node
()
return
cls
.
create_root_node
()
...
...
apps/assets/models/user.py
浏览文件 @
c24f1a05
...
@@ -69,7 +69,7 @@ class AdminUser(AssetUser):
...
@@ -69,7 +69,7 @@ class AdminUser(AssetUser):
class
Meta
:
class
Meta
:
ordering
=
[
'name'
]
ordering
=
[
'name'
]
unique_together
=
[
'name'
,
'org'
]
unique_together
=
[
(
'name'
,
'org'
),
]
verbose_name
=
_
(
"Admin user"
)
verbose_name
=
_
(
"Admin user"
)
@
classmethod
@
classmethod
...
@@ -157,7 +157,7 @@ class SystemUser(AssetUser):
...
@@ -157,7 +157,7 @@ class SystemUser(AssetUser):
class
Meta
:
class
Meta
:
ordering
=
[
'name'
]
ordering
=
[
'name'
]
unique_together
=
[
'name'
,
'org'
]
unique_together
=
[
(
'name'
,
'org'
),
]
verbose_name
=
_
(
"System user"
)
verbose_name
=
_
(
"System user"
)
@
classmethod
@
classmethod
...
...
apps/assets/serializers/node.py
浏览文件 @
c24f1a05
...
@@ -31,6 +31,7 @@ class NodeGrantedSerializer(BulkSerializerMixin, serializers.ModelSerializer):
...
@@ -31,6 +31,7 @@ class NodeGrantedSerializer(BulkSerializerMixin, serializers.ModelSerializer):
@
staticmethod
@
staticmethod
def
get_assets_amount
(
obj
):
def
get_assets_amount
(
obj
):
return
1
return
len
(
obj
.
assets_granted
)
return
len
(
obj
.
assets_granted
)
@
staticmethod
@
staticmethod
...
@@ -39,6 +40,7 @@ class NodeGrantedSerializer(BulkSerializerMixin, serializers.ModelSerializer):
...
@@ -39,6 +40,7 @@ class NodeGrantedSerializer(BulkSerializerMixin, serializers.ModelSerializer):
@
staticmethod
@
staticmethod
def
get_parent
(
obj
):
def
get_parent
(
obj
):
return
'0'
return
obj
.
parent
.
id
return
obj
.
parent
.
id
...
...
apps/jumpserver/settings.py
浏览文件 @
c24f1a05
...
@@ -234,10 +234,10 @@ LOGGING = {
...
@@ -234,10 +234,10 @@ LOGGING = {
'handlers'
:
[
'console'
,
'ansible_logs'
],
'handlers'
:
[
'console'
,
'ansible_logs'
],
'level'
:
"INFO"
,
'level'
:
"INFO"
,
},
},
#
'django.db': {
'django.db'
:
{
#
'handlers': ['console', 'file'],
'handlers'
:
[
'console'
,
'file'
],
#
'level': 'DEBUG'
'level'
:
'DEBUG'
#
}
}
}
}
}
}
...
...
apps/orgs/mixins.py
浏览文件 @
c24f1a05
...
@@ -8,6 +8,7 @@ from django.forms import ModelForm
...
@@ -8,6 +8,7 @@ from django.forms import ModelForm
from
common.utils
import
get_logger
from
common.utils
import
get_logger
from
.utils
import
get_current_org
,
set_current_org
from
.utils
import
get_current_org
,
set_current_org
from
.models
import
Organization
logger
=
get_logger
(
__file__
)
logger
=
get_logger
(
__file__
)
...
@@ -32,19 +33,21 @@ class OrgManager(models.Manager):
...
@@ -32,19 +33,21 @@ class OrgManager(models.Manager):
queryset
=
super
(
OrgManager
,
self
).
get_queryset
()
queryset
=
super
(
OrgManager
,
self
).
get_queryset
()
queryset
=
queryset
.
filter
(
**
kwargs
)
queryset
=
queryset
.
filter
(
**
kwargs
)
# print(kwargs)
# print(kwargs)
print
(
queryset
.
query
)
#
print(queryset.query)
return
queryset
return
queryset
def
all
(
self
):
#
def all(self):
current_org
=
get_current_org
()
#
current_org = get_current_org()
if
not
current_org
:
#
if not current_org:
msg
=
'You can `objects.set_current_org(org).all()` then run it'
#
msg = 'You can `objects.set_current_org(org).all()` then run it'
warnings
.
warn
(
msg
)
#
warnings.warn(msg)
return
self
#
return self
else
:
#
else:
return
super
(
OrgManager
,
self
).
all
()
#
return super(OrgManager, self).all()
def
set_current_org
(
self
,
org
):
def
set_current_org
(
self
,
org
):
if
isinstance
(
org
,
str
):
org
=
Organization
.
objects
.
get
(
name
=
org
)
set_current_org
(
org
)
set_current_org
(
org
)
return
self
return
self
...
...
apps/orgs/models.py
浏览文件 @
c24f1a05
...
@@ -7,7 +7,7 @@ from django.utils.translation import ugettext_lazy as _
...
@@ -7,7 +7,7 @@ from django.utils.translation import ugettext_lazy as _
class
Organization
(
models
.
Model
):
class
Organization
(
models
.
Model
):
id
=
models
.
UUIDField
(
default
=
uuid
.
uuid4
,
primary_key
=
True
)
id
=
models
.
UUIDField
(
default
=
uuid
.
uuid4
,
primary_key
=
True
)
name
=
models
.
CharField
(
max_length
=
128
,
verbose_name
=
_
(
"Name"
))
name
=
models
.
CharField
(
max_length
=
128
,
unique
=
True
,
verbose_name
=
_
(
"Name"
))
users
=
models
.
ManyToManyField
(
'users.User'
,
related_name
=
'orgs'
,
blank
=
True
)
users
=
models
.
ManyToManyField
(
'users.User'
,
related_name
=
'orgs'
,
blank
=
True
)
admins
=
models
.
ManyToManyField
(
'users.User'
,
related_name
=
'admin_orgs'
,
blank
=
True
)
admins
=
models
.
ManyToManyField
(
'users.User'
,
related_name
=
'admin_orgs'
,
blank
=
True
)
created_by
=
models
.
CharField
(
max_length
=
32
,
null
=
True
,
blank
=
True
,
verbose_name
=
_
(
'Created by'
))
created_by
=
models
.
CharField
(
max_length
=
32
,
null
=
True
,
blank
=
True
,
verbose_name
=
_
(
'Created by'
))
...
...
apps/users/models/group.py
浏览文件 @
c24f1a05
...
@@ -22,7 +22,7 @@ class UserGroup(OrgModelMixin):
...
@@ -22,7 +22,7 @@ class UserGroup(OrgModelMixin):
class
Meta
:
class
Meta
:
ordering
=
[
'name'
]
ordering
=
[
'name'
]
unique_together
=
[
'org'
,
'name'
]
unique_together
=
[
(
'org'
,
'name'
),
]
verbose_name
=
_
(
"User group"
)
verbose_name
=
_
(
"User group"
)
@
classmethod
@
classmethod
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录