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
c24f1a05
Commit
c24f1a05
authored
Jul 19, 2018
by
ibuler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[Update] 修改约束
parent
fd5f562c
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
39 additions
and
25 deletions
+39
-25
node.py
apps/assets/api/node.py
+10
-2
asset.py
apps/assets/models/asset.py
+1
-1
domain.py
apps/assets/models/domain.py
+1
-1
label.py
apps/assets/models/label.py
+1
-1
node.py
apps/assets/models/node.py
+4
-3
user.py
apps/assets/models/user.py
+2
-2
node.py
apps/assets/serializers/node.py
+2
-0
settings.py
apps/jumpserver/settings.py
+4
-4
mixins.py
apps/orgs/mixins.py
+12
-9
models.py
apps/orgs/models.py
+1
-1
group.py
apps/users/models/group.py
+1
-1
No files found.
apps/assets/api/node.py
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
...
...
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