Merge pull request #3908 from jumpserver/dev

Dev
pull/3954/head
BaiJiangJie 2020-04-16 18:30:54 +08:00 committed by GitHub
commit e9fe5b3004
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 19 additions and 11 deletions

View File

@ -76,9 +76,15 @@ class TreeService(Tree):
ancestor_ids.pop(0)
return ancestor_ids
def ancestors(self, nid, with_self=False, deep=False):
def ancestors(self, nid, with_self=False, deep=False, with_assets=True):
ancestor_ids = self.ancestors_ids(nid, with_self=with_self)
return [self.get_node(i, deep=deep) for i in ancestor_ids]
ancestors = [self.get_node(i, deep=deep) for i in ancestor_ids]
if with_assets:
return ancestors
for n in ancestors:
n.data['assets'] = set()
n.data['all_assets'] = None
return ancestors
def get_node_full_tag(self, nid):
ancestors = self.ancestors(nid, with_self=True)

View File

@ -84,8 +84,7 @@ class SimpleMetadataWithFilters(SimpleMetadata):
def get_filters_fields(self, request, view):
fields = []
if hasattr(view, 'get_filter_fields'):
# fields = view.get_filter_fields(request)
fields = view.get_filter_fields()
fields = view.get_filter_fields(request)
elif hasattr(view, 'filter_fields'):
fields = view.filter_fields
return fields
@ -93,9 +92,9 @@ class SimpleMetadataWithFilters(SimpleMetadata):
def get_ordering_fields(self, request, view):
fields = []
if hasattr(view, 'get_ordering_fields'):
fields = view.get_filter_fields(request)
fields = view.get_ordering_fields(request)
elif hasattr(view, 'ordering_fields'):
fields = view.filter_fields
fields = view.ordering_fields
return fields
def determine_metadata(self, request, view):

View File

@ -290,7 +290,7 @@ class AssetPermissionUtil(AssetPermissionUtilCacheMixin):
def parse_user_tree_to_full_tree(self, user_tree):
"""
经过前面两个动作用户授权的节点已放到树上但是树不是完整的
这里要讲树构造成一个完整的
这里要讲树构造成一个完整的
"""
# 开始修正user_tree保证父节点都在树上
root_children = user_tree.children('')
@ -300,7 +300,8 @@ class AssetPermissionUtil(AssetPermissionUtilCacheMixin):
if child.identifier.startswith('-'):
continue
ancestors = self.full_tree.ancestors(
child.identifier, with_self=False, deep=True
child.identifier, with_self=False, deep=True,
with_assets=False,
)
if not ancestors:
continue

View File

@ -63,7 +63,7 @@ class CommandQueryMixin:
def filter_queryset(self, queryset):
return queryset
def get_filter_fields(self):
def get_filter_fields(self, request):
fields = self.filter_fields
fields.extend(["date_from", "date_to"])
return fields

View File

@ -43,11 +43,13 @@ class UserForgotPasswordView(FormView):
user = get_object_or_none(User, email=email)
if not user:
error = _('Email address invalid, please input again')
return self.get(request, errors=error)
form.add_error('email', error)
return self.form_invalid(form)
elif not user.can_update_password():
error = _('User auth from {}, go there change password'.format(
user.source))
return self.get(request, errors=error)
form.add_error('email', error)
return self.form_invalid(form)
else:
send_reset_password_mail(user)
return redirect('users:forgot-password-sendmail-success')