From 4944ac8e751268ce73c74bc1cce8fde1d720d406 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=81=E5=B9=BF?= Date: Thu, 5 Dec 2019 15:09:25 +0800 Subject: [PATCH] Config (#3502) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [Update] 修改config * [Update] 移动存储设置到到terminal中 * [Update] 修改permission 查看 * [Update] pre merge * [Update] 录像存储 * [Update] 命令存储 * [Update] 添加存储测试可连接性 * [Update] 修改 meta 值的 key 为大写 * [Update] 修改 Terminal 相关 Storage 配置 * [Update] 删除之前获取录像/命令存储的代码 * [Update] 修改导入失败 * [Update] 迁移文件添加default存储 * [Update] 删除之前代码,添加help_text信息 * [Update] 删除之前代码 * [Update] 删除之前代码 * [Update] 抽象命令/录像存储 APIView * [Update] 抽象命令/录像存储 APIView 1 * [Update] 抽象命令/录像存储 DictField * [Update] 抽象命令/录像存储列表页面 * [Update] 修复CustomDictField的bug * [Update] RemoteApp 页面添加 hidden * [Update] 用户页面添加用户关联授权 * [Update] 修改存储测试可连接性 target * [Update] 修改配置 * [Update] 修改存储前端 Form 渲染逻辑 * [Update] 修改存储细节 * [Update] 统一存储类型到 const 文件 * [Update] 修改迁移文件及Model,创建默认存储 * [Update] 修改迁移文件及Model初始化默认数据 * [Update] 修改迁移文件 * [Update] 修改迁移文件 * [Update] 修改迁移文件 * [Update] 修改迁移文件 * [Update] 修改迁移文件 * [Update] 修改迁移文件 * [Update] 修改迁移文件 * [Update] 限制删除默认存储配置,只允许创建扩展的存储类型 * [Update] 修改ip字段长度 * [Update] 修改ip字段长度 * [Update] 修改一些css * [Update] 修改关联 * [Update] 添加操作日志定时清理 * [Update] 修改记录syslog的instance encoder * [Update] 忽略登录产生的操作日志 * [Update] 限制更新存储时不覆盖原有AK SK 等字段 * [Update] 修改迁移文件添加comment字段 * [Update] 修改迁移文件 * [Update] 添加 comment 字段 * [Update] 修改默认存储no -> null * [Update] 修改细节 * [Update] 更新翻译(存储配置 * [Update] 修改定时任务注册,修改系统用户资产、节点关系api * [Update] 添加监控磁盘任务 * [Update] 修改session * [Update] 拆分serializer * [Update] 还原setting原来的manager --- apps/applications/serializers/remote_app.py | 52 +- .../remote_app_create_update.html | 8 +- .../applications/remote_app_detail.html | 7 +- apps/assets/api/__init__.py | 1 + apps/assets/api/admin_user.py | 6 + apps/assets/api/asset_user.py | 4 +- apps/assets/api/system_user.py | 7 +- apps/assets/api/system_user_relation.py | 65 + apps/assets/models/base.py | 3 + apps/assets/serializers/system_user.py | 47 + .../templates/assets/_asset_list_modal.html | 10 + .../assets/templates/assets/_system_user.html | 6 +- .../templates/assets/admin_user_assets.html | 5 - .../assets/admin_user_create_update.html | 6 +- .../templates/assets/admin_user_detail.html | 5 - .../templates/assets/asset_bulk_update.html | 8 +- .../assets/templates/assets/asset_detail.html | 2 - apps/assets/templates/assets/asset_list.html | 3 - .../templates/assets/cmd_filter_detail.html | 5 - .../assets/cmd_filter_rule_create_update.html | 6 +- .../assets/cmd_filter_rule_list.html | 5 - .../assets/domain_create_update.html | 6 +- .../templates/assets/domain_detail.html | 7 +- .../templates/assets/domain_gateway_list.html | 5 - .../assets/gateway_create_update.html | 6 +- .../templates/assets/label_create_update.html | 6 +- .../templates/assets/system_user_assets.html | 185 +- .../templates/assets/system_user_detail.html | 5 - apps/assets/urls/api_urls.py | 2 + apps/audits/api.py | 2 +- .../migrations/0007_auto_20191202_1010.py | 28 + apps/audits/models.py | 6 +- apps/audits/signals_handler.py | 18 +- apps/audits/tasks.py | 14 +- .../audits/templates/audits/ftp_log_list.html | 5 +- .../templates/audits/operate_log_list.html | 2 - .../audits/password_change_log_list.html | 2 - apps/authentication/backends/api.py | 2 +- apps/authentication/backends/ldap.py | 18 +- apps/authentication/backends/openid/views.py | 3 +- apps/authentication/mixins.py | 2 +- apps/authentication/views/login.py | 3 +- apps/common/drf/__init__.py | 2 + apps/common/{ => drf}/filters.py | 2 +- .../{drfmetadata.py => drf/metadata.py} | 0 apps/common/{ => drf}/parsers/__init__.py | 0 apps/common/{ => drf}/parsers/csv.py | 2 +- apps/common/{ => drf}/renders/__init__.py | 0 apps/common/{ => drf}/renders/csv.py | 2 +- apps/common/drf/routers.py | 10 + apps/common/fields/serializer.py | 65 +- apps/common/mixins/api.py | 4 +- apps/common/signals_handlers.py | 17 +- apps/common/tasks.py | 1 + apps/common/utils/common.py | 8 + apps/common/utils/django.py | 17 - apps/common/utils/encode.py | 36 + apps/common/utils/ipip/__init__.py | 2 +- apps/common/utils/ipip/{ipdb.py => utils.py} | 8 +- apps/jumpserver/conf.py | 498 ++-- apps/jumpserver/const.py | 9 + apps/jumpserver/context_processor.py | 4 +- apps/jumpserver/settings.py | 660 ------ apps/jumpserver/settings/__init__.py | 8 + apps/jumpserver/settings/_xpack.py | 19 + apps/jumpserver/settings/auth.py | 70 + apps/jumpserver/settings/base.py | 247 ++ apps/jumpserver/settings/custom.py | 84 + apps/jumpserver/settings/libs.py | 120 + apps/jumpserver/settings/logging.py | 116 + apps/jumpserver/urls.py | 21 +- apps/jumpserver/views/__init__.py | 7 + apps/jumpserver/{ => views}/celery_flower.py | 2 + apps/jumpserver/{ => views}/error_views.py | 2 + apps/jumpserver/{views.py => views/index.py} | 67 +- apps/jumpserver/views/other.py | 75 + apps/jumpserver/{ => views}/swagger.py | 2 +- apps/locale/zh/LC_MESSAGES/django.mo | Bin 83937 -> 83853 bytes apps/locale/zh/LC_MESSAGES/django.po | 2036 +++++++++-------- apps/ops/api/celery.py | 20 +- apps/ops/celery/decorator.py | 32 +- apps/ops/celery/signal_handler.py | 2 + apps/ops/celery/utils.py | 38 +- apps/ops/serializers/__init__.py | 5 + .../{serializers.py => serializers/adhoc.py} | 13 +- apps/ops/serializers/celery.py | 29 + apps/ops/tasks.py | 22 +- apps/ops/templates/ops/adhoc_detail.html | 2 - apps/ops/templates/ops/adhoc_history.html | 2 - .../templates/ops/adhoc_history_detail.html | 2 - .../ops/command_execution_create.html | 3 - .../templates/ops/command_execution_list.html | 7 +- apps/ops/templates/ops/task_adhoc.html | 2 - apps/ops/templates/ops/task_detail.html | 2 - apps/ops/templates/ops/task_history.html | 2 - apps/ops/urls/api_urls.py | 1 + apps/ops/utils.py | 12 + apps/ops/views/celery.py | 2 +- apps/ops/views/command.py | 2 +- apps/orgs/mixins/api.py | 6 +- apps/orgs/models.py | 8 + apps/perms/api/__init__.py | 1 + apps/perms/api/asset_permission.py | 137 +- apps/perms/api/asset_permission_relation.py | 144 ++ apps/perms/models/base.py | 11 +- apps/perms/serializers/__init__.py | 1 + apps/perms/serializers/asset_permission.py | 23 +- .../serializers/asset_permission_relation.py | 128 ++ .../perms/asset_permission_asset.html | 226 +- .../perms/asset_permission_create_update.html | 17 +- .../perms/asset_permission_detail.html | 83 +- .../perms/asset_permission_list.html | 11 +- .../perms/asset_permission_user.html | 201 +- .../remote_app_permission_create_update.html | 2 - .../perms/remote_app_permission_detail.html | 7 +- .../remote_app_permission_remote_app.html | 6 +- .../perms/remote_app_permission_user.html | 6 +- apps/perms/urls/api_urls.py | 109 +- apps/perms/urls/application_permission.py | 38 + apps/perms/urls/asset_permission.py | 83 + apps/perms/views/asset_permission.py | 21 +- apps/settings/api.py | 81 - apps/settings/forms.py | 289 --- apps/settings/forms/__init__.py | 9 + apps/settings/forms/base.py | 57 + apps/settings/forms/basic.py | 24 + apps/settings/forms/email.py | 65 + apps/settings/forms/ldap.py | 46 + apps/settings/forms/security.py | 93 + apps/settings/forms/terminal.py | 50 + apps/settings/models.py | 73 +- apps/settings/serializers/__init__.py | 6 + apps/settings/serializers/email.py | 17 + .../{serializers.py => serializers/ldap.py} | 17 +- apps/settings/serializers/public.py | 10 + apps/settings/signals_handler.py | 56 +- .../settings/command_storage_create.html | 175 -- .../settings/replay_storage_create.html | 277 --- .../templates/settings/security_setting.html | 2 +- .../templates/settings/terminal_setting.html | 107 +- apps/settings/urls/api_urls.py | 5 +- apps/settings/urls/view_urls.py | 2 - apps/settings/views.py | 32 +- apps/static/js/jumpserver.js | 97 +- apps/static/js/plugins/select2/i18n/zh-CN.js | 2 + apps/templates/_base_create_update.html | 2 - apps/templates/_base_list.html | 4 - apps/templates/_foot_js.html | 6 + apps/templates/_head_css_js.html | 2 + apps/templates/index.html | 2 +- apps/terminal/api/__init__.py | 1 + apps/terminal/api/session.py | 2 +- apps/terminal/api/storage.py | 74 + apps/terminal/backends/__init__.py | 15 +- apps/terminal/const.py | 83 + apps/terminal/forms/__init__.py | 5 + apps/terminal/forms/storage.py | 121 + apps/terminal/{forms.py => forms/terminal.py} | 18 +- .../0016_commandstorage_replaystorage.py | 47 + .../migrations/0017_auto_20191125_0931.py | 86 + .../migrations/0018_auto_20191202_1010.py | 67 + apps/terminal/models.py | 124 +- apps/terminal/serializers/__init__.py | 4 +- apps/terminal/serializers/session.py | 24 + apps/terminal/serializers/storage.py | 73 + .../serializers/{v1.py => terminal.py} | 28 +- .../terminal/base_storage_create_update.html | 59 + .../templates/terminal/base_storage_list.html | 130 ++ .../command_storage_create_update.html | 30 + .../terminal/command_storage_list.html | 15 + .../replay_storage_create_update.html | 25 + .../terminal/replay_storage_list.html | 14 + .../templates/terminal/session_list.html | 2 - .../templates/terminal/terminal_list.html | 1 + .../templates/terminal/terminal_update.html | 2 - apps/terminal/urls/api_urls.py | 6 +- apps/terminal/urls/views_urls.py | 10 + apps/terminal/views/__init__.py | 4 + apps/terminal/views/storage.py | 179 ++ apps/tickets/serializers/ticket.py | 2 - apps/users/api/relation.py | 4 +- apps/users/models/user.py | 7 +- apps/users/serializers/realtion.py | 8 +- .../users/user_asset_permission.html | 226 ++ apps/users/templates/users/user_detail.html | 5 +- .../templates/users/user_granted_asset.html | 3 + .../users/user_group_create_update.html | 4 - .../templates/users/user_group_detail.html | 11 +- apps/users/urls/views_urls.py | 1 + apps/users/views/__init__.py | 1 + apps/users/views/profile.py | 272 +++ apps/users/views/user.py | 259 +-- jms | 26 +- 193 files changed, 5609 insertions(+), 4357 deletions(-) create mode 100644 apps/assets/api/system_user_relation.py create mode 100644 apps/audits/migrations/0007_auto_20191202_1010.py create mode 100644 apps/common/drf/__init__.py rename apps/common/{ => drf}/filters.py (99%) rename apps/common/{drfmetadata.py => drf/metadata.py} (100%) rename apps/common/{ => drf}/parsers/__init__.py (100%) rename apps/common/{ => drf}/parsers/csv.py (98%) rename apps/common/{ => drf}/renders/__init__.py (100%) rename apps/common/{ => drf}/renders/csv.py (98%) create mode 100644 apps/common/drf/routers.py rename apps/common/utils/ipip/{ipdb.py => utils.py} (61%) delete mode 100644 apps/jumpserver/settings.py create mode 100644 apps/jumpserver/settings/__init__.py create mode 100644 apps/jumpserver/settings/_xpack.py create mode 100644 apps/jumpserver/settings/auth.py create mode 100644 apps/jumpserver/settings/base.py create mode 100644 apps/jumpserver/settings/custom.py create mode 100644 apps/jumpserver/settings/libs.py create mode 100644 apps/jumpserver/settings/logging.py create mode 100644 apps/jumpserver/views/__init__.py rename apps/jumpserver/{ => views}/celery_flower.py (95%) rename apps/jumpserver/{ => views}/error_views.py (94%) rename apps/jumpserver/{views.py => views/index.py} (75%) create mode 100644 apps/jumpserver/views/other.py rename apps/jumpserver/{ => views}/swagger.py (98%) create mode 100644 apps/ops/serializers/__init__.py rename apps/ops/{serializers.py => serializers/adhoc.py} (88%) create mode 100644 apps/ops/serializers/celery.py create mode 100644 apps/perms/api/asset_permission_relation.py create mode 100644 apps/perms/serializers/asset_permission_relation.py create mode 100644 apps/perms/urls/application_permission.py create mode 100644 apps/perms/urls/asset_permission.py delete mode 100644 apps/settings/forms.py create mode 100644 apps/settings/forms/__init__.py create mode 100644 apps/settings/forms/base.py create mode 100644 apps/settings/forms/basic.py create mode 100644 apps/settings/forms/email.py create mode 100644 apps/settings/forms/ldap.py create mode 100644 apps/settings/forms/security.py create mode 100644 apps/settings/forms/terminal.py create mode 100644 apps/settings/serializers/__init__.py create mode 100644 apps/settings/serializers/email.py rename apps/settings/{serializers.py => serializers/ldap.py} (54%) create mode 100644 apps/settings/serializers/public.py delete mode 100644 apps/settings/templates/settings/command_storage_create.html delete mode 100644 apps/settings/templates/settings/replay_storage_create.html create mode 100644 apps/static/js/plugins/select2/i18n/zh-CN.js create mode 100644 apps/terminal/api/storage.py create mode 100644 apps/terminal/forms/__init__.py create mode 100644 apps/terminal/forms/storage.py rename apps/terminal/{forms.py => forms/terminal.py} (69%) create mode 100644 apps/terminal/migrations/0016_commandstorage_replaystorage.py create mode 100644 apps/terminal/migrations/0017_auto_20191125_0931.py create mode 100644 apps/terminal/migrations/0018_auto_20191202_1010.py create mode 100644 apps/terminal/serializers/session.py create mode 100644 apps/terminal/serializers/storage.py rename apps/terminal/serializers/{v1.py => terminal.py} (55%) create mode 100644 apps/terminal/templates/terminal/base_storage_create_update.html create mode 100644 apps/terminal/templates/terminal/base_storage_list.html create mode 100644 apps/terminal/templates/terminal/command_storage_create_update.html create mode 100644 apps/terminal/templates/terminal/command_storage_list.html create mode 100644 apps/terminal/templates/terminal/replay_storage_create_update.html create mode 100644 apps/terminal/templates/terminal/replay_storage_list.html create mode 100644 apps/terminal/views/storage.py create mode 100644 apps/users/templates/users/user_asset_permission.html create mode 100644 apps/users/views/profile.py diff --git a/apps/applications/serializers/remote_app.py b/apps/applications/serializers/remote_app.py index 168a02280..a6c1c557c 100644 --- a/apps/applications/serializers/remote_app.py +++ b/apps/applications/serializers/remote_app.py @@ -5,6 +5,7 @@ from rest_framework import serializers from common.serializers import AdaptedBulkListSerializer +from common.fields.serializer import CustomMetaDictField from orgs.mixins.serializers import BulkOrgResourceModelSerializer from .. import const @@ -16,54 +17,9 @@ __all__ = [ ] -class RemoteAppParamsDictField(serializers.DictField): - """ - RemoteApp field => params - """ - @staticmethod - def filter_attribute(attribute, instance): - """ - 过滤掉params字段值中write_only特性的key-value值 - For example, the chrome_password field is not returned when serializing - { - 'chrome_target': 'http://www.jumpserver.org/', - 'chrome_username': 'admin', - 'chrome_password': 'admin', - } - """ - for field in const.REMOTE_APP_TYPE_MAP_FIELDS[instance.type]: - if field.get('write_only', False): - attribute.pop(field['name'], None) - return attribute - - def get_attribute(self, instance): - """ - 序列化时调用 - """ - attribute = super().get_attribute(instance) - attribute = self.filter_attribute(attribute, instance) - return attribute - - @staticmethod - def filter_value(dictionary, value): - """ - 过滤掉不属于当前app_type所包含的key-value值 - """ - app_type = dictionary.get('type', const.REMOTE_APP_TYPE_CHROME) - fields = const.REMOTE_APP_TYPE_MAP_FIELDS[app_type] - fields_names = [field['name'] for field in fields] - no_need_keys = [k for k in value.keys() if k not in fields_names] - for k in no_need_keys: - value.pop(k) - return value - - def get_value(self, dictionary): - """ - 反序列化时调用 - """ - value = super().get_value(dictionary) - value = self.filter_value(dictionary, value) - return value +class RemoteAppParamsDictField(CustomMetaDictField): + type_map_fields = const.REMOTE_APP_TYPE_MAP_FIELDS + default_type = const.REMOTE_APP_TYPE_CHROME class RemoteAppSerializer(BulkOrgResourceModelSerializer): diff --git a/apps/applications/templates/applications/remote_app_create_update.html b/apps/applications/templates/applications/remote_app_create_update.html index b193dfff5..ad7a65545 100644 --- a/apps/applications/templates/applications/remote_app_create_update.html +++ b/apps/applications/templates/applications/remote_app_create_update.html @@ -19,14 +19,14 @@
{# chrome #} -
+ {# mysql workbench #} -
+ {# vmware #} -
+ {# custom #} -
+