mirror of https://github.com/jumpserver/jumpserver
[Update] 修改一些bug, 增加执行task的按钮
parent
dfaf029a68
commit
c0829194dc
|
@ -81,7 +81,11 @@ class AssetUser(models.Model):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def public_key(self):
|
def public_key(self):
|
||||||
return signer.unsign(self._public_key)
|
key = signer.unsign(self._public_key)
|
||||||
|
if key:
|
||||||
|
return key
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def public_key_obj(self):
|
def public_key_obj(self):
|
||||||
|
|
|
@ -25,7 +25,7 @@ disk_pattern = re.compile(r'^hd|sd|xvd')
|
||||||
@shared_task
|
@shared_task
|
||||||
def set_assets_hardware_info(result, **kwargs):
|
def set_assets_hardware_info(result, **kwargs):
|
||||||
"""
|
"""
|
||||||
Unsing ops task run result, to update asset info
|
Using ops task run result, to update asset info
|
||||||
|
|
||||||
@shared_task must be exit, because we using it as a task callback, is must
|
@shared_task must be exit, because we using it as a task callback, is must
|
||||||
be a celery task also
|
be a celery task also
|
||||||
|
@ -309,6 +309,10 @@ def test_system_user_connectability_period():
|
||||||
#### Push system user tasks ####
|
#### Push system user tasks ####
|
||||||
|
|
||||||
def get_push_system_user_tasks(system_user):
|
def get_push_system_user_tasks(system_user):
|
||||||
|
# Set root as system user is dangerous
|
||||||
|
if system_user.username == "root":
|
||||||
|
return []
|
||||||
|
|
||||||
tasks = [
|
tasks = [
|
||||||
{
|
{
|
||||||
'name': 'Add user {}'.format(system_user.username),
|
'name': 'Add user {}'.format(system_user.username),
|
||||||
|
@ -316,7 +320,7 @@ def get_push_system_user_tasks(system_user):
|
||||||
'module': 'user',
|
'module': 'user',
|
||||||
'args': 'name={} shell={} state=present password={}'.format(
|
'args': 'name={} shell={} state=present password={}'.format(
|
||||||
system_user.username, system_user.shell,
|
system_user.username, system_user.shell,
|
||||||
encrypt_password(system_user.password),
|
encrypt_password(system_user.password, salt="K3mIlKK"),
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -21,11 +21,11 @@
|
||||||
<a href="{% url 'assets:admin-user-assets' pk=admin_user.pk %}" class="text-center"><i class="fa fa-laptop"></i> {% trans 'Assets list' %} </a>
|
<a href="{% url 'assets:admin-user-assets' pk=admin_user.pk %}" class="text-center"><i class="fa fa-laptop"></i> {% trans 'Assets list' %} </a>
|
||||||
</li>
|
</li>
|
||||||
<li class="pull-right">
|
<li class="pull-right">
|
||||||
<a class="btn btn-outline btn-default" href="{% url 'assets:admin-user-update' pk=admin_user.id %}"><i class="fa fa-edit"></i>Update</a>
|
<a class="btn btn-outline btn-default" href="{% url 'assets:admin-user-update' pk=admin_user.id %}"><i class="fa fa-edit"></i>{% trans 'Update' %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="pull-right">
|
<li class="pull-right">
|
||||||
<a class="btn btn-outline btn-danger btn-delete-admin-user">
|
<a class="btn btn-outline btn-danger btn-delete-admin-user">
|
||||||
<i class="fa fa-edit"></i>Delete
|
<i class="fa fa-trash-o"></i>{% trans 'Delete' %}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -21,11 +21,11 @@
|
||||||
<a href="{% url 'assets:admin-user-assets' pk=admin_user.pk %}" class="text-center"><i class="fa fa-laptop"></i> {% trans 'Assets list' %} </a>
|
<a href="{% url 'assets:admin-user-assets' pk=admin_user.pk %}" class="text-center"><i class="fa fa-laptop"></i> {% trans 'Assets list' %} </a>
|
||||||
</li>
|
</li>
|
||||||
<li class="pull-right">
|
<li class="pull-right">
|
||||||
<a class="btn btn-outline btn-default" href="{% url 'assets:admin-user-update' pk=admin_user.id %}"><i class="fa fa-edit"></i>Update</a>
|
<a class="btn btn-outline btn-default" href="{% url 'assets:admin-user-update' pk=admin_user.id %}"><i class="fa fa-edit"></i>{% trans 'Update' %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="pull-right">
|
<li class="pull-right">
|
||||||
<a class="btn btn-outline btn-danger btn-delete-admin-user">
|
<a class="btn btn-outline btn-danger btn-delete-admin-user">
|
||||||
<i class="fa fa-edit"></i>Delete
|
<i class="fa fa-trash-o"></i>{% trans 'Delete' %}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -21,11 +21,11 @@
|
||||||
</li>
|
</li>
|
||||||
{% if user.is_superuser %}
|
{% if user.is_superuser %}
|
||||||
<li class="pull-right">
|
<li class="pull-right">
|
||||||
<a class="btn btn-outline btn-default" href="{% url 'assets:asset-update' pk=asset.id %}"><i class="fa fa-edit"></i>Update</a>
|
<a class="btn btn-outline btn-default" href="{% url 'assets:asset-update' pk=asset.id %}"><i class="fa fa-edit"></i>{% trans 'Update' %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="pull-right">
|
<li class="pull-right">
|
||||||
<a class="btn btn-outline btn-danger btn-delete-asset">
|
<a class="btn btn-outline btn-danger btn-delete-asset">
|
||||||
<i class="fa fa-edit"></i>Delete
|
<i class="fa fa-trash-o"></i>{% trans 'Delete' %}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
<ul class="nav nav-tabs">
|
<ul class="nav nav-tabs">
|
||||||
<li class="active"><a href="" class="text-center"><i class="fa fa-laptop"></i> {% trans 'Group assets' %} </a></li>
|
<li class="active"><a href="" class="text-center"><i class="fa fa-laptop"></i> {% trans 'Group assets' %} </a></li>
|
||||||
<li class="pull-right">
|
<li class="pull-right">
|
||||||
<a class="btn btn-outline btn-default" href="{% url 'assets:asset-group-update' pk=asset_group.id %}"><i class="fa fa-edit"></i>Update</a>
|
<a class="btn btn-outline btn-default" href="{% url 'assets:asset-group-update' pk=asset_group.id %}"><i class="fa fa-edit"></i>{% trans 'Update' %}</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -22,11 +22,11 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="pull-right">
|
<li class="pull-right">
|
||||||
<a class="btn btn-outline btn-default" href="{% url 'assets:cluster-update' pk=cluster.id %}"><i class="fa fa-edit"></i>Update</a>
|
<a class="btn btn-outline btn-default" href="{% url 'assets:cluster-update' pk=cluster.id %}"><i class="fa fa-edit"></i>{% trans 'Update' %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="pull-right">
|
<li class="pull-right">
|
||||||
<a class="btn btn-outline btn-danger btn-delete-cluster">
|
<a class="btn btn-outline btn-danger btn-delete-cluster">
|
||||||
<i class="fa fa-edit"></i>Delete
|
<i class="fa fa-trash-o"></i>{% trans 'Delete' %}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="pull-right">
|
<li class="pull-right">
|
||||||
<a class="btn btn-outline btn-default" href="{% url 'assets:system-user-update' pk=system_user.id %}"><i class="fa fa-edit"></i>Update</a>
|
<a class="btn btn-outline btn-default" href="{% url 'assets:system-user-update' pk=system_user.id %}"><i class="fa fa-edit"></i>{% trans 'Update' %}</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="pull-right">
|
<li class="pull-right">
|
||||||
<a class="btn btn-outline btn-default" href="{% url 'assets:system-user-update' pk=system_user.id %}"><i class="fa fa-edit"></i>Update</a>
|
<a class="btn btn-outline btn-default" href="{% url 'assets:system-user-update' pk=system_user.id %}"><i class="fa fa-edit"></i>{% trans 'Update' %}</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -287,10 +287,10 @@ def make_signature(access_key_secret, date=None):
|
||||||
return content_md5(data)
|
return content_md5(data)
|
||||||
|
|
||||||
|
|
||||||
def encrypt_password(password):
|
def encrypt_password(password, salt=None):
|
||||||
from passlib.hash import sha512_crypt
|
from passlib.hash import sha512_crypt
|
||||||
if password:
|
if password:
|
||||||
return sha512_crypt.using(rounds=5000).hash(password)
|
return sha512_crypt.using(rounds=5000).hash(password, salt=salt)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
|
Binary file not shown.
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Jumpserver 0.3.3\n"
|
"Project-Id-Version: Jumpserver 0.3.3\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2018-01-05 18:18+0800\n"
|
"POT-Creation-Date: 2018-01-08 15:58+0800\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: ibuler <ibuler@qq.com>\n"
|
"Last-Translator: ibuler <ibuler@qq.com>\n"
|
||||||
"Language-Team: Jumpserver team<ibuler@qq.com>\n"
|
"Language-Team: Jumpserver team<ibuler@qq.com>\n"
|
||||||
|
@ -18,7 +18,7 @@ msgstr ""
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
#: assets/forms.py:23 assets/forms.py:53 assets/forms.py:99 perms/forms.py:37
|
#: assets/forms.py:23 assets/forms.py:53 assets/forms.py:99 perms/forms.py:37
|
||||||
#: perms/templates/perms/asset_permission_asset.html:127 users/forms.py:240
|
#: perms/templates/perms/asset_permission_asset.html:116 users/forms.py:242
|
||||||
msgid "Select asset groups"
|
msgid "Select asset groups"
|
||||||
msgstr "选择资产组"
|
msgstr "选择资产组"
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ msgstr "默认使用管理用户"
|
||||||
|
|
||||||
#: assets/forms.py:76 assets/forms.py:81 assets/forms.py:127
|
#: assets/forms.py:76 assets/forms.py:81 assets/forms.py:127
|
||||||
#: assets/templates/assets/asset_group_detail.html:70 perms/forms.py:34
|
#: assets/templates/assets/asset_group_detail.html:70 perms/forms.py:34
|
||||||
#: perms/templates/perms/asset_permission_asset.html:99 users/forms.py:237
|
#: perms/templates/perms/asset_permission_asset.html:88 users/forms.py:239
|
||||||
msgid "Select assets"
|
msgid "Select assets"
|
||||||
msgstr "选择资产"
|
msgstr "选择资产"
|
||||||
|
|
||||||
|
@ -56,7 +56,6 @@ msgstr "选择资产"
|
||||||
#: assets/templates/assets/cluster_assets.html:53
|
#: assets/templates/assets/cluster_assets.html:53
|
||||||
#: assets/templates/assets/system_user_asset.html:54
|
#: assets/templates/assets/system_user_asset.html:54
|
||||||
#: assets/templates/assets/user_asset_list.html:21
|
#: assets/templates/assets/user_asset_list.html:21
|
||||||
#: perms/templates/perms/asset_permission_asset.html:56
|
|
||||||
#: users/templates/users/user_group_granted_asset.html:51
|
#: users/templates/users/user_group_granted_asset.html:51
|
||||||
msgid "Port"
|
msgid "Port"
|
||||||
msgstr "端口"
|
msgstr "端口"
|
||||||
|
@ -78,7 +77,7 @@ msgid "Asset"
|
||||||
msgstr "资产"
|
msgstr "资产"
|
||||||
|
|
||||||
#: assets/forms.py:156 perms/forms.py:40
|
#: assets/forms.py:156 perms/forms.py:40
|
||||||
#: perms/templates/perms/asset_permission_detail.html:144 users/forms.py:243
|
#: perms/templates/perms/asset_permission_detail.html:144 users/forms.py:245
|
||||||
msgid "Select system users"
|
msgid "Select system users"
|
||||||
msgstr "选择系统用户"
|
msgstr "选择系统用户"
|
||||||
|
|
||||||
|
@ -535,7 +534,7 @@ msgstr "定期更新资产硬件信息"
|
||||||
|
|
||||||
#: assets/tasks.py:189
|
#: assets/tasks.py:189
|
||||||
msgid "Test admin user connectability period: {}"
|
msgid "Test admin user connectability period: {}"
|
||||||
msgstr "定期测试管理用户可以连接性: {}"
|
msgstr "定期测试管理用户可连接性: {}"
|
||||||
|
|
||||||
#: assets/tasks.py:203
|
#: assets/tasks.py:203
|
||||||
msgid "Test admin user connectability: {}"
|
msgid "Test admin user connectability: {}"
|
||||||
|
@ -551,15 +550,15 @@ msgstr "测试系统用户可连接性: {}"
|
||||||
|
|
||||||
#: assets/tasks.py:295
|
#: assets/tasks.py:295
|
||||||
msgid "Test system user connectability period: {}"
|
msgid "Test system user connectability period: {}"
|
||||||
msgstr "测试系统用户可连接性: {}"
|
msgstr "定期测试系统用户可连接性: {}"
|
||||||
|
|
||||||
#: assets/tasks.py:372
|
#: assets/tasks.py:372
|
||||||
msgid "Push system user to cluster assets: {}"
|
msgid "Push system user to cluster assets: {}"
|
||||||
msgstr "推送系统用户到资产: {}"
|
msgstr "推送系统用户到资产: {}"
|
||||||
|
|
||||||
#: assets/tasks.py:393
|
#: assets/tasks.py:393
|
||||||
msgid "Push system user to cluster assets period: {}->{}"
|
msgid "Push cluster system users to assets period: {}"
|
||||||
msgstr "定期推送系统用户到资产: {}->{}"
|
msgstr "定期推送集群系统用户到资产: {}"
|
||||||
|
|
||||||
#: assets/templates/assets/_asset_group_bulk_update_modal.html:5
|
#: assets/templates/assets/_asset_group_bulk_update_modal.html:5
|
||||||
msgid "Update asset group"
|
msgid "Update asset group"
|
||||||
|
@ -658,7 +657,7 @@ msgstr "其它"
|
||||||
#: assets/templates/assets/admin_user_create_update.html:45
|
#: assets/templates/assets/admin_user_create_update.html:45
|
||||||
#: assets/templates/assets/asset_bulk_update.html:23
|
#: assets/templates/assets/asset_bulk_update.html:23
|
||||||
#: assets/templates/assets/asset_create.html:40
|
#: assets/templates/assets/asset_create.html:40
|
||||||
#: assets/templates/assets/asset_update.html:56
|
#: assets/templates/assets/asset_update.html:55
|
||||||
#: assets/templates/assets/cluster_create_update.html:54
|
#: assets/templates/assets/cluster_create_update.html:54
|
||||||
#: perms/templates/perms/asset_permission_create_update.html:67
|
#: perms/templates/perms/asset_permission_create_update.html:67
|
||||||
#: terminal/templates/terminal/terminal_update.html:45
|
#: terminal/templates/terminal/terminal_update.html:45
|
||||||
|
@ -677,7 +676,7 @@ msgstr "重置"
|
||||||
#: assets/templates/assets/asset_bulk_update.html:24
|
#: assets/templates/assets/asset_bulk_update.html:24
|
||||||
#: assets/templates/assets/asset_create.html:41
|
#: assets/templates/assets/asset_create.html:41
|
||||||
#: assets/templates/assets/asset_list.html:55
|
#: assets/templates/assets/asset_list.html:55
|
||||||
#: assets/templates/assets/asset_update.html:57
|
#: assets/templates/assets/asset_update.html:56
|
||||||
#: assets/templates/assets/cluster_create_update.html:55
|
#: assets/templates/assets/cluster_create_update.html:55
|
||||||
#: perms/templates/perms/asset_permission_create_update.html:68
|
#: perms/templates/perms/asset_permission_create_update.html:68
|
||||||
#: terminal/templates/terminal/terminal_update.html:46
|
#: terminal/templates/terminal/terminal_update.html:46
|
||||||
|
@ -771,7 +770,7 @@ msgstr "使用集群管理用户"
|
||||||
|
|
||||||
#: assets/templates/assets/admin_user_detail.html:101
|
#: assets/templates/assets/admin_user_detail.html:101
|
||||||
#: assets/templates/assets/asset_detail.html:230
|
#: assets/templates/assets/asset_detail.html:230
|
||||||
#: assets/templates/assets/asset_group_list.html:87
|
#: assets/templates/assets/asset_group_list.html:85
|
||||||
#: assets/templates/assets/asset_list.html:202
|
#: assets/templates/assets/asset_list.html:202
|
||||||
#: assets/templates/assets/cluster_assets.html:104
|
#: assets/templates/assets/cluster_assets.html:104
|
||||||
#: assets/templates/assets/cluster_list.html:89
|
#: assets/templates/assets/cluster_list.html:89
|
||||||
|
@ -885,6 +884,7 @@ msgstr "快速修改"
|
||||||
#: assets/templates/assets/asset_list.html:37
|
#: assets/templates/assets/asset_list.html:37
|
||||||
#: assets/templates/assets/user_asset_list.html:25 perms/models.py:20
|
#: assets/templates/assets/user_asset_list.html:25 perms/models.py:20
|
||||||
#: perms/templates/perms/asset_permission_create_update.html:47
|
#: perms/templates/perms/asset_permission_create_update.html:47
|
||||||
|
#: perms/templates/perms/asset_permission_detail.html:116
|
||||||
#: terminal/templates/terminal/terminal_list.html:34
|
#: terminal/templates/terminal/terminal_list.html:34
|
||||||
#: users/templates/users/_select_user_modal.html:18
|
#: users/templates/users/_select_user_modal.html:18
|
||||||
#: users/templates/users/user_detail.html:127
|
#: users/templates/users/user_detail.html:127
|
||||||
|
@ -925,10 +925,10 @@ msgid "Add assets to this group"
|
||||||
msgstr "添加资产到该组"
|
msgstr "添加资产到该组"
|
||||||
|
|
||||||
#: assets/templates/assets/asset_group_detail.html:79
|
#: assets/templates/assets/asset_group_detail.html:79
|
||||||
#: perms/templates/perms/asset_permission_asset.html:108
|
#: perms/templates/perms/asset_permission_asset.html:97
|
||||||
#: perms/templates/perms/asset_permission_detail.html:153
|
#: perms/templates/perms/asset_permission_detail.html:153
|
||||||
#: perms/templates/perms/asset_permission_user.html:108
|
#: perms/templates/perms/asset_permission_user.html:97
|
||||||
#: perms/templates/perms/asset_permission_user.html:136
|
#: perms/templates/perms/asset_permission_user.html:125
|
||||||
#: users/templates/users/user_group_detail.html:95
|
#: users/templates/users/user_group_detail.html:95
|
||||||
msgid "Add"
|
msgid "Add"
|
||||||
msgstr "添加"
|
msgstr "添加"
|
||||||
|
@ -942,7 +942,7 @@ msgstr "移除"
|
||||||
msgid "Create asset group"
|
msgid "Create asset group"
|
||||||
msgstr "创建资产组"
|
msgstr "创建资产组"
|
||||||
|
|
||||||
#: assets/templates/assets/asset_group_list.html:82
|
#: assets/templates/assets/asset_group_list.html:80
|
||||||
#: assets/templates/assets/asset_list.html:197
|
#: assets/templates/assets/asset_list.html:197
|
||||||
#: assets/templates/assets/cluster_list.html:84
|
#: assets/templates/assets/cluster_list.html:84
|
||||||
#: assets/templates/assets/system_user_list.html:129
|
#: assets/templates/assets/system_user_list.html:129
|
||||||
|
@ -953,29 +953,29 @@ msgstr "创建资产组"
|
||||||
msgid "Are you sure?"
|
msgid "Are you sure?"
|
||||||
msgstr "你确认吗?"
|
msgstr "你确认吗?"
|
||||||
|
|
||||||
#: assets/templates/assets/asset_group_list.html:83
|
#: assets/templates/assets/asset_group_list.html:81
|
||||||
#: users/templates/users/user_group_list.html:78
|
#: users/templates/users/user_group_list.html:78
|
||||||
msgid "This will delete the selected groups !!!"
|
msgid "This will delete the selected groups !!!"
|
||||||
msgstr "删除选择组"
|
msgstr "删除选择组"
|
||||||
|
|
||||||
#: assets/templates/assets/asset_group_list.html:91
|
#: assets/templates/assets/asset_group_list.html:89
|
||||||
msgid "Group deleted"
|
msgid "Group deleted"
|
||||||
msgstr "组已被删除"
|
msgstr "组已被删除"
|
||||||
|
|
||||||
#: assets/templates/assets/asset_group_list.html:92
|
#: assets/templates/assets/asset_group_list.html:90
|
||||||
#: assets/templates/assets/asset_group_list.html:97
|
#: assets/templates/assets/asset_group_list.html:95
|
||||||
msgid "Group Delete"
|
msgid "Group Delete"
|
||||||
msgstr "删除"
|
msgstr "删除"
|
||||||
|
|
||||||
#: assets/templates/assets/asset_group_list.html:96
|
#: assets/templates/assets/asset_group_list.html:94
|
||||||
msgid "Group deleting failed."
|
msgid "Group deleting failed."
|
||||||
msgstr "删除失败"
|
msgstr "删除失败"
|
||||||
|
|
||||||
#: assets/templates/assets/asset_group_list.html:159
|
#: assets/templates/assets/asset_group_list.html:157
|
||||||
msgid "The selected asset groups has been updated successfully."
|
msgid "The selected asset groups has been updated successfully."
|
||||||
msgstr "更新成功"
|
msgstr "更新成功"
|
||||||
|
|
||||||
#: assets/templates/assets/asset_group_list.html:160
|
#: assets/templates/assets/asset_group_list.html:158
|
||||||
msgid "AssetGroup Updated"
|
msgid "AssetGroup Updated"
|
||||||
msgstr "资产组更新"
|
msgstr "资产组更新"
|
||||||
|
|
||||||
|
@ -1176,7 +1176,7 @@ msgstr "系统用户删除失败"
|
||||||
msgid "Connective"
|
msgid "Connective"
|
||||||
msgstr "连接性"
|
msgstr "连接性"
|
||||||
|
|
||||||
#: assets/templates/assets/user_asset_list.html:66
|
#: assets/templates/assets/user_asset_list.html:65
|
||||||
msgid "Connect"
|
msgid "Connect"
|
||||||
msgstr "连接"
|
msgstr "连接"
|
||||||
|
|
||||||
|
@ -1362,7 +1362,7 @@ msgid "Version detail"
|
||||||
msgstr "版本详情"
|
msgstr "版本详情"
|
||||||
|
|
||||||
#: ops/templates/ops/adhoc_detail.html:22
|
#: ops/templates/ops/adhoc_detail.html:22
|
||||||
#: ops/templates/ops/adhoc_history.html:22 ops/views.py:104
|
#: ops/templates/ops/adhoc_history.html:22 ops/views.py:105
|
||||||
msgid "Version run history"
|
msgid "Version run history"
|
||||||
msgstr "执行历史"
|
msgstr "执行历史"
|
||||||
|
|
||||||
|
@ -1434,7 +1434,7 @@ msgstr "失败/成功/总"
|
||||||
msgid "Version"
|
msgid "Version"
|
||||||
msgstr "版本"
|
msgstr "版本"
|
||||||
|
|
||||||
#: ops/templates/ops/adhoc_history_detail.html:19 ops/views.py:117
|
#: ops/templates/ops/adhoc_history_detail.html:19 ops/views.py:118
|
||||||
msgid "Run history detail"
|
msgid "Run history detail"
|
||||||
msgstr "执行历史详情"
|
msgstr "执行历史详情"
|
||||||
|
|
||||||
|
@ -1460,12 +1460,12 @@ msgid "Success assets"
|
||||||
msgstr "成功资产"
|
msgstr "成功资产"
|
||||||
|
|
||||||
#: ops/templates/ops/task_adhoc.html:19 ops/templates/ops/task_detail.html:19
|
#: ops/templates/ops/task_adhoc.html:19 ops/templates/ops/task_detail.html:19
|
||||||
#: ops/templates/ops/task_history.html:19 ops/views.py:52
|
#: ops/templates/ops/task_history.html:19 ops/views.py:53
|
||||||
msgid "Task detail"
|
msgid "Task detail"
|
||||||
msgstr "任务详情"
|
msgstr "任务详情"
|
||||||
|
|
||||||
#: ops/templates/ops/task_adhoc.html:22 ops/templates/ops/task_detail.html:22
|
#: ops/templates/ops/task_adhoc.html:22 ops/templates/ops/task_detail.html:22
|
||||||
#: ops/templates/ops/task_history.html:22 ops/views.py:65
|
#: ops/templates/ops/task_history.html:22 ops/views.py:66
|
||||||
msgid "Task versions"
|
msgid "Task versions"
|
||||||
msgstr "任务各版本"
|
msgstr "任务各版本"
|
||||||
|
|
||||||
|
@ -1517,21 +1517,21 @@ msgstr "成功"
|
||||||
msgid "Date"
|
msgid "Date"
|
||||||
msgstr "日期"
|
msgstr "日期"
|
||||||
|
|
||||||
#: ops/views.py:35 ops/views.py:51 ops/views.py:64 ops/views.py:77
|
#: ops/views.py:36 ops/views.py:52 ops/views.py:65 ops/views.py:78
|
||||||
#: ops/views.py:90 ops/views.py:103 ops/views.py:116
|
#: ops/views.py:91 ops/views.py:104 ops/views.py:117
|
||||||
msgid "Ops"
|
msgid "Ops"
|
||||||
msgstr "作业中心"
|
msgstr "作业中心"
|
||||||
|
|
||||||
#: ops/views.py:36
|
#: ops/views.py:37
|
||||||
msgid "Task list"
|
msgid "Task list"
|
||||||
msgstr "任务列表"
|
msgstr "任务列表"
|
||||||
|
|
||||||
#: ops/views.py:78
|
#: ops/views.py:79
|
||||||
msgid "Task run history"
|
msgid "Task run history"
|
||||||
msgstr "执行历史"
|
msgstr "执行历史"
|
||||||
|
|
||||||
#: perms/forms.py:16 users/forms.py:144 users/forms.py:149 users/forms.py:161
|
#: perms/forms.py:16 users/forms.py:144 users/forms.py:149 users/forms.py:161
|
||||||
#: users/forms.py:190
|
#: users/forms.py:191
|
||||||
msgid "Select users"
|
msgid "Select users"
|
||||||
msgstr "选择用户"
|
msgstr "选择用户"
|
||||||
|
|
||||||
|
@ -1542,12 +1542,13 @@ msgstr "选择用户"
|
||||||
#: terminal/templates/terminal/command_list.html:32
|
#: terminal/templates/terminal/command_list.html:32
|
||||||
#: terminal/templates/terminal/command_list.html:72
|
#: terminal/templates/terminal/command_list.html:72
|
||||||
#: terminal/templates/terminal/session_list.html:33
|
#: terminal/templates/terminal/session_list.html:33
|
||||||
#: terminal/templates/terminal/session_list.html:71 users/models/user.py:31
|
#: terminal/templates/terminal/session_list.html:71 users/forms.py:187
|
||||||
#: users/templates/users/user_group_detail.html:78 users/views/user.py:348
|
#: users/models/user.py:31 users/templates/users/user_group_detail.html:78
|
||||||
|
#: users/views/user.py:348
|
||||||
msgid "User"
|
msgid "User"
|
||||||
msgstr "用户"
|
msgstr "用户"
|
||||||
|
|
||||||
#: perms/forms.py:31 perms/templates/perms/asset_permission_user.html:127
|
#: perms/forms.py:31 perms/templates/perms/asset_permission_user.html:116
|
||||||
msgid "Select user groups"
|
msgid "Select user groups"
|
||||||
msgstr "选择用户组"
|
msgstr "选择用户组"
|
||||||
|
|
||||||
|
@ -1594,21 +1595,15 @@ msgstr "用户或用户组"
|
||||||
msgid "Assets and asset groups"
|
msgid "Assets and asset groups"
|
||||||
msgstr "资产或资产组"
|
msgstr "资产或资产组"
|
||||||
|
|
||||||
#: perms/templates/perms/asset_permission_asset.html:57
|
#: perms/templates/perms/asset_permission_asset.html:80
|
||||||
#: perms/templates/perms/asset_permission_list.html:31
|
|
||||||
#: perms/templates/perms/asset_permission_user.html:57
|
|
||||||
msgid "Is valid"
|
|
||||||
msgstr "有效"
|
|
||||||
|
|
||||||
#: perms/templates/perms/asset_permission_asset.html:91
|
|
||||||
msgid "Add asset to this permission"
|
msgid "Add asset to this permission"
|
||||||
msgstr "添加资产"
|
msgstr "添加资产"
|
||||||
|
|
||||||
#: perms/templates/perms/asset_permission_asset.html:119
|
#: perms/templates/perms/asset_permission_asset.html:108
|
||||||
msgid "Add asset group to this permission"
|
msgid "Add asset group to this permission"
|
||||||
msgstr "添加资产组"
|
msgstr "添加资产组"
|
||||||
|
|
||||||
#: perms/templates/perms/asset_permission_asset.html:136
|
#: perms/templates/perms/asset_permission_asset.html:125
|
||||||
#: users/templates/users/user_detail.html:195
|
#: users/templates/users/user_detail.html:195
|
||||||
msgid "Join"
|
msgid "Join"
|
||||||
msgstr "加入"
|
msgstr "加入"
|
||||||
|
@ -1642,26 +1637,24 @@ msgstr "系统用户数量"
|
||||||
msgid "Create permission"
|
msgid "Create permission"
|
||||||
msgstr "创建授权规则"
|
msgstr "创建授权规则"
|
||||||
|
|
||||||
|
#: perms/templates/perms/asset_permission_list.html:31
|
||||||
|
msgid "Is valid"
|
||||||
|
msgstr "有效"
|
||||||
|
|
||||||
#: perms/templates/perms/asset_permission_user.html:35
|
#: perms/templates/perms/asset_permission_user.html:35
|
||||||
msgid "User list of "
|
msgid "User list of "
|
||||||
msgstr "用户列表"
|
msgstr "用户列表"
|
||||||
|
|
||||||
#: perms/templates/perms/asset_permission_user.html:56 users/models/user.py:37
|
#: perms/templates/perms/asset_permission_user.html:80
|
||||||
#: users/templates/users/user_detail.html:70
|
|
||||||
#: users/templates/users/user_profile.html:59
|
|
||||||
msgid "Email"
|
|
||||||
msgstr "邮件"
|
|
||||||
|
|
||||||
#: perms/templates/perms/asset_permission_user.html:91
|
|
||||||
msgid "Add user to asset permission"
|
msgid "Add user to asset permission"
|
||||||
msgstr "添加用户"
|
msgstr "添加用户"
|
||||||
|
|
||||||
#: perms/templates/perms/asset_permission_user.html:99
|
#: perms/templates/perms/asset_permission_user.html:88
|
||||||
#: users/templates/users/login_log_list.html:28
|
#: users/templates/users/login_log_list.html:28
|
||||||
msgid "Select user"
|
msgid "Select user"
|
||||||
msgstr "选择用户"
|
msgstr "选择用户"
|
||||||
|
|
||||||
#: perms/templates/perms/asset_permission_user.html:119
|
#: perms/templates/perms/asset_permission_user.html:108
|
||||||
msgid "Add user group to asset permission"
|
msgid "Add user group to asset permission"
|
||||||
msgstr "添加用户组"
|
msgstr "添加用户组"
|
||||||
|
|
||||||
|
@ -1782,8 +1775,8 @@ msgstr ""
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "关闭"
|
msgstr "关闭"
|
||||||
|
|
||||||
#: templates/_nav.html:9 users/views/group.py:30 users/views/group.py:46
|
#: templates/_nav.html:9 users/views/group.py:30 users/views/group.py:48
|
||||||
#: users/views/group.py:72 users/views/group.py:89 users/views/login.py:193
|
#: users/views/group.py:74 users/views/group.py:91 users/views/login.py:193
|
||||||
#: users/views/login.py:242 users/views/user.py:55 users/views/user.py:70
|
#: users/views/login.py:242 users/views/user.py:55 users/views/user.py:70
|
||||||
#: users/views/user.py:95 users/views/user.py:151 users/views/user.py:308
|
#: users/views/user.py:95 users/views/user.py:151 users/views/user.py:308
|
||||||
#: users/views/user.py:322 users/views/user.py:366 users/views/user.py:388
|
#: users/views/user.py:322 users/views/user.py:366 users/views/user.py:388
|
||||||
|
@ -1905,6 +1898,7 @@ msgid "Boot Time"
|
||||||
msgstr "运行时间"
|
msgstr "运行时间"
|
||||||
|
|
||||||
#: terminal/models.py:96 terminal/templates/terminal/session_list.html:74
|
#: terminal/models.py:96 terminal/templates/terminal/session_list.html:74
|
||||||
|
#: terminal/templates/terminal/terminal_detail.html:47
|
||||||
msgid "Remote addr"
|
msgid "Remote addr"
|
||||||
msgstr "远端地址"
|
msgstr "远端地址"
|
||||||
|
|
||||||
|
@ -2166,6 +2160,11 @@ msgstr "管理员"
|
||||||
msgid "Application"
|
msgid "Application"
|
||||||
msgstr "应用程序"
|
msgstr "应用程序"
|
||||||
|
|
||||||
|
#: users/models/user.py:37 users/templates/users/user_detail.html:70
|
||||||
|
#: users/templates/users/user_profile.html:59
|
||||||
|
msgid "Email"
|
||||||
|
msgstr "邮件"
|
||||||
|
|
||||||
#: users/models/user.py:39 users/templates/users/_select_user_modal.html:15
|
#: users/models/user.py:39 users/templates/users/_select_user_modal.html:15
|
||||||
#: users/templates/users/user_detail.html:86
|
#: users/templates/users/user_detail.html:86
|
||||||
#: users/templates/users/user_list.html:25
|
#: users/templates/users/user_list.html:25
|
||||||
|
@ -2384,7 +2383,7 @@ msgstr "授权资产组"
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "取消"
|
msgstr "取消"
|
||||||
|
|
||||||
#: users/templates/users/user_group_detail.html:22 users/views/group.py:90
|
#: users/templates/users/user_group_detail.html:22 users/views/group.py:92
|
||||||
msgid "User group detail"
|
msgid "User group detail"
|
||||||
msgstr "资产组详情"
|
msgstr "资产组详情"
|
||||||
|
|
||||||
|
@ -2396,7 +2395,7 @@ msgstr "添加用户"
|
||||||
msgid "Valid"
|
msgid "Valid"
|
||||||
msgstr "可用"
|
msgstr "可用"
|
||||||
|
|
||||||
#: users/templates/users/user_group_list.html:5 users/views/group.py:47
|
#: users/templates/users/user_group_list.html:5 users/views/group.py:49
|
||||||
msgid "Create user group"
|
msgid "Create user group"
|
||||||
msgstr "创建用户组"
|
msgstr "创建用户组"
|
||||||
|
|
||||||
|
@ -2597,7 +2596,13 @@ msgstr "密码或秘钥不合法"
|
||||||
msgid "User group list"
|
msgid "User group list"
|
||||||
msgstr "用户组列表"
|
msgstr "用户组列表"
|
||||||
|
|
||||||
#: users/views/group.py:73
|
#: users/views/group.py:43
|
||||||
|
#, fuzzy, python-brace-format
|
||||||
|
#| msgid "Create user <a href=\"{url}\">{name}</a> successfully."
|
||||||
|
msgid "User group <a href={url}> {name} </a> was created successfully"
|
||||||
|
msgstr "创建用户 <a href=\"{url}\">{name}</a> 成功"
|
||||||
|
|
||||||
|
#: users/views/group.py:75
|
||||||
msgid "Update user group"
|
msgid "Update user group"
|
||||||
msgstr "编辑用户组"
|
msgstr "编辑用户组"
|
||||||
|
|
||||||
|
@ -2683,14 +2688,4 @@ msgstr "密码更新"
|
||||||
msgid "Public key update"
|
msgid "Public key update"
|
||||||
msgstr "秘钥更新"
|
msgstr "秘钥更新"
|
||||||
|
|
||||||
#~ msgid "Visit us"
|
|
||||||
#~ msgstr "访问官网"
|
|
||||||
|
|
||||||
#~ msgid "Audits"
|
|
||||||
#~ msgstr "审计中心"
|
|
||||||
|
|
||||||
#~ msgid "Proxy log list"
|
|
||||||
#~ msgstr "Session列表"
|
|
||||||
|
|
||||||
#~ msgid "If also set private key, use that first"
|
|
||||||
#~ msgstr "如果设置私钥,则优先使用密钥"
|
|
||||||
|
|
|
@ -2,11 +2,13 @@
|
||||||
|
|
||||||
|
|
||||||
from django.shortcuts import get_object_or_404
|
from django.shortcuts import get_object_or_404
|
||||||
from rest_framework import viewsets
|
from rest_framework import viewsets, generics
|
||||||
|
from rest_framework.views import Response
|
||||||
|
|
||||||
from .hands import IsSuperUser
|
from .hands import IsSuperUser
|
||||||
from .models import Task, AdHoc, AdHocRunHistory
|
from .models import Task, AdHoc, AdHocRunHistory
|
||||||
from .serializers import TaskSerializer, AdHocSerializer, AdHocRunHistorySerializer
|
from .serializers import TaskSerializer, AdHocSerializer, AdHocRunHistorySerializer
|
||||||
|
from .tasks import run_ansible_task
|
||||||
|
|
||||||
|
|
||||||
class TaskViewSet(viewsets.ModelViewSet):
|
class TaskViewSet(viewsets.ModelViewSet):
|
||||||
|
@ -15,6 +17,17 @@ class TaskViewSet(viewsets.ModelViewSet):
|
||||||
permission_classes = (IsSuperUser,)
|
permission_classes = (IsSuperUser,)
|
||||||
|
|
||||||
|
|
||||||
|
class TaskRun(generics.RetrieveAPIView):
|
||||||
|
queryset = Task.objects.all()
|
||||||
|
serializer_class = TaskViewSet
|
||||||
|
permission_classes = (IsSuperUser,)
|
||||||
|
|
||||||
|
def retrieve(self, request, *args, **kwargs):
|
||||||
|
task = self.get_object()
|
||||||
|
run_ansible_task.delay(str(task.id))
|
||||||
|
return Response({"msg": "start"})
|
||||||
|
|
||||||
|
|
||||||
class AdHocViewSet(viewsets.ModelViewSet):
|
class AdHocViewSet(viewsets.ModelViewSet):
|
||||||
queryset = AdHoc.objects.all()
|
queryset = AdHoc.objects.all()
|
||||||
serializer_class = AdHocSerializer
|
serializer_class = AdHocSerializer
|
||||||
|
|
|
@ -89,7 +89,7 @@
|
||||||
<td>
|
<td>
|
||||||
<b>
|
<b>
|
||||||
{% for task in object.latest_adhoc.tasks %}
|
{% for task in object.latest_adhoc.tasks %}
|
||||||
{{ forloop.counter }}. {{ task.name }} : {{ task.action.module }} <br/>
|
{{ forloop.counter }}. {{ task.name }} ::: {{ task.action.module }} <br/>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</b>
|
</b>
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -67,6 +67,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td class="text-center">
|
<td class="text-center">
|
||||||
|
<a data-uid="{{ object.id }}" class="btn btn-xs btn-primary btn-run">{% trans "Run" %}</a>
|
||||||
<a data-uid="{{ object.id }}" class="btn btn-xs btn-danger btn-del">{% trans "Delete" %}</a>
|
<a data-uid="{{ object.id }}" class="btn btn-xs btn-danger btn-del">{% trans "Delete" %}</a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -98,10 +99,32 @@ $(document).ready(function() {
|
||||||
|
|
||||||
}).on('click', '.btn-del', function () {
|
}).on('click', '.btn-del', function () {
|
||||||
var $this = $(this);
|
var $this = $(this);
|
||||||
var name = $(this).closest("tr").find(":nth-child(2)").children('a').html();
|
var name = $this.closest("tr").find(":nth-child(2)").children('a').html();
|
||||||
var uid = $this.data('uid');
|
var uid = $this.data('uid');
|
||||||
var the_url = '{% url "api-ops:task-detail" pk=DEFAULT_PK %}'.replace('{{ DEFAULT_PK }}', uid);
|
var the_url = '{% url "api-ops:task-detail" pk=DEFAULT_PK %}'.replace('{{ DEFAULT_PK }}', uid);
|
||||||
objectDelete($this, name, the_url);
|
objectDelete($this, name, the_url);
|
||||||
|
}).on('click', '.btn-run', function () {
|
||||||
|
var $this = $(this);
|
||||||
|
var name = $this.closest("tr").find(":nth-child(2)").children('a').html();
|
||||||
|
var uid = $this.data('uid');
|
||||||
|
var the_url = '{% url "api-ops:task-run" pk=DEFAULT_PK %}'.replace('{{ DEFAULT_PK }}', uid);
|
||||||
|
var error = function (data) {
|
||||||
|
alert(data)
|
||||||
|
};
|
||||||
|
var success = function () {
|
||||||
|
setTimeout(function () {
|
||||||
|
console.log("ok")
|
||||||
|
}, 1000);
|
||||||
|
window.location = "{% url 'ops:task-detail' pk=DEFAULT_PK %}".replace('{{ DEFAULT_PK }}', uid);
|
||||||
|
};
|
||||||
|
APIUpdateAttr({
|
||||||
|
url: the_url,
|
||||||
|
error: error,
|
||||||
|
method: 'GET',
|
||||||
|
success: success,
|
||||||
|
success_message: "{% trans 'Task start: ' %}" + " " + name
|
||||||
|
});
|
||||||
|
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# ~*~ coding: utf-8 ~*~
|
# ~*~ coding: utf-8 ~*~
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.conf.urls import url
|
||||||
from rest_framework.routers import DefaultRouter
|
from rest_framework.routers import DefaultRouter
|
||||||
from .. import api
|
from .. import api
|
||||||
|
|
||||||
|
@ -12,6 +13,8 @@ router.register(r'v1/tasks', api.TaskViewSet, 'task')
|
||||||
router.register(r'v1/adhoc', api.AdHocViewSet, 'adhoc')
|
router.register(r'v1/adhoc', api.AdHocViewSet, 'adhoc')
|
||||||
router.register(r'v1/history', api.AdHocRunHistorySet, 'history')
|
router.register(r'v1/history', api.AdHocRunHistorySet, 'history')
|
||||||
|
|
||||||
urlpatterns = []
|
urlpatterns = [
|
||||||
|
url(r'^v1/tasks/(?P<pk>[0-9a-zA-Z\-]{36})/run/$', api.TaskRun.as_view(), name='task-run'),
|
||||||
|
]
|
||||||
|
|
||||||
urlpatterns += router.urls
|
urlpatterns += router.urls
|
||||||
|
|
|
@ -27,11 +27,11 @@
|
||||||
<i class="fa fa-bar-chart-o"></i> {% trans 'Assets and asset groups' %}</a>
|
<i class="fa fa-bar-chart-o"></i> {% trans 'Assets and asset groups' %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="pull-right">
|
<li class="pull-right">
|
||||||
<a class="btn btn-outline btn-default" href="{% url 'perms:asset-permission-update' pk=asset_permission.id %}"><i class="fa fa-edit"></i>Update</a>
|
<a class="btn btn-outline btn-default" href="{% url 'perms:asset-permission-update' pk=asset_permission.id %}"><i class="fa fa-edit"></i>{% trans 'Update' %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="pull-right">
|
<li class="pull-right">
|
||||||
<a class="btn btn-outline btn-danger btn-delete-perm">
|
<a class="btn btn-outline btn-danger btn-delete-perm">
|
||||||
<i class="fa fa-edit"></i>Delete
|
<i class="fa fa-trash-o"></i>{% trans 'Delete' %}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
<a href="" class="text-center"><i class="fa fa-laptop"></i> {% trans 'Terminal detail' %} </a>
|
<a href="" class="text-center"><i class="fa fa-laptop"></i> {% trans 'Terminal detail' %} </a>
|
||||||
</li>
|
</li>
|
||||||
<li class="pull-right">
|
<li class="pull-right">
|
||||||
<a class="btn btn-outline btn-default" href="{% url 'terminal:terminal-update' pk=terminal.id %}"><i class="fa fa-edit"></i>Update</a>
|
<a class="btn btn-outline btn-default" href="{% url 'terminal:terminal-update' pk=terminal.id %}"><i class="fa fa-edit"></i>{% trans 'Update' %}</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -22,11 +22,11 @@
|
||||||
<a href="{% url 'users:user-granted-asset' pk=user_object.id %}" class="text-center"><i class="fa fa-cubes"></i> {% trans 'Asset granted' %}</a>
|
<a href="{% url 'users:user-granted-asset' pk=user_object.id %}" class="text-center"><i class="fa fa-cubes"></i> {% trans 'Asset granted' %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="pull-right">
|
<li class="pull-right">
|
||||||
<a class="btn btn-outline btn-default" href="{% url 'users:user-update' pk=user_object.id %}"><i class="fa fa-edit"></i>Update</a>
|
<a class="btn btn-outline btn-default" href="{% url 'users:user-update' pk=user_object.id %}"><i class="fa fa-edit"></i>{% trans 'Update' %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="pull-right">
|
<li class="pull-right">
|
||||||
<a class="btn btn-outline btn-danger btn-delete-user">
|
<a class="btn btn-outline btn-danger btn-delete-user">
|
||||||
<i class="fa fa-edit"></i>Delete
|
<i class="fa fa-trash-o"></i>{% trans 'Delete' %}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -25,11 +25,11 @@
|
||||||
{# <a href="{% url 'users:user-group-granted-asset' pk=user_group.id %}" class="text-center"><i class="fa fa-cubes"></i> {% trans 'Asset granted' %}</a>#}
|
{# <a href="{% url 'users:user-group-granted-asset' pk=user_group.id %}" class="text-center"><i class="fa fa-cubes"></i> {% trans 'Asset granted' %}</a>#}
|
||||||
{# </li>#}
|
{# </li>#}
|
||||||
<li class="pull-right">
|
<li class="pull-right">
|
||||||
<a class="btn btn-outline btn-default" href="{% url 'users:user-group-update' pk=user_group.id %}"><i class="fa fa-edit"></i>Update</a>
|
<a class="btn btn-outline btn-default" href="{% url 'users:user-group-update' pk=user_group.id %}"><i class="fa fa-edit"></i>{% trans 'Update' %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="pull-right">
|
<li class="pull-right">
|
||||||
<a class="btn btn-outline btn-danger btn-delete-user-group">
|
<a class="btn btn-outline btn-danger btn-delete-user-group">
|
||||||
<i class="fa fa-edit"></i>Delete
|
<i class="fa fa-trash-o"></i>{% trans 'Delete' %}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
Loading…
Reference in New Issue