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