mirror of https://github.com/jumpserver/jumpserver
				
				
				
			[Update] 修改一些bug, 增加执行task的按钮
							parent
							
								
									dfaf029a68
								
							
						
					
					
						commit
						c0829194dc
					
				| 
						 | 
				
			
			@ -81,7 +81,11 @@ class AssetUser(models.Model):
 | 
			
		|||
 | 
			
		||||
    @property
 | 
			
		||||
    def public_key(self):
 | 
			
		||||
        return signer.unsign(self._public_key)
 | 
			
		||||
        key = signer.unsign(self._public_key)
 | 
			
		||||
        if key:
 | 
			
		||||
            return key
 | 
			
		||||
        else:
 | 
			
		||||
            return None
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def public_key_obj(self):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,7 +25,7 @@ disk_pattern = re.compile(r'^hd|sd|xvd')
 | 
			
		|||
@shared_task
 | 
			
		||||
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
 | 
			
		||||
    be a celery task also
 | 
			
		||||
| 
						 | 
				
			
			@ -309,6 +309,10 @@ def test_system_user_connectability_period():
 | 
			
		|||
####  Push system user tasks ####
 | 
			
		||||
 | 
			
		||||
def get_push_system_user_tasks(system_user):
 | 
			
		||||
    # Set root as system user is dangerous
 | 
			
		||||
    if system_user.username == "root":
 | 
			
		||||
        return []
 | 
			
		||||
 | 
			
		||||
    tasks = [
 | 
			
		||||
        {
 | 
			
		||||
            'name': 'Add user {}'.format(system_user.username),
 | 
			
		||||
| 
						 | 
				
			
			@ -316,7 +320,7 @@ def get_push_system_user_tasks(system_user):
 | 
			
		|||
                'module': 'user',
 | 
			
		||||
                'args': 'name={} shell={} state=present password={}'.format(
 | 
			
		||||
                    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>
 | 
			
		||||
                            </li>
 | 
			
		||||
                            <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 class="pull-right">
 | 
			
		||||
                                <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>
 | 
			
		||||
                            </li>
 | 
			
		||||
                        </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>
 | 
			
		||||
                            </li>
 | 
			
		||||
                            <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 class="pull-right">
 | 
			
		||||
                                <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>
 | 
			
		||||
                            </li>
 | 
			
		||||
                        </ul>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,11 +21,11 @@
 | 
			
		|||
                            </li>
 | 
			
		||||
                            {% if user.is_superuser %}
 | 
			
		||||
                            <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 class="pull-right">
 | 
			
		||||
                                <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>
 | 
			
		||||
                            </li>
 | 
			
		||||
                            {% endif %}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,7 +15,7 @@
 | 
			
		|||
                        <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="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>
 | 
			
		||||
                        </ul>
 | 
			
		||||
                    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,11 +22,11 @@
 | 
			
		|||
                                </a>
 | 
			
		||||
                            </li>
 | 
			
		||||
                            <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 class="pull-right">
 | 
			
		||||
                                <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>
 | 
			
		||||
                            </li>
 | 
			
		||||
                        </ul>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,7 +22,7 @@
 | 
			
		|||
                                </a>
 | 
			
		||||
                            </li>
 | 
			
		||||
                            <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>
 | 
			
		||||
                        </ul>
 | 
			
		||||
                    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,7 +23,7 @@
 | 
			
		|||
                                </a>
 | 
			
		||||
                            </li>
 | 
			
		||||
                            <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>
 | 
			
		||||
                        </ul>
 | 
			
		||||
                    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -287,10 +287,10 @@ def make_signature(access_key_secret, date=None):
 | 
			
		|||
    return content_md5(data)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def encrypt_password(password):
 | 
			
		||||
def encrypt_password(password, salt=None):
 | 
			
		||||
    from passlib.hash import sha512_crypt
 | 
			
		||||
    if password:
 | 
			
		||||
        return sha512_crypt.using(rounds=5000).hash(password)
 | 
			
		||||
        return sha512_crypt.using(rounds=5000).hash(password, salt=salt)
 | 
			
		||||
    return None
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -8,7 +8,7 @@ msgid ""
 | 
			
		|||
msgstr ""
 | 
			
		||||
"Project-Id-Version: Jumpserver 0.3.3\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"
 | 
			
		||||
"Last-Translator: ibuler <ibuler@qq.com>\n"
 | 
			
		||||
"Language-Team: Jumpserver team<ibuler@qq.com>\n"
 | 
			
		||||
| 
						 | 
				
			
			@ -18,7 +18,7 @@ msgstr ""
 | 
			
		|||
"Content-Transfer-Encoding: 8bit\n"
 | 
			
		||||
 | 
			
		||||
#: 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"
 | 
			
		||||
msgstr "选择资产组"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -44,7 +44,7 @@ msgstr "默认使用管理用户"
 | 
			
		|||
 | 
			
		||||
#: assets/forms.py:76 assets/forms.py:81 assets/forms.py:127
 | 
			
		||||
#: 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"
 | 
			
		||||
msgstr "选择资产"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -56,7 +56,6 @@ msgstr "选择资产"
 | 
			
		|||
#: assets/templates/assets/cluster_assets.html:53
 | 
			
		||||
#: assets/templates/assets/system_user_asset.html:54
 | 
			
		||||
#: 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
 | 
			
		||||
msgid "Port"
 | 
			
		||||
msgstr "端口"
 | 
			
		||||
| 
						 | 
				
			
			@ -78,7 +77,7 @@ msgid "Asset"
 | 
			
		|||
msgstr "资产"
 | 
			
		||||
 | 
			
		||||
#: 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"
 | 
			
		||||
msgstr "选择系统用户"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -535,7 +534,7 @@ msgstr "定期更新资产硬件信息"
 | 
			
		|||
 | 
			
		||||
#: assets/tasks.py:189
 | 
			
		||||
msgid "Test admin user connectability period: {}"
 | 
			
		||||
msgstr "定期测试管理用户可以连接性: {}"
 | 
			
		||||
msgstr "定期测试管理用户可连接性: {}"
 | 
			
		||||
 | 
			
		||||
#: assets/tasks.py:203
 | 
			
		||||
msgid "Test admin user connectability: {}"
 | 
			
		||||
| 
						 | 
				
			
			@ -551,15 +550,15 @@ msgstr "测试系统用户可连接性: {}"
 | 
			
		|||
 | 
			
		||||
#: assets/tasks.py:295
 | 
			
		||||
msgid "Test system user connectability period: {}"
 | 
			
		||||
msgstr "测试系统用户可连接性: {}"
 | 
			
		||||
msgstr "定期测试系统用户可连接性: {}"
 | 
			
		||||
 | 
			
		||||
#: assets/tasks.py:372
 | 
			
		||||
msgid "Push system user to cluster assets: {}"
 | 
			
		||||
msgstr "推送系统用户到资产: {}"
 | 
			
		||||
 | 
			
		||||
#: assets/tasks.py:393
 | 
			
		||||
msgid "Push system user to cluster assets period: {}->{}"
 | 
			
		||||
msgstr "定期推送系统用户到资产: {}->{}"
 | 
			
		||||
msgid "Push cluster system users to assets period: {}"
 | 
			
		||||
msgstr "定期推送集群系统用户到资产: {}"
 | 
			
		||||
 | 
			
		||||
#: assets/templates/assets/_asset_group_bulk_update_modal.html:5
 | 
			
		||||
msgid "Update asset group"
 | 
			
		||||
| 
						 | 
				
			
			@ -658,7 +657,7 @@ msgstr "其它"
 | 
			
		|||
#: assets/templates/assets/admin_user_create_update.html:45
 | 
			
		||||
#: assets/templates/assets/asset_bulk_update.html:23
 | 
			
		||||
#: 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
 | 
			
		||||
#: perms/templates/perms/asset_permission_create_update.html:67
 | 
			
		||||
#: terminal/templates/terminal/terminal_update.html:45
 | 
			
		||||
| 
						 | 
				
			
			@ -677,7 +676,7 @@ msgstr "重置"
 | 
			
		|||
#: assets/templates/assets/asset_bulk_update.html:24
 | 
			
		||||
#: assets/templates/assets/asset_create.html:41
 | 
			
		||||
#: 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
 | 
			
		||||
#: perms/templates/perms/asset_permission_create_update.html:68
 | 
			
		||||
#: terminal/templates/terminal/terminal_update.html:46
 | 
			
		||||
| 
						 | 
				
			
			@ -771,7 +770,7 @@ msgstr "使用集群管理用户"
 | 
			
		|||
 | 
			
		||||
#: assets/templates/assets/admin_user_detail.html:101
 | 
			
		||||
#: 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/cluster_assets.html:104
 | 
			
		||||
#: assets/templates/assets/cluster_list.html:89
 | 
			
		||||
| 
						 | 
				
			
			@ -885,6 +884,7 @@ msgstr "快速修改"
 | 
			
		|||
#: assets/templates/assets/asset_list.html:37
 | 
			
		||||
#: 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_detail.html:116
 | 
			
		||||
#: terminal/templates/terminal/terminal_list.html:34
 | 
			
		||||
#: users/templates/users/_select_user_modal.html:18
 | 
			
		||||
#: users/templates/users/user_detail.html:127
 | 
			
		||||
| 
						 | 
				
			
			@ -925,10 +925,10 @@ msgid "Add assets to this group"
 | 
			
		|||
msgstr "添加资产到该组"
 | 
			
		||||
 | 
			
		||||
#: 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_user.html:108
 | 
			
		||||
#: perms/templates/perms/asset_permission_user.html:136
 | 
			
		||||
#: perms/templates/perms/asset_permission_user.html:97
 | 
			
		||||
#: perms/templates/perms/asset_permission_user.html:125
 | 
			
		||||
#: users/templates/users/user_group_detail.html:95
 | 
			
		||||
msgid "Add"
 | 
			
		||||
msgstr "添加"
 | 
			
		||||
| 
						 | 
				
			
			@ -942,7 +942,7 @@ msgstr "移除"
 | 
			
		|||
msgid "Create asset group"
 | 
			
		||||
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/cluster_list.html:84
 | 
			
		||||
#: assets/templates/assets/system_user_list.html:129
 | 
			
		||||
| 
						 | 
				
			
			@ -953,29 +953,29 @@ msgstr "创建资产组"
 | 
			
		|||
msgid "Are you sure?"
 | 
			
		||||
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
 | 
			
		||||
msgid "This will delete the selected groups !!!"
 | 
			
		||||
msgstr "删除选择组"
 | 
			
		||||
 | 
			
		||||
#: assets/templates/assets/asset_group_list.html:91
 | 
			
		||||
#: assets/templates/assets/asset_group_list.html:89
 | 
			
		||||
msgid "Group deleted"
 | 
			
		||||
msgstr "组已被删除"
 | 
			
		||||
 | 
			
		||||
#: assets/templates/assets/asset_group_list.html:92
 | 
			
		||||
#: assets/templates/assets/asset_group_list.html:97
 | 
			
		||||
#: assets/templates/assets/asset_group_list.html:90
 | 
			
		||||
#: assets/templates/assets/asset_group_list.html:95
 | 
			
		||||
msgid "Group Delete"
 | 
			
		||||
msgstr "删除"
 | 
			
		||||
 | 
			
		||||
#: assets/templates/assets/asset_group_list.html:96
 | 
			
		||||
#: assets/templates/assets/asset_group_list.html:94
 | 
			
		||||
msgid "Group deleting failed."
 | 
			
		||||
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."
 | 
			
		||||
msgstr "更新成功"
 | 
			
		||||
 | 
			
		||||
#: assets/templates/assets/asset_group_list.html:160
 | 
			
		||||
#: assets/templates/assets/asset_group_list.html:158
 | 
			
		||||
msgid "AssetGroup Updated"
 | 
			
		||||
msgstr "资产组更新"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1176,7 +1176,7 @@ msgstr "系统用户删除失败"
 | 
			
		|||
msgid "Connective"
 | 
			
		||||
msgstr "连接性"
 | 
			
		||||
 | 
			
		||||
#: assets/templates/assets/user_asset_list.html:66
 | 
			
		||||
#: assets/templates/assets/user_asset_list.html:65
 | 
			
		||||
msgid "Connect"
 | 
			
		||||
msgstr "连接"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1362,7 +1362,7 @@ msgid "Version detail"
 | 
			
		|||
msgstr "版本详情"
 | 
			
		||||
 | 
			
		||||
#: 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"
 | 
			
		||||
msgstr "执行历史"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1434,7 +1434,7 @@ msgstr "失败/成功/总"
 | 
			
		|||
msgid "Version"
 | 
			
		||||
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"
 | 
			
		||||
msgstr "执行历史详情"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1460,12 +1460,12 @@ msgid "Success assets"
 | 
			
		|||
msgstr "成功资产"
 | 
			
		||||
 | 
			
		||||
#: 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"
 | 
			
		||||
msgstr "任务详情"
 | 
			
		||||
 | 
			
		||||
#: 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"
 | 
			
		||||
msgstr "任务各版本"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1517,21 +1517,21 @@ msgstr "成功"
 | 
			
		|||
msgid "Date"
 | 
			
		||||
msgstr "日期"
 | 
			
		||||
 | 
			
		||||
#: ops/views.py:35 ops/views.py:51 ops/views.py:64 ops/views.py:77
 | 
			
		||||
#: ops/views.py:90 ops/views.py:103 ops/views.py:116
 | 
			
		||||
#: ops/views.py:36 ops/views.py:52 ops/views.py:65 ops/views.py:78
 | 
			
		||||
#: ops/views.py:91 ops/views.py:104 ops/views.py:117
 | 
			
		||||
msgid "Ops"
 | 
			
		||||
msgstr "作业中心"
 | 
			
		||||
 | 
			
		||||
#: ops/views.py:36
 | 
			
		||||
#: ops/views.py:37
 | 
			
		||||
msgid "Task list"
 | 
			
		||||
msgstr "任务列表"
 | 
			
		||||
 | 
			
		||||
#: ops/views.py:78
 | 
			
		||||
#: ops/views.py:79
 | 
			
		||||
msgid "Task run history"
 | 
			
		||||
msgstr "执行历史"
 | 
			
		||||
 | 
			
		||||
#: 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"
 | 
			
		||||
msgstr "选择用户"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1542,12 +1542,13 @@ msgstr "选择用户"
 | 
			
		|||
#: terminal/templates/terminal/command_list.html:32
 | 
			
		||||
#: terminal/templates/terminal/command_list.html:72
 | 
			
		||||
#: terminal/templates/terminal/session_list.html:33
 | 
			
		||||
#: terminal/templates/terminal/session_list.html:71 users/models/user.py:31
 | 
			
		||||
#: users/templates/users/user_group_detail.html:78 users/views/user.py:348
 | 
			
		||||
#: terminal/templates/terminal/session_list.html:71 users/forms.py:187
 | 
			
		||||
#: users/models/user.py:31 users/templates/users/user_group_detail.html:78
 | 
			
		||||
#: users/views/user.py:348
 | 
			
		||||
msgid "User"
 | 
			
		||||
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"
 | 
			
		||||
msgstr "选择用户组"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1594,21 +1595,15 @@ msgstr "用户或用户组"
 | 
			
		|||
msgid "Assets and asset groups"
 | 
			
		||||
msgstr "资产或资产组"
 | 
			
		||||
 | 
			
		||||
#: perms/templates/perms/asset_permission_asset.html:57
 | 
			
		||||
#: 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
 | 
			
		||||
#: perms/templates/perms/asset_permission_asset.html:80
 | 
			
		||||
msgid "Add asset to this permission"
 | 
			
		||||
msgstr "添加资产"
 | 
			
		||||
 | 
			
		||||
#: perms/templates/perms/asset_permission_asset.html:119
 | 
			
		||||
#: perms/templates/perms/asset_permission_asset.html:108
 | 
			
		||||
msgid "Add asset group to this permission"
 | 
			
		||||
msgstr "添加资产组"
 | 
			
		||||
 | 
			
		||||
#: perms/templates/perms/asset_permission_asset.html:136
 | 
			
		||||
#: perms/templates/perms/asset_permission_asset.html:125
 | 
			
		||||
#: users/templates/users/user_detail.html:195
 | 
			
		||||
msgid "Join"
 | 
			
		||||
msgstr "加入"
 | 
			
		||||
| 
						 | 
				
			
			@ -1642,26 +1637,24 @@ msgstr "系统用户数量"
 | 
			
		|||
msgid "Create permission"
 | 
			
		||||
msgstr "创建授权规则"
 | 
			
		||||
 | 
			
		||||
#: perms/templates/perms/asset_permission_list.html:31
 | 
			
		||||
msgid "Is valid"
 | 
			
		||||
msgstr "有效"
 | 
			
		||||
 | 
			
		||||
#: perms/templates/perms/asset_permission_user.html:35
 | 
			
		||||
msgid "User list of "
 | 
			
		||||
msgstr "用户列表"
 | 
			
		||||
 | 
			
		||||
#: perms/templates/perms/asset_permission_user.html:56 users/models/user.py:37
 | 
			
		||||
#: 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
 | 
			
		||||
#: perms/templates/perms/asset_permission_user.html:80
 | 
			
		||||
msgid "Add user to asset permission"
 | 
			
		||||
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
 | 
			
		||||
msgid "Select user"
 | 
			
		||||
msgstr "选择用户"
 | 
			
		||||
 | 
			
		||||
#: perms/templates/perms/asset_permission_user.html:119
 | 
			
		||||
#: perms/templates/perms/asset_permission_user.html:108
 | 
			
		||||
msgid "Add user group to asset permission"
 | 
			
		||||
msgstr "添加用户组"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1782,8 +1775,8 @@ msgstr ""
 | 
			
		|||
msgid "Close"
 | 
			
		||||
msgstr "关闭"
 | 
			
		||||
 | 
			
		||||
#: templates/_nav.html:9 users/views/group.py:30 users/views/group.py:46
 | 
			
		||||
#: users/views/group.py:72 users/views/group.py:89 users/views/login.py:193
 | 
			
		||||
#: templates/_nav.html:9 users/views/group.py:30 users/views/group.py:48
 | 
			
		||||
#: 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/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
 | 
			
		||||
| 
						 | 
				
			
			@ -1905,6 +1898,7 @@ msgid "Boot Time"
 | 
			
		|||
msgstr "运行时间"
 | 
			
		||||
 | 
			
		||||
#: terminal/models.py:96 terminal/templates/terminal/session_list.html:74
 | 
			
		||||
#: terminal/templates/terminal/terminal_detail.html:47
 | 
			
		||||
msgid "Remote addr"
 | 
			
		||||
msgstr "远端地址"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2166,6 +2160,11 @@ msgstr "管理员"
 | 
			
		|||
msgid "Application"
 | 
			
		||||
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/templates/users/user_detail.html:86
 | 
			
		||||
#: users/templates/users/user_list.html:25
 | 
			
		||||
| 
						 | 
				
			
			@ -2384,7 +2383,7 @@ msgstr "授权资产组"
 | 
			
		|||
msgid "Cancel"
 | 
			
		||||
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"
 | 
			
		||||
msgstr "资产组详情"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2396,7 +2395,7 @@ msgstr "添加用户"
 | 
			
		|||
msgid "Valid"
 | 
			
		||||
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"
 | 
			
		||||
msgstr "创建用户组"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2597,7 +2596,13 @@ msgstr "密码或秘钥不合法"
 | 
			
		|||
msgid "User group list"
 | 
			
		||||
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"
 | 
			
		||||
msgstr "编辑用户组"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2683,14 +2688,4 @@ msgstr "密码更新"
 | 
			
		|||
msgid "Public key update"
 | 
			
		||||
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 rest_framework import viewsets
 | 
			
		||||
from rest_framework import viewsets, generics
 | 
			
		||||
from rest_framework.views import Response
 | 
			
		||||
 | 
			
		||||
from .hands import IsSuperUser
 | 
			
		||||
from .models import Task, AdHoc, AdHocRunHistory
 | 
			
		||||
from .serializers import TaskSerializer, AdHocSerializer, AdHocRunHistorySerializer
 | 
			
		||||
from .tasks import run_ansible_task
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TaskViewSet(viewsets.ModelViewSet):
 | 
			
		||||
| 
						 | 
				
			
			@ -15,6 +17,17 @@ class TaskViewSet(viewsets.ModelViewSet):
 | 
			
		|||
    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):
 | 
			
		||||
    queryset = AdHoc.objects.all()
 | 
			
		||||
    serializer_class = AdHocSerializer
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -89,7 +89,7 @@
 | 
			
		|||
                                            <td>
 | 
			
		||||
                                                <b>
 | 
			
		||||
                                                {% for task in object.latest_adhoc.tasks %}
 | 
			
		||||
                                                {{ forloop.counter }}. {{ task.name }} : {{ task.action.module }} <br/>
 | 
			
		||||
                                                {{ forloop.counter }}. {{ task.name }} ::: {{ task.action.module }} <br/>
 | 
			
		||||
                                                {% endfor %}
 | 
			
		||||
                                                </b>
 | 
			
		||||
                                            </td>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -67,6 +67,7 @@
 | 
			
		|||
                {% endif %}
 | 
			
		||||
            </td>
 | 
			
		||||
            <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>
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
| 
						 | 
				
			
			@ -98,10 +99,32 @@ $(document).ready(function() {
 | 
			
		|||
 | 
			
		||||
}).on('click', '.btn-del', function () {
 | 
			
		||||
    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 the_url = '{% url "api-ops:task-detail" pk=DEFAULT_PK %}'.replace('{{ DEFAULT_PK }}', uid);
 | 
			
		||||
    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>
 | 
			
		||||
{% endblock %}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
# ~*~ coding: utf-8 ~*~
 | 
			
		||||
from __future__ import unicode_literals
 | 
			
		||||
 | 
			
		||||
from django.conf.urls import url
 | 
			
		||||
from rest_framework.routers import DefaultRouter
 | 
			
		||||
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/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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,11 +27,11 @@
 | 
			
		|||
                                <i class="fa fa-bar-chart-o"></i> {% trans 'Assets and asset groups' %}</a>
 | 
			
		||||
                            </li>
 | 
			
		||||
                            <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 class="pull-right">
 | 
			
		||||
                                <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>
 | 
			
		||||
                            </li>
 | 
			
		||||
                        </ul>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,7 +13,7 @@
 | 
			
		|||
                                <a href="" class="text-center"><i class="fa fa-laptop"></i> {% trans 'Terminal detail' %} </a>
 | 
			
		||||
                            </li>
 | 
			
		||||
                            <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>
 | 
			
		||||
                        </ul>
 | 
			
		||||
                    </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>
 | 
			
		||||
                            </li>
 | 
			
		||||
                            <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 class="pull-right">
 | 
			
		||||
                                <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>
 | 
			
		||||
                            </li>
 | 
			
		||||
                        </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>#}
 | 
			
		||||
{#                            </li>#}
 | 
			
		||||
                            <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 class="pull-right">
 | 
			
		||||
                                <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>
 | 
			
		||||
                            </li>
 | 
			
		||||
                        </ul>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue