[Bug&Update] 以下bug和功能

- 修复新建资产不选管理用户和集群异常bug
- profile下拉增加icon
- 授权api增加os和platform
pull/915/head
ibuler 2018-01-09 13:10:28 +08:00
parent c0829194dc
commit 450a9495ec
6 changed files with 15 additions and 14 deletions

View File

@ -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']

View File

@ -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

View File

@ -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或其它认证查看自己授权的资产,资产组等

View File

@ -30,17 +30,16 @@
</span>
</a>
<ul class="dropdown-menu animated fadeInRight m-t-xs">
<li><a href="{% url 'users:user-profile' %}">{% trans 'Profile' %}</a></li>
<li><a href="{% url 'users:user-profile-update' %}">{% trans 'Profile settings' %}</a></li>
<li><a href="{% url 'users:user-profile' %}"><i class="fa fa-cogs"> </i><span> {% trans 'Profile' %}</span></a></li>
<li class="divider"></li>
{% if request.user.is_superuser %}
{% if request.COOKIES.IN_ADMIN_PAGE == 'No' %}
<li><a id="switch_admin">{% trans 'Admin page' %}</a></li>
<li><a id="switch_admin"><i class="fa fa-exchange"></i><span> {% trans 'Admin page' %}</span></a></li>
{% else %}
<li><a id="switch_user">{% trans 'User page' %}</a></li>
<li><a id="switch_user"><i class="fa fa-exchange"></i><span> {% trans 'User page' %}</span></a></li>
{% endif %}
{% endif %}
<li><a href="{% url 'users:logout' %}">{% trans 'Logout' %}</a></li>
<li><a href="{% url 'users:logout' %}"><i class="fa fa-sign-out"></i> {% trans 'Logout' %}</a></li>
</ul>
{% else %}
<a href="{% url 'users:login' %}">

View File

@ -30,7 +30,7 @@ $(document).ready(function () {
setTimeout(function () {
delCookie(cookieName);
setCookie(cookieName, "No");
window.location = "/"
window.location = "{% url 'assets:user-asset-list' %}"
}, 100);
})
</script>

View File

@ -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