From 450a9495ec761704df98cb1c75a9700303eb8eec Mon Sep 17 00:00:00 2001 From: ibuler Date: Tue, 9 Jan 2018 13:10:28 +0800 Subject: [PATCH] =?UTF-8?q?[Bug&Update]=20=E4=BB=A5=E4=B8=8Bbug=E5=92=8C?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=20-=20=E4=BF=AE=E5=A4=8D=E6=96=B0=E5=BB=BA?= =?UTF-8?q?=E8=B5=84=E4=BA=A7=E4=B8=8D=E9=80=89=E7=AE=A1=E7=90=86=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=92=8C=E9=9B=86=E7=BE=A4=E5=BC=82=E5=B8=B8bug=20-?= =?UTF-8?q?=20profile=E4=B8=8B=E6=8B=89=E5=A2=9E=E5=8A=A0icon=20-=20?= =?UTF-8?q?=E6=8E=88=E6=9D=83api=E5=A2=9E=E5=8A=A0os=E5=92=8Cplatform?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/forms.py | 4 ++-- apps/assets/serializers.py | 2 +- apps/perms/urls/api_urls.py | 4 +--- apps/templates/_header_bar.html | 9 ++++----- apps/templates/_user_profile.html | 2 +- apps/users/models/user.py | 8 ++++++-- 6 files changed, 15 insertions(+), 14 deletions(-) diff --git a/apps/assets/forms.py b/apps/assets/forms.py index 7b405fea5..72d38f85f 100644 --- a/apps/assets/forms.py +++ b/apps/assets/forms.py @@ -36,7 +36,7 @@ class AssetCreateForm(forms.ModelForm): def clean_admin_user(self): cluster = self.cleaned_data.get('cluster') admin_user = self.cleaned_data.get('admin_user') - if not cluster.admin_user and not admin_user: + if not admin_user and (cluster and not cluster.admin_user): raise forms.ValidationError(_("You need set a admin user if cluster not have")) return self.cleaned_data['admin_user'] @@ -64,7 +64,7 @@ class AssetUpdateForm(forms.ModelForm): def clean_admin_user(self): cluster = self.cleaned_data.get('cluster') admin_user = self.cleaned_data.get('admin_user') - if not cluster.admin_user and not admin_user: + if not admin_user and (cluster and not cluster.admin_user): raise forms.ValidationError(_("You need set a admin user if cluster not have")) return self.cleaned_data['admin_user'] diff --git a/apps/assets/serializers.py b/apps/assets/serializers.py index f77910763..401aeac2a 100644 --- a/apps/assets/serializers.py +++ b/apps/assets/serializers.py @@ -192,7 +192,7 @@ class AssetGrantedSerializer(serializers.ModelSerializer): class Meta(object): model = Asset fields = ("id", "hostname", "ip", "port", "system_users_granted", - "is_inherited", "is_active", "system_users_join", + "is_inherited", "is_active", "system_users_join", "os", "platform", "comment",) @staticmethod diff --git a/apps/perms/urls/api_urls.py b/apps/perms/urls/api_urls.py index f59bb178e..a9fad1eac 100644 --- a/apps/perms/urls/api_urls.py +++ b/apps/perms/urls/api_urls.py @@ -7,9 +7,7 @@ from .. import api app_name = 'perms' router = routers.DefaultRouter() -router.register('v1/asset-permissions', - api.AssetPermissionViewSet, - 'asset-permission') +router.register('v1/asset-permissions', api.AssetPermissionViewSet, 'asset-permission') urlpatterns = [ # 用户可以使用自己的Token或其它认证查看自己授权的资产,资产组等 diff --git a/apps/templates/_header_bar.html b/apps/templates/_header_bar.html index aad0d8526..a8866dfcc 100644 --- a/apps/templates/_header_bar.html +++ b/apps/templates/_header_bar.html @@ -30,17 +30,16 @@ {% else %} diff --git a/apps/templates/_user_profile.html b/apps/templates/_user_profile.html index 1fd07b5c6..06f793c1a 100644 --- a/apps/templates/_user_profile.html +++ b/apps/templates/_user_profile.html @@ -30,7 +30,7 @@ $(document).ready(function () { setTimeout(function () { delCookie(cookieName); setCookie(cookieName, "No"); - window.location = "/" + window.location = "{% url 'assets:user-asset-list' %}" }, 100); }) diff --git a/apps/users/models/user.py b/apps/users/models/user.py index 8b2e33ec1..899cec4cb 100644 --- a/apps/users/models/user.py +++ b/apps/users/models/user.py @@ -168,6 +168,11 @@ class User(AbstractUser): token = PrivateToken.objects.create(user=self) return token.key + def create_access_key(self): + from . import AccessKey + access_key = AccessKey.objects.create(user=self) + return access_key + def refresh_private_token(self): from .authentication import PrivateToken PrivateToken.objects.filter(user=self).delete() @@ -214,13 +219,12 @@ class User(AbstractUser): @classmethod def create_app_user(cls, name, comment): - from . import AccessKey app = cls.objects.create( username=name, name=name, email='{}@local.domain'.format(name), is_active=False, role='App', enable_otp=False, comment=comment, is_first_login=False, created_by='System' ) - access_key = AccessKey.objects.create(user=app) + access_key = app.create_access_key() return app, access_key @classmethod