Compare commits

...

3747 Commits

Author SHA1 Message Date
jiangweidong
396144e3a8 perf: Allow admins to configure available MFA services for user auth 2025-12-05 10:50:45 +08:00
老广
c191d86f43 Refactor GitHub Actions workflow for event handling 2025-11-27 14:27:27 +08:00
wangruidong
7911137ffb fix: Truncate asset URL to 128 characters to prevent exceeding length limit 2025-11-27 14:17:19 +08:00
wangruidong
1053933cae fix: Add migration to refresh PostgreSQL collation version 2025-11-27 14:16:44 +08:00
wangruidong
96fdc025cd fix: Search for risk_level, search result is empty 2025-11-26 18:07:20 +08:00
wangruidong
fde19764e0 fix: Processing redirection url unquote 2025-11-25 14:00:31 +08:00
wangruidong
978fbc70e6 perf: Improve city retrieval fallback to handle missing values 2025-11-25 13:59:48 +08:00
Ewall555
636ffd786d feat: add namespace setting to k8s protocol configuration 2025-11-25 11:08:23 +08:00
feng
3b756aa26f perf: Component i18n lang lower 2025-11-25 10:56:37 +08:00
Bai
817c0099d1 perf: client pkg rename 2025-11-21 18:45:49 +08:00
Bai
a0d7871130 perf: client pkg rename 2025-11-21 18:45:49 +08:00
Bai
c97124c279 perf: client pkg rename 2025-11-20 17:59:22 +08:00
Bai
32a766ed34 perf: client pkg rename 2025-11-20 17:59:22 +08:00
Bai
58fd15d743 perf: client pkg rename 2025-11-20 17:59:22 +08:00
feng
f50250dedb perf: Client version 2025-11-20 16:37:23 +08:00
wangruidong
9e150b7fbe fix: One login lock, resulting in two logs 2025-11-20 15:01:06 +08:00
wangruidong
16c79f59a7 fix: Handle case where all time_periods have empty values as a selection of all 2025-11-20 11:31:09 +08:00
wangruidong
be0f04862a fix: Correctly pass runas value in ACL check for job execution 2025-11-19 19:08:29 +08:00
feng
1a3fb2f0db perf: Account bulk error prompt 2025-11-19 17:42:39 +08:00
Eric
4cd70efe66 perf: fix mp4 type replay 2025-11-19 17:10:26 +08:00
wangruidong
28700c01c8 perf: The login log records the locked login log 2025-11-19 17:08:55 +08:00
wangruidong
4524822245 fix: Solve this version of Mysql doesn't yet support 'LIMIT & IN/ALL/ANY/S0ME subquery' error 2025-11-19 09:52:05 +08:00
Eric
9d04fda018 perf: add match perm to user for suggestions api 2025-11-19 09:48:31 +08:00
老广
01c277cd1e Add Client to JumpServer components list 2025-11-19 09:19:52 +08:00
wangruidong
c4b3531d72 fix: correct handling of changed field values in operate log 2025-11-18 10:32:49 +08:00
feng
8870d1ef9e perf: Translate 2025-11-17 18:25:40 +08:00
wangruidong
6c5086a083 perf: implement login asset ACL checks in Job and JobExecution viewsets 2025-11-17 10:53:22 +08:00
wrd
e9f762a982 Revert "perf: Reduce the number of pub sub processing threads (#16072)"
This reverts commit 70068c9253.
2025-11-17 10:52:16 +08:00
wangruidong
d4d4cadbcd fix: OAuth2 Only allow existing users to log in operate log error 2025-11-13 18:42:28 +08:00
fit2bot
5e56590405 perf: change base img (#16279)
* perf: change base img

* perf: add gcc

* perf: change base image

* perf: Update Dockerfile with new base image tag

---------

Co-authored-by: ibuler <ibuler@qq.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-13 17:32:51 +08:00
wangruidong
ad8c0f6664 fix: SAML2 Only allow existing users to log in operate log error 2025-11-13 16:36:58 +08:00
wangruidong
47dd6babfc perf: add id verbose_name 2025-11-13 15:17:14 +08:00
ibuler
691d1c4dba perf: remove client key 2025-11-13 14:36:40 +08:00
ibuler
ac485804d5 perf: postgresql support ssl 2025-11-13 14:36:40 +08:00
ibuler
51e5fdb301 perf: change i18n 2025-11-13 10:05:37 +08:00
feng
69c4d613f7 perf: Add client support version 2025-11-11 16:37:12 +08:00
github-actions[bot]
1ad825bf0d perf: Update Dockerfile with new base image tag 2025-11-11 15:11:51 +08:00
ibuler
a286cb9343 deps: upgrade playwright 2025-11-11 15:11:51 +08:00
ibuler
1eb489bb2d perf: upgrade pg client 2025-11-11 14:24:53 +08:00
fit2bot
4334ae9e5e perf: update apt source config (#16265)
* perf: upgrade os to trixie

* perf: update apt source config

* perf: Update Dockerfile with new base image tag

---------

Co-authored-by: ibuler <ibuler@qq.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-11 14:17:35 +08:00
fit2bot
f2e346a0c3 perf: upgrade os to trixie (#16263)
* perf: upgrade os to trixie

* perf: Update Dockerfile with new base image tag

---------

Co-authored-by: ibuler <ibuler@qq.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-11 11:52:17 +08:00
wangruidong
dc20b06431 fix: i18n error 2025-11-10 18:14:18 +08:00
fit2bot
387a9248fc perf: Add a key to cover all protocols and ports (#16227)
Co-authored-by: wangruidong <940853815@qq.com>
2025-11-10 18:04:00 +08:00
wangruidong
705fd6385f fix: i18n error 2025-11-10 18:03:51 +08:00
fit2bot
0ccf36621f perf: Translate select files (#16212)
Co-authored-by: wangruidong <940853815@qq.com>
2025-11-06 18:26:54 +08:00
fit2bot
a9ae12fc2c perf: Implement data masking rules ACL check before job execution (#16216)
* perf: Implement data masking rules ACL check before job execution

* perf: Add login asset ACL check during job creation

* perf: Remove unused code.

---------

Co-authored-by: wangruidong <940853815@qq.com>
2025-11-06 18:25:34 +08:00
老广
7b1a25adde Add issue spam configuration file 2025-11-06 18:13:42 +08:00
feng
a1b5eb1cd8 perf: Translate 2025-11-06 15:50:15 +08:00
wangruidong
24ac642c5e fix: Escape percentage signs in gateway password for sshpass command 2025-11-06 14:10:24 +08:00
wangruidong
e4f5e21219 perf: Support batch import of leak passwords 2025-11-06 14:09:09 +08:00
feng
a2aae9db47 perf: Translate 2025-11-05 19:07:48 +08:00
feng
206c43cf75 fix: Fixed the issue of inaccurate calculation of the number of dashboard commands. 2025-11-04 18:14:02 +08:00
feng
019a657ec3 perf: Ssotoken login create operator choose org_id 2025-11-03 17:36:04 +08:00
feng
fad60ee40f perf: Translate 2025-11-03 10:51:22 +08:00
feng
1728412793 perf: Bulk account support node 2025-10-31 17:19:48 +08:00
feng
3e93034fbc perf: Update remote_client 2025-10-30 10:12:40 +08:00
feng
f4b3a7d73a perf: Sync feishu info 2025-10-29 14:53:45 +08:00
wrd
3781c40179 Revert "perf: update fields serialization and bump django and djangorestframe…"
This reverts commit dd0cacb4bc.
2025-10-29 11:19:50 +08:00
ibuler
fab6219cea perf: branches auto cleanup 2025-10-29 10:10:21 +08:00
fit2bot
dd0cacb4bc perf: update fields serialization and bump django and djangorestframework versions (#16209)
Co-authored-by: wangruidong <940853815@qq.com>
2025-10-28 16:42:06 +08:00
ibuler
b8639601a1 perf: branches auto cleanup 2025-10-27 15:33:06 +08:00
老广
ab9882c9c1 perf: check api summary 2025-10-27 15:28:21 +08:00
ibuler
77a7b74b15 perf: print summary in the end 2025-10-27 15:26:04 +08:00
dependabot[bot]
4bc05865f1 chore(deps): bump python-ldap from 3.4.3 to 3.4.5
Bumps [python-ldap](https://github.com/python-ldap/python-ldap) from 3.4.3 to 3.4.5.
- [Release notes](https://github.com/python-ldap/python-ldap/releases)
- [Changelog](https://github.com/python-ldap/python-ldap/blob/python-ldap-3.4.5/CHANGES)
- [Commits](https://github.com/python-ldap/python-ldap/compare/python-ldap-3.4.3...python-ldap-3.4.5)

---
updated-dependencies:
- dependency-name: python-ldap
  dependency-version: 3.4.5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 15:24:06 +08:00
fit2bot
bec9e4f3a7 perf: update deps kombu (#16133)
* perf: update deps kombu

* perf: Update Dockerfile with new base image tag

---------

Co-authored-by: Ewall555 <a03216@foxmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: wrd <940853815@qq.com>
2025-10-27 15:18:16 +08:00
fit2bot
359adf3dbb perf: add check api for common user 2025-10-27 14:54:02 +08:00
feng
ac54bb672c fix: Bulk account invalid secret_reset 2025-10-24 18:18:16 +08:00
ibuler
9e3ba00bc4 perf: search support keyword q=str to search 2025-10-24 10:22:49 +08:00
wangruidong
2ec9a43317 fix: Any change to the LDAP server URI should require re-authentication and explicit re-entry of
the bind password, not reuse stored credentials
2025-10-23 15:29:47 +08:00
wangruidong
06be56ef06 fix: Enhance state check to include query parameter for session validation 2025-10-23 14:41:50 +08:00
ibuler
b2a618b206 perf: user sugguestion limit and serializer 2025-10-23 14:40:37 +08:00
wangruidong
1039c2e320 perf: ws/ldap perms check 2025-10-23 14:26:24 +08:00
fit2bot
8d7267400d fix: OpenID Only allow existing users to log in operate log error (#16013)
Co-authored-by: wangruidong <940853815@qq.com>
2025-10-22 14:53:12 +08:00
ibuler
d67e473884 perf: add auto cleanup branches 2025-10-22 11:46:09 +08:00
fit2bot
70068c9253 perf: Reduce the number of pub sub processing threads (#16072)
* perf: Reduce the number of pub sub processing threads

* perf: Using thread pool to process messages

---------

Co-authored-by: wangruidong <940853815@qq.com>
2025-10-21 17:41:14 +08:00
wangruidong
d68babb2e1 fix: Using winrm protocol to transfer files did not create a directory problem 2025-10-21 17:31:41 +08:00
wangruidong
afb6f466d5 perf: AppletHost translate 2025-10-21 17:31:03 +08:00
ibuler
453ad331ee perf: token retrieve 2025-10-21 10:48:08 +08:00
feng
d309d11a8f perf: Command count 2025-10-16 17:11:42 +08:00
feng
4771693a56 fix: dashboard command count 2025-10-16 16:25:01 +08:00
Chenyang Shen
cefc820ac1 Merge pull request #16163 from jumpserver/pr@dev@asset_acl_filter
perf: Asset acl filter action
2025-10-16 15:25:38 +08:00
feng
d007afdb43 perf: Asset acl filter action 2025-10-16 15:21:32 +08:00
feng
e8921a43be perf: Translate 2025-10-16 14:32:59 +08:00
wangruidong
a9b44103d4 fix: Handle email sending failure with appropriate error response 2025-10-16 11:28:41 +08:00
jiangweidong
4abf2bded6 perf: oracle cdb mode, common users need to start username with C## 2025-10-16 09:57:54 +08:00
feng
54693089a0 perf: replace command objects 2025-10-15 19:32:14 +08:00
Aaron3S
0b859dd502 feat: update i18n 2025-10-15 19:17:44 +08:00
feng
3fb27f969a perf: datamaskingrule perm 2025-10-15 17:33:27 +08:00
Aaron3S
45627a1d92 feat: update data masking rule filter 2025-10-15 16:51:58 +08:00
feng
245e2dab66 perf: Filter effective 2025-10-15 16:51:32 +08:00
Aaron3S
8f0a41b1a8 fix: fix data masking org problem 2025-10-15 15:51:14 +08:00
feng
1a9e56c520 perf: Translate 2025-10-15 15:24:19 +08:00
feng
67c2f471b4 perf: oracle sqlserver db2 dameng clickhouse redis db_name allow_blank 2025-10-15 11:30:00 +08:00
github-actions[bot]
b04f96f5f2 perf: Update Dockerfile with new base image tag 2025-10-14 18:09:25 +08:00
Eric
30f03b7d89 perf: change python base
perf: update deps
2025-10-14 18:09:25 +08:00
wangruidong
28a97d0b5a fix: Incorrect language display in some email content 2025-10-14 18:08:21 +08:00
Eric
3410686690 perf: fix python base ci 2025-10-14 17:47:31 +08:00
Eric
6860e2327f perf: add python base ci build 2025-10-14 17:41:05 +08:00
feng
20253e760c perf: translate 2025-10-14 17:13:42 +08:00
Aaron3S
a63cfde8d2 feat: add translate 2025-10-14 16:03:38 +08:00
feng
92e250e03b perf: user_can_authenticate add logger 2025-10-14 15:48:47 +08:00
wangruidong
098f0950cb fix: Incorrect language display in email content 2025-10-14 15:33:04 +08:00
feng
39b0830a6b perf: web script default [] 2025-10-14 13:59:11 +08:00
wangruidong
2e847bc2bc fix: Error in updating message subscription 500 2025-10-14 10:14:50 +08:00
wangruidong
f82f31876a fix: Mysql has set a gateway, and the command execution failed. 2025-10-14 10:14:23 +08:00
github-actions[bot]
cde182c015 perf: Update Dockerfile with new base image tag 2025-10-10 17:06:14 +08:00
Eric
b990cdf561 perf: update deps 2025-10-10 17:06:14 +08:00
feng
c9a062823d perf: Translate 2025-10-10 17:02:30 +08:00
feng
643ba4fc15 fix: Asset web script dont create 2025-10-10 11:43:11 +08:00
feng
d16a55bbe2 perf: Ticket details cannot view assets from other organizations. 2025-10-09 18:41:25 +08:00
fit2bot
ae31554729 perf: AppletHostOnly label match (#16109)
Co-authored-by: wangruidong <940853815@qq.com>
2025-10-09 18:13:37 +08:00
github-actions[bot]
53b47980a2 perf: Update Dockerfile with new base image tag 2025-10-09 16:55:50 +08:00
Eric
d31b5ee570 perf: update Dockerfile-base 2025-10-09 16:55:50 +08:00
feng
65aea1ea36 perf: Push account and change secret support gid 2025-10-09 16:39:32 +08:00
feng
5abb5c5d5a perf: Themes deep blue 2025-10-09 15:36:14 +08:00
feng
93e41a5004 perf: Luna themes default 2025-10-09 15:02:37 +08:00
feng
95f51bbe48 perf: Perference add themes 2025-10-09 14:47:11 +08:00
feng
0184d292ec perf: MFA code 2025-10-09 14:29:08 +08:00
fit2bot
23a6d320c7 feat: update i18n (#16101)
* feat: data masking

* feat: update i18n

---------

Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
Co-authored-by: 老广 <ibuler@qq.com>
2025-10-09 10:03:11 +08:00
Aaron3S
b16304c48a feat: data masking 2025-10-09 09:59:23 +08:00
Gerry.tan
7cd1e4d3a0 perf: Dynamically configure the validity period of the email verification code 2025-09-28 11:26:32 +08:00
Eric
64a9987c3f perf: update rdp params 2025-09-28 11:20:52 +08:00
feng
18bfe312fa perf: open web ui 2025-09-25 15:49:10 +08:00
wangruidong
c593f91d77 fix: Account backup: when sending to the mailbox fails, the task status also shows the success problem. 2025-09-18 15:44:35 +08:00
feng
46da05652a fix: Fixed the issue where the final connection verification failed when the domain name contains . 2025-09-18 14:08:00 +08:00
feng
9249aba1a9 perf: Video player version 2025-09-18 11:03:58 +08:00
fit2bot
eca637c120 perf: Translate msg template (#16050)
* fix: Correct translation for device and user limits in django.po

* perf: Translate msg template

---------

Co-authored-by: wangruidong <940853815@qq.com>
2025-09-17 19:04:06 +08:00
feng
ddacd5fce1 fix: Ticket direct approval 2025-09-17 18:58:16 +08:00
wangruidong
3ca5c04099 fix: Add ignore_https_errors option to browser context 2025-09-17 16:30:54 +08:00
wangruidong
6603a073ec fix: Case 2025-09-17 15:32:23 +08:00
wangruidong
d745f7495a fix: Conflict 2025-09-17 15:32:23 +08:00
wangruidong
76f1667c89 perf: Restore msg template default value config 2025-09-17 15:32:23 +08:00
wangruidong
1ab1954299 fix: reset password msg error 2025-09-17 15:32:23 +08:00
wangruidong
c8335999a4 perf: Translate msg template 2025-09-17 15:32:23 +08:00
feng
5b4a67362d perf: Translate 2025-09-17 15:10:54 +08:00
fit2bot
e025073da2 fix: The number of exported data is incorrect (#16043)
Co-authored-by: wangruidong <940853815@qq.com>
2025-09-16 18:52:24 +08:00
feng
2155bc6862 perf: Migrate 2025-09-16 16:46:30 +08:00
wangruidong
953b515817 perf: Add is_alive filter to TerminalFilterSet 2025-09-16 16:30:57 +08:00
ibuler
7f7a354b2d fix: get obj error on queryset limit 2025-09-16 16:28:54 +08:00
Eric
2b2f7ea3f0 perf: add rdp true color 24 bit 2025-09-16 16:28:14 +08:00
feng
529123e1b5 perf: Translate 2025-09-16 16:15:09 +08:00
ibuler
e156ab6ad8 fix: force page limit 2025-09-16 13:48:06 +08:00
wangruidong
3c1fd134ae fix: There is something wrong with the format of the site message 2025-09-16 13:33:43 +08:00
Bai
b15f663c87 fix: AK/SK remained valid after the user expired. 2025-09-16 13:32:25 +08:00
wangruidong
93906dff0a fix: Export report pdf failed 2025-09-16 11:36:42 +08:00
Bai
307befdacd fix: login acl action reject > reviewers 500 2025-09-16 11:17:42 +08:00
feng626
dbfc4d3981 Revert "perf: User acl 500"
This reverts commit 849edd33c1.
2025-09-16 11:15:51 +08:00
feng
849edd33c1 perf: User acl 500 2025-09-16 10:50:41 +08:00
feng
37cceec8fe perf: get protocols error 500 2025-09-16 10:40:42 +08:00
feng
d2494c25cc perf: Translate 2025-09-15 19:19:01 +08:00
feng
023952582e fix: Push account failed 2025-09-15 15:32:27 +08:00
halo
863fe95100 perf: client version 2025-09-12 18:53:16 +08:00
wangruidong
4b0bdb18c9 perf: Template msg example error 2025-09-12 18:47:47 +08:00
Eric
10da053a95 perf: change applet-hosts view default limit 2025-09-12 18:43:38 +08:00
mikebofs
c40bc46520 fix: asset permission exclude accounts with -action 2025-09-12 11:16:27 +08:00
feng
a732cc614e perf: Asset user login notify 2025-09-11 14:16:00 +08:00
ibuler
bb29d519c6 perf: exclude accounts date expired 2025-09-11 11:42:44 +08:00
ibuler
b56c3a76a7 fix: user option error 2025-09-11 11:21:59 +08:00
fit2bot
ab908d24a7 perf: add i18n (#16001)
* perf: change some api view default limit

* perf: add i18n

---------

Co-authored-by: mikebofs <mikebofs@gmail.com>
2025-09-10 18:18:18 +08:00
fit2bot
79cabe1b3c feat: setting email template content (#15974)
* feat: setting email template content

* perf: tempale list

* perf: custom template render to string

* perf: content serialize valid

* perf: Custom msg template base class

* perf: Template content reset

* perf: Update templates config

* perf: Remove useless code

---------

Co-authored-by: wangruidong <940853815@qq.com>
2025-09-10 16:49:52 +08:00
feng
231b7287c1 perf: Notify info css optimization 2025-09-10 14:04:19 +08:00
feng
be7a4c0d6e perf: Create account unique message 2025-09-09 17:39:18 +08:00
feng
009da19050 perf: Change secret windows password cannot contain > ^ 2025-09-09 16:41:45 +08:00
feng
dfda6b1e08 perf: Change secret del over report 2025-09-09 15:48:03 +08:00
fit2bot
59b40578d8 fix: adhoc SQL Server 2008 (#15984)
* fix: Resolve the issue of errors occurring during automated execution with SQL Server 2008

* fix: adhoc SQL Server 2008

* perf: add todo information

---------

Co-authored-by: halo <wuyihuangw@gmail.com>
2025-09-09 14:26:42 +08:00
Eric
e5db28c014 perf: user add has_public_keys 2025-09-09 14:23:39 +08:00
Eric
6d1f26b0f8 perf: add redis cluster mode setting 2025-09-09 13:51:53 +08:00
Ewall555
2333dbbe33 fix: avoid AttributeError when default_limit is missing 2025-09-09 13:32:52 +08:00
fit2bot
16461b0fa9 perf: support global search (#15961)
* perf: support global search

* perf: change serach

* perf: search model add asset permission

---------

Co-authored-by: mikebofs <mikebofs@gmail.com>
Co-authored-by: ibuler <ibuler@qq.com>
2025-09-05 16:40:18 +08:00
mikebofs
528b0ea1ba perf: change some api view default limit 2025-09-05 16:20:26 +08:00
ibuler
60f06adaa9 fix: wechat or phone decrypt err 2025-09-04 11:59:04 +08:00
Bai
7a6187b95f fix: temp token backend 2025-09-03 18:10:10 +08:00
Bai
aacaf3a174 perf: aks encrypt 2025-09-03 11:16:04 +08:00
Bai
3c9d2534fa perf: aks encrypt 2025-09-03 11:16:04 +08:00
wangruidong
4f79abe678 perf: Connect methods acl allow accept action 2025-09-03 11:00:56 +08:00
fit2bot
ae9956ff91 chore: change readme 2025-09-02 15:22:44 +08:00
Bai
429677e0ce perf: readme 2025-09-02 14:54:28 +08:00
ibuler
034ee65157 perf: decrypt secret logic 2025-09-02 10:38:10 +08:00
Eric
fdd7d9b6b1 perf: add vnc client method 2025-09-02 10:34:39 +08:00
wangruidong
db0e21f5d9 fix: Lazy import Azure and Google Cloud dependencies 2025-08-29 11:10:43 +08:00
wangruidong
468b84eb3d perf: Validate connection token id 2025-08-29 11:09:40 +08:00
ibuler
28d5475d0f perf: try to decrypt then origin value 2025-08-29 11:00:02 +08:00
ibuler
b9c60d856f perf: allow some api page no limits 2025-08-28 17:05:11 +08:00
feng
bd1d73c6dd perf: Report localtime 2025-08-28 15:39:54 +08:00
wangruidong
bf92c756d4 fix: Ensure command arguments are safely quoted in safe_run_cmd 2025-08-28 14:14:55 +08:00
feng
62ebe0d636 perf: Third login redirect url query string 2025-08-27 14:45:56 +08:00
github-actions[bot]
0b1fea8492 perf: Update Dockerfile with new base image tag 2025-08-27 11:05:19 +08:00
mikebofs
65b5f573f8 perf: change requirements 2025-08-27 11:05:19 +08:00
mikebofs
bb639e1fe7 perf: revert django-simple-history version 2025-08-27 10:43:21 +08:00
fit2bot
395b868dcf perf: swagger done (#15865)
* perf: swagger upgrade

* perf: upgrade to drf-spectacular

* perf: 添加部分注解

* perf: swagger done

---------

Co-authored-by: ibuler <ibuler@qq.com>
2025-08-27 10:27:01 +08:00
wangruidong
1350b774b3 perf: Improve chart rendering wait logic in export process 2025-08-26 16:20:22 +08:00
wrd
af7a00c1b1 fix: typo 2025-08-26 15:31:13 +08:00
wangruidong
965ec7007c perf: Enhance eager loading by including labels in queryset 2025-08-26 15:31:13 +08:00
fit2bot
1372fd7535 feat: asset permission support exclude some account
* perf: add perm exclude

* perf: exclude node action account

* perf: add i18n

* perf: pop exclude account

---------

Co-authored-by: mikebofs <mikebofs@gmail.com>
2025-08-26 14:57:57 +08:00
wangruidong
3b0ef4cca7 fix: Add nmap to Dockerfile dependencies 2025-08-25 16:29:10 +08:00
Aaron3S
6832abdaad feat: change some translate 2025-08-25 11:05:49 +08:00
feng
c6bf290dbb perf: Report translate 2025-08-22 18:57:14 +08:00
feng
23ab66c11a perf: Translate 2025-08-22 18:05:30 +08:00
feng
1debaa5547 perf: report perm 2025-08-22 17:53:52 +08:00
Bai
47413966c9 perf: captcha > CAPTCHA 2025-08-22 16:25:45 +08:00
Eric
703f39607c perf: default allow hosts 2025-08-22 14:12:45 +08:00
feng
b65ff0d84c perf: Translate 2025-08-21 18:52:38 +08:00
wangruidong
30d781dd12 fix: Export PDF wait for render done 2025-08-21 18:44:09 +08:00
wangruidong
9551cd4da9 fix: Export PDF with org id 2025-08-21 17:56:26 +08:00
mikebofs
87b456c941 perf: change default width 2025-08-21 16:19:56 +08:00
mikebofs
d4d5224c17 perf: support export dashboard 2025-08-21 16:19:56 +08:00
wangruidong
dabb30d90a perf: Change report name 2025-08-21 16:19:25 +08:00
feng
82192d38e1 perf: Translate 2025-08-21 15:32:04 +08:00
feng
571d2b4575 perf: Custom platform translate 2025-08-21 14:51:38 +08:00
Eric
ea64313c4e perf: fix conenct token platform fields 2025-08-21 14:03:15 +08:00
Bai
8764cdb733 feat: support protocols search 2025-08-21 11:49:18 +08:00
feng
980394efed perf: Transalte 2025-08-21 11:31:29 +08:00
wangruidong
2c94f10d64 fix: The approval setting org admin, and the approver is blank 2025-08-21 10:25:10 +08:00
wangruidong
e1c9f5180d perf: Export pdf using days parameter 2025-08-21 10:23:00 +08:00
wangruidong
3f1d7fa230 perf: Pdf file i18n 2025-08-21 10:23:00 +08:00
wangruidong
44bcd6e399 fix: Send email pdf deps 2025-08-21 10:23:00 +08:00
feng
5f87d98c31 perf: Translate 2025-08-20 18:17:46 +08:00
feng
540becdcbe perf: org admin view settings 2025-08-20 17:11:27 +08:00
feng
6929c4968e perf: Check api 2025-08-20 11:16:46 +08:00
Aaron3S
63b213d3a8 feat: add translate 2025-08-19 19:19:23 +08:00
feng
64fe7a55ec perf: Mongodb ping 2025-08-19 19:08:52 +08:00
feng
27829e09ef perf: Translate 2025-08-19 18:57:23 +08:00
jiangweidong
1bfc7daef6 perf: Avoid Oracle password modification SQL injection risks 2025-08-19 18:55:46 +08:00
Bai
9422aebc5e perf: email i18n 2025-08-19 18:49:25 +08:00
wangruidong
8c0cd20b48 fix: Disable passkey mfa in safe mode 2025-08-19 18:21:33 +08:00
Bai
0c612648a0 perf: email protocol rename 2025-08-19 17:04:32 +08:00
feng
36e01a316c perf: Regular command groups can be filled in with new lines 2025-08-19 15:51:39 +08:00
feng
e1b96e01eb perf: Translate 2025-08-19 15:05:13 +08:00
wangruidong
144f4b4466 fix: Virtual apps manifest i18n 2025-08-19 14:54:03 +08:00
wangruidong
8e007004c2 perf: Translate label for groups parameter 2025-08-19 14:51:52 +08:00
github-actions[bot]
c14f740209 perf: Update Dockerfile with new base image tag 2025-08-19 14:50:45 +08:00
Eric
13a85f062c perf: fix uv pip resolution 2025-08-19 14:50:45 +08:00
fit2bot
7f9d027bd3 perf: Send command translate (#15820)
Co-authored-by: wangruidong <940853815@qq.com>
Co-authored-by: Bryan <jiangjie.bai@fit2cloud.com>
2025-08-18 19:14:48 +08:00
wangruidong
c037ce1c29 perf: Send report email 2025-08-18 19:12:29 +08:00
wangruidong
ee7c6b4708 fix: Init db error 2025-08-18 19:11:59 +08:00
feng
d0e625e322 perf: Translate 2025-08-18 19:08:34 +08:00
feng
c65794a99d perf: KOKO translate 2025-08-18 18:39:42 +08:00
Eric
1e4bca6e24 perf: add lion i18n 2025-08-18 18:28:22 +08:00
feng
c1c5025fbb perf: Account automation report 2025-08-18 17:40:49 +08:00
Eric
96020fa6b4 perf: add lion i18n 2025-08-18 11:42:33 +08:00
wangruidong
5ad6f87a9e fix: Docker build error 2025-08-18 10:53:33 +08:00
feng
9b0c73c9f9 perf: translate 2025-08-15 18:57:46 +08:00
wangruidong
c029714ffd fix: Export pdf failed 2025-08-15 17:42:48 +08:00
wangruidong
c1e8a1b561 fix: Install export pdf deps 2025-08-15 17:42:48 +08:00
feng
21126de2c1 perf: get_cpu_model_count 2025-08-15 16:45:39 +08:00
feng
7d06819bbe perf: foot_js 2025-08-15 16:35:43 +08:00
Eric
92b20fe2ef perf: add lion i18n 2025-08-15 16:24:18 +08:00
feng
4326d35065 perf: User report 2025-08-14 18:55:15 +08:00
feng
4810eae725 perf: group_stats 2025-08-14 16:09:43 +08:00
fit2bot
24f7946b7b perf: change some field to encrypt field (#15842)
* perf: conn token add remote addr

* perf: change some field to encrypt field

---------

Co-authored-by: ibuler <ibuler@qq.com>
2025-08-14 15:05:18 +08:00
王晓阳
4b9c4a550e feat: support vastbase 2025-08-14 14:31:31 +08:00
feng
d3ec23ba85 perf: group_stats 2025-08-14 11:45:36 +08:00
feng
e3c33bca32 perf: User report 2025-08-14 11:12:58 +08:00
feng
0fb7e84678 perf: user asset account report 2025-08-13 18:51:08 +08:00
feng
ab30bfb2d2 perf: mysql pg playbook 2025-08-13 15:15:53 +08:00
feng
d9d034488f fix: report 2025-08-12 19:19:00 +08:00
feng
24bd7b7e1a fix rbac pam 2025-08-12 14:48:16 +08:00
wangruidong
7fb5fd3956 fix: set ansible_timeout for account connectivity tasks 2025-08-11 10:37:23 +08:00
feng
9c621f5ff5 perf: rbac pam 2025-08-08 13:52:38 +08:00
feng
ac8998b9ee perf: Account risk delete normal account 2025-08-06 17:02:53 +08:00
wangruidong
b258537890 fix: Fallback to browser language if user language is not set 2025-08-06 14:15:30 +08:00
fit2bot
b38d83c578 feat: report charts (#15630)
* perf: initial

* perf: basic finished

* perf: depend

* perf: Update Dockerfile with new base image tag

* perf: Add user report api

* perf: Update Dockerfile with new base image tag

* perf: Use user report api

* perf: Update Dockerfile with new base image tag

* perf: user login report

* perf: Update Dockerfile with new base image tag

* perf: user change password

* perf: change password dashboard

* perf: Update Dockerfile with new base image tag

* perf: Translate

* perf: asset api

* perf: asset activity

* perf: Asset report

* perf: add charts_map

* perf: account report

* perf: Translate

* perf: account automation

* perf: Account automation

* perf: title

* perf: Update Dockerfile with new base image tag

---------

Co-authored-by: ibuler <ibuler@qq.com>
Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: wangruidong <940853815@qq.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
2025-08-06 14:05:38 +08:00
feng
257f290d18 perf: Translate 2025-08-06 11:33:52 +08:00
wangruidong
d185be2180 perf: Optimize redis connection number 2025-08-04 18:53:34 +08:00
ibuler
4e33b5b478 perf: some risk example file path 2025-08-01 10:35:15 +08:00
wangruidong
1406437d4e fix: Failed to switch languages 2025-08-01 10:24:17 +08:00
feng
e46aa95980 perf: check_asset_permission_will_expired filter is_active=True 2025-08-01 10:18:52 +08:00
Eric
c619a35a04 perf: update lion i18n tip 2025-08-01 10:18:12 +08:00
wangruidong
29f10bf10e perf: ES connect error detail 2025-07-31 17:15:55 +08:00
wangruidong
a822905ae7 fix: When the cas user doesn't exist, you will be prompted with an error when logging in. 2025-07-31 17:15:18 +08:00
zhaojisen
dc5a743f4f revert style 2025-07-30 14:27:52 +08:00
zhaojisen
1de8781704 Fixed: Fix the issue with the login page footer 2025-07-30 14:27:52 +08:00
wangruidong
f3d9f4c446 fix: Failed to switch languages 2025-07-29 16:40:30 +08:00
jiangweidong
6b5d5c15ae feat: Add an embedded form to ChatAI 2025-07-29 14:15:01 +08:00
feng
1074a0df19 perf: MFA coce reuse 2025-07-29 11:00:39 +08:00
Eric
04dca794dd fix: fix chrome_app password_manager dialog 2025-07-29 10:21:46 +08:00
ibuler
14e0396508 perf: change ip db path 2025-07-29 10:20:37 +08:00
wangruidong
835eb2e3d0 perf: Improve error handling for email sending in tasks 2025-07-28 10:30:42 +08:00
ibuler
be24f28d9b perf: in safe mode passkey cannot be as mfa 2025-07-25 10:50:46 +08:00
wangruidong
26cea550c4 fix: The applet list is not translated. 2025-07-25 10:49:47 +08:00
wangruidong
36ae076cb0 fix: Open redirect security vulnerability 2025-07-24 15:50:05 +08:00
feng
51c5294fb4 perf: Ticket filter org 2025-07-24 14:36:15 +08:00
feng
da083fffa3 perf: Translate email help text 2025-07-24 14:35:21 +08:00
feng
1df04d2a94 perf: Pam rbac 2025-07-23 10:21:38 +08:00
Eric
299e52cd11 perf: vnc_guide method only by xpack 2025-07-22 14:37:38 +08:00
feng
38b268b104 fix: Circular import 2025-07-22 14:36:22 +08:00
wangruidong
6095e9c9bd perf: Modify the layout to flex 2025-07-22 14:35:05 +08:00
ibuler
c4a348aac6 perf: remove client redirect api 2025-07-22 14:34:11 +08:00
feng
75575af56f perf: Callback client 2025-07-22 13:51:08 +08:00
feng
8f91cb1473 perf: Translate 2025-07-17 15:12:01 +08:00
feng
b72e8eba7c perf: Change the secret and retry in batches 2025-07-17 14:21:31 +08:00
feng
d1d6f3fe9c perf: string_punctuation remove > ^ 2025-07-17 14:02:19 +08:00
wangruidong
6095c9865f fix: Action tips translate 2025-07-17 11:48:28 +08:00
wangruidong
6c374cb41f fix: View replay generate multiple operation logs 2025-07-17 11:24:16 +08:00
Eric
df64145adc perf: lion i18n 2025-07-16 19:49:07 +08:00
ibuler
44d77ba03f perf: random password exclude some char 2025-07-16 19:35:04 +08:00
wangruidong
3af188492f fix: Gather account failed 2025-07-16 19:19:43 +08:00
feng
9e798cd0b6 perf: Translate and tools version 2025-07-16 17:43:35 +08:00
feng
4d22c0722b fix: Exclude special char failed 2025-07-16 16:10:17 +08:00
Eric
e6a1662780 perf: add lion i18n 2025-07-15 18:58:42 +08:00
wangruidong
cc4be36752 perf: Log IntegrityError details during user authentication 2025-07-15 18:58:16 +08:00
wangruidong
e1f5d3c737 fix: Delete user failed(DoesNotExist) when user create share session 2025-07-15 18:43:43 +08:00
wangruidong
c0adc1fe74 fix: Gather account error 2025-07-15 18:43:14 +08:00
feng
613715135b perf: Translate 2025-07-15 11:46:39 +08:00
Eric
fe1d5f9828 perf: add en i18n 2025-07-11 15:34:24 +08:00
Eric
1d375e15c5 perf: add i18n keys 2025-07-11 15:34:24 +08:00
Eric
ac21d260ea perf: add lion i18n 2025-07-11 15:34:24 +08:00
wangruidong
accde77307 fix: Add third party login check is block 2025-07-11 15:33:48 +08:00
ibuler
c7dcf1ba59 perf: playbook task db save if conn timeout 2025-07-11 11:00:20 +08:00
wangruidong
b564bbebb3 perf: Translate 2025-07-11 10:30:40 +08:00
Eric
9440c855f4 perf: add lion i18n 2025-07-10 12:50:11 +08:00
w940853815
f282b2079e Update comment 2025-07-10 11:39:37 +08:00
wangruidong
1790cd8345 fix: Add additional third-party authentication backends and adjust MFA check 2025-07-10 11:39:37 +08:00
ibuler
7da74dc6e8 fix: integrate with azure oidc 2025-07-10 11:33:41 +08:00
Ewall555
33b0068f49 feat: exclude SSO token permissions for change and delete actions 2025-07-10 11:29:18 +08:00
Ewall555
9a446c118b feat: support rbac SSO token 2025-07-10 11:29:18 +08:00
Eric
4bf337b2b4 perf: add VNC terminal type 2025-07-10 11:28:32 +08:00
wangruidong
2acbb80920 perf: Add account date_expired 2025-07-09 10:47:06 +08:00
gerry-f2c
ae859c5562 perf: dbeaver uses a fixed driver directory (#15689) 2025-07-08 18:02:24 +08:00
Eric
a9bc716af5 perf: add encrypt field for sqlserver 2008 2025-07-08 18:01:31 +08:00
feng
2d5401e76e perf: Translate 2025-07-08 16:01:52 +08:00
Gerry.tan
d933e296bc perf: ES command log supports fuzzy search 2025-07-08 11:25:44 +08:00
wangruidong
1e5a995917 fix: Ticket filter error 2025-07-08 10:42:40 +08:00
wangruidong
baaaf83ab9 perf: Translate 2025-07-08 10:35:04 +08:00
wangruidong
ab06ac1f1f perf: Update IP group validation to include address validation 2025-07-08 10:34:34 +08:00
jiangweidong
99c4622ccb fix: SSO access to web assets with encrypted password auto-filling 2025-07-08 10:19:32 +08:00
Eric
9bdfab966f perf: add replay_size on session 2025-07-08 10:18:54 +08:00
老广
1a1acb62de Update README.md 2025-07-08 10:16:43 +08:00
wanghe-fit2cloud
2a128ea01b docs: Add GitCode badges 2025-07-07 15:33:08 +08:00
王贺
5a720b41bf docs: Add GitCode badge 2025-07-07 13:42:15 +08:00
feng
726c5cf34d fix: View replay record operate log 2025-07-07 10:37:29 +08:00
wangruidong
06afc8a0e1 perf: Translate 2025-07-02 19:04:15 +08:00
ibuler
276fd928a7 perf: add pg client 2025-07-01 16:18:25 +08:00
dependabot[bot]
05c6272d7e chore(deps): bump requests from 2.31.0 to 2.32.4
Bumps [requests](https://github.com/psf/requests) from 2.31.0 to 2.32.4.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.31.0...v2.32.4)

---
updated-dependencies:
- dependency-name: requests
  dependency-version: 2.32.4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-01 15:59:44 +08:00
Bai
c3f877d116 fix: check count 2025-07-01 15:35:17 +08:00
wangruidong
60deef2abf fix: Org admin cannot use system tools. 2025-07-01 15:23:34 +08:00
wangruidong
058754dc1b perf: Translate time cost 2025-06-30 10:05:13 +08:00
feng
a238c5d34b perf: operate record 2025-06-27 19:03:24 +08:00
feng626
76c6ed0f95 Merge pull request #15649 from jumpserver/pr@dev@translate
perf: Translate
2025-06-27 14:01:16 +08:00
feng626
0d07f7421b Merge branch 'dev' into pr@dev@translate 2025-06-27 14:01:05 +08:00
Ewall555
b07d4e207c perf: Translate 2025-06-27 13:59:57 +08:00
feng
dc92963059 perf: Translate 2025-06-27 13:15:07 +08:00
feng
9abd708a0a fix: ES search session count 2025-06-27 10:32:28 +08:00
jiangweidong
c9270877eb fix: According to the CMPP2.0 protocol standard, modify the attribute alignment. 2025-06-26 18:41:30 +08:00
feng
b5518dd2ba perf: Pam perm tree 2025-06-26 18:14:57 +08:00
wangruidong
1d40f5ecbc fix: Handle ValidationError in account_obj property 2025-06-26 15:23:16 +08:00
ibuler
91fee6c034 perf: change some 18n 2025-06-26 14:54:06 +08:00
feng
1b65055c5e perf: Account backup backup_type limit 2025-06-23 18:27:27 +08:00
feng
e79ef516a5 perf: Change secret windoes translate 2025-06-23 15:59:55 +08:00
Ewall555
8843f247d6 fix: Use local Python interpreter variable in RDP automation scripts 2025-06-23 14:15:46 +08:00
ibuler
cb42df542d fix: bitwardne request data encode 2025-06-23 14:13:15 +08:00
Ewall555
46ddad1d59 perf: Update metismenu plugin to version 3.0.7 2025-06-23 14:11:23 +08:00
feng
f55a6ae364 perf: Translate 2025-06-19 20:09:06 +08:00
feng
34772b8fb4 fix: client login get session_key 2025-06-19 18:48:46 +08:00
feng
286891061b perf: face acl 2025-06-19 17:58:08 +08:00
feng
269bf1283e perf: Translate 2025-06-19 17:07:25 +08:00
Bai
d32c11bced fix: login page i18n same with personal settings 2025-06-19 16:47:53 +08:00
feng
fb64af2eb2 perf: Translate 2025-06-19 16:17:09 +08:00
Eric
82f32cbba3 perf: replace koko category to luna 2025-06-19 16:09:41 +08:00
wangruidong
411b485448 fix: The title of the risk detection email and server performance check notification i18n 2025-06-19 15:33:46 +08:00
feng
60608e92ea fix: Connection failure after directly connecting to asset ACL 2025-06-19 15:28:12 +08:00
feng
6922c62b50 perf: Translate 2025-06-19 11:49:47 +08:00
Eric
531c23d983 perf: add lina i18n 2025-06-19 10:22:24 +08:00
feng
df9e6cf866 perf: Translate 2025-06-18 16:37:33 +08:00
halo
65f2b92eb3 perf: Update client version and perf translate 2025-06-17 19:26:59 +08:00
feng626
bac621991e Merge pull request #15592 from jumpserver/pr@dev@translate
perf: Translate
2025-06-17 19:26:52 +08:00
feng626
db24d34b64 Merge branch 'dev' into pr@dev@translate 2025-06-17 19:25:59 +08:00
feng
265c066054 perf: Translate 2025-06-17 19:23:55 +08:00
feng
dad6b5def0 perf: Translate 2025-06-17 18:51:39 +08:00
feng
00f6c3a5de perf: Change secret record 2025-06-17 17:11:25 +08:00
wangruidong
cfbd162890 fix: Correct language retrieval in profile to use the provided object 2025-06-16 19:04:45 +08:00
wangruidong
17e8f25cb4 fix: Update language preference setting to include category 2025-06-16 19:04:45 +08:00
wangruidong
71bf8c8699 fix: The luna page cannot switch language settings 2025-06-16 19:04:45 +08:00
wangruidong
98342e0b70 fix: The login page cannot switch language settings 2025-06-16 19:04:45 +08:00
wangruidong
70aaa9cf8f fix: Activate user language when sending emails 2025-06-16 19:04:45 +08:00
Aaron3S
70b2d28760 feat: remove fuzzy 2025-06-16 18:40:18 +08:00
Aaron3S
8265a069e2 feat: translate 2025-06-16 18:40:18 +08:00
feng
9ec48aae0c perf: Translate 2025-06-16 14:55:23 +08:00
feng
41658af8fd perf: Suggestion api 2025-06-16 14:03:27 +08:00
fit2bot
7dfb31840e tinkner request ak first 2025-06-16 11:39:20 +08:00
ibuler
2f55db60ec perf: change redirect client auth to session 2025-06-13 10:41:28 +08:00
ibuler
551e6d0479 perf: client login redirect 2025-06-13 10:41:28 +08:00
feng
61c54314d7 perf: Face translate 2025-06-12 18:55:35 +08:00
wangruidong
4e7cd37c1d fix: Ensure user language is activated when sending notifications 2025-06-12 18:30:22 +08:00
wangruidong
e89f43dcd3 perf: Translate 2025-06-12 18:30:22 +08:00
wangruidong
259ead4c6e fix: Prevent nested resource issues in type nodes tree API 2025-06-12 18:29:22 +08:00
feng
348b2a833a perf: Translate 2025-06-12 18:28:33 +08:00
feng
8aec1604ce perf: Change secret clear account queue status 2025-06-12 16:55:04 +08:00
feng
be28a6954a perf: Login to change password and filter out useless accounts 2025-06-11 19:16:29 +08:00
feng
79c2284a01 perf: Change secret after successful login 2025-06-11 18:41:31 +08:00
feng
c2b44cfd84 perf: Translate 2025-06-11 16:36:55 +08:00
ibuler
1e07cba545 perf: open svc account register on deploy 2025-06-11 13:32:00 +08:00
ibuler
48a9b2664a perf: change ftplog asset length 2025-06-11 13:27:23 +08:00
ZhaoJiSen
b3bfbf5046 Merge pull request #15550 from jumpserver/pr@dev@send_mail_async
perf: send_mail_async func log subject recipients info
2025-06-11 11:17:25 +08:00
feng
08aa1e48b9 perf: send_mail_async func log subject recipients info 2025-06-11 11:16:03 +08:00
ZhaoJiSen
97d7427090 Merge pull request #15549 from jumpserver/pr@dev@translate
perf: Translate
2025-06-10 19:14:21 +08:00
feng
9f9d5855c4 perf: Translate 2025-06-10 19:12:31 +08:00
ZhaoJiSen
2db8f0f444 Merge pull request #15546 from jumpserver/pr@dev@send_mail_async
perf: send_mail_async add log
2025-06-10 17:47:22 +08:00
feng
b75210b0c3 perf: send_mail_async add log 2025-06-10 17:45:59 +08:00
wangruidong
4713c6ddf6 fix: Task search error 2025-06-10 16:58:37 +08:00
feng
b70fb58faf perf: Change secret after successful login 2025-06-10 16:57:28 +08:00
Aaron3S
3991976a00 feat: magnus support mongodb 2025-06-10 15:51:12 +08:00
ewall555
90256208dd perf: Update jsencrypt library version 2025-06-09 18:43:18 +08:00
wangruidong
bbd3b32aa1 perf: Remove username hint 2025-06-09 16:58:51 +08:00
wangruidong
ec20a4fd02 fix: Failed to update database assets 2025-06-09 15:04:27 +08:00
wangruidong
d179ce1cd4 perf: Add celery worker count config 2025-06-09 14:02:31 +08:00
ZhaoJiSen
caf23f5b05 Merge pull request #15529 from jumpserver/pr@dev@translate
perf: Translate
2025-06-06 18:23:10 +08:00
feng626
4bb19d59ef Merge branch 'dev' into pr@dev@translate 2025-06-06 18:22:24 +08:00
feng
74ed693a95 perf: Translate 2025-06-06 18:19:44 +08:00
feng
4a7a1fd95c perf: Optimize the results returned by the suggestion api for different organizations 2025-06-06 18:09:05 +08:00
wangruidong
56268433e0 perf: Translate adhoc 2025-06-06 17:56:53 +08:00
ibuler
ea59677b13 perf: swagger auth required 2025-06-06 17:56:25 +08:00
ibuler
94ed26e115 perf: change i18n 2025-06-06 17:56:25 +08:00
wangruidong
284d793253 perf: leak password can bulk delete 2025-06-06 17:05:13 +08:00
wangruidong
570566d9dd perf: set ansible_timeout for account connectivity tasks 2025-06-04 18:41:41 +08:00
wangruidong
3f85c67aee perf: Add retention period for expired user tokens and implement cleanup task 2025-06-04 18:39:49 +08:00
wangruidong
53a84850dc fix: Ensure platform_id is a digit before querying Platform 2025-06-04 18:37:05 +08:00
feng
e4be9621bb perf: Custom push account 2025-06-03 14:52:06 +08:00
Eric
f8b778ada2 perf: tinker to v0.2.2 2025-06-03 13:54:21 +08:00
fit2bot
5c28b15e39 perf: update chrome applet to support language setting (#15509)
* perf: update chrome applet to support language setting

* perf: fix field name

---------

Co-authored-by: Eric <xplzv@126.com>
2025-06-03 13:54:04 +08:00
wangruidong
5e0babdba8 perf: Language settings in personal settings 2025-05-29 11:13:04 +08:00
feng
8a3acb649e fix: ES non-global organizations cannot be queried 2025-05-27 14:31:27 +08:00
Eric
1ade652381 perf: upgrade tinker to v0.2.1 2025-05-23 11:20:17 +08:00
github-actions[bot]
7472f83d7a Auto-translate README 2025-05-22 18:34:57 +08:00
Bai
c56a3d0a2e perf: add ko readme 2025-05-22 18:10:34 +08:00
feng
1a10225823 perf: view task log 2025-05-22 17:44:19 +08:00
feng
56c94d7b3c fix: The account suggestions api cannot find the account associated with the DS 2025-05-22 11:50:17 +08:00
ibuler
16e7a12974 perf: static file download and catch 2025-05-20 13:14:47 +08:00
ibuler
1364889083 fix: aggregate resource api 2025-05-20 13:14:21 +08:00
feng
4f19954640 perf: SSO add mfa 2025-05-20 13:12:13 +08:00
feng
1b2e376681 perf: Account list not display spec_info field 2025-05-19 16:13:36 +08:00
ibuler
14c5162153 perf: client auth changed 2025-05-19 11:27:31 +08:00
Bai
f9245e17cd perf: readme 2025-05-16 18:43:39 +08:00
Aaron3S
6bd1ec960b feat: add a new piico gm alg 2025-05-16 15:07:39 +08:00
ibuler
77cc02ae60 perf: change google authenticator apk download 2025-05-15 17:41:49 +08:00
feng
9969395500 fix: perm del node and user group 500 2025-05-15 15:55:32 +08:00
wangruidong
e1f03a194b fix: Asset list gather account raise connection already closed 2025-05-15 15:48:19 +08:00
Eric
aa0125385a perf: fix NoneType error 2025-05-15 15:01:57 +08:00
feng
8e8579bebe perf: translate 2025-05-15 14:41:19 +08:00
feng
ad5ce5d4cf perf: translate 2025-05-15 14:01:51 +08:00
ibuler
4f009504ad perf: load custom protocols 2025-05-15 11:41:33 +08:00
ibuler
986bc926fc perf: iframe set to sameorigin 2025-05-14 19:29:16 +08:00
feng
6aafb0f01a perf: Translate 2025-05-14 18:18:45 +08:00
feng
43775096d1 perf: Login switch language 2025-05-14 17:40:09 +08:00
ibuler
f826f43495 perf: simplify db using 2025-05-14 15:11:46 +08:00
ibuler
e9ff988d8c perf: db connection close if needt 2025-05-14 14:43:14 +08:00
feng
a72e6456d9 perf: Connect method exclude face 2025-05-14 14:02:27 +08:00
ibuler
941a784a5b perf: 修改 migrations 2025-05-13 19:15:01 +08:00
ibuler
edaf9bb0b2 perf: domain enabled to gateway enabled 2025-05-13 16:36:56 +08:00
feng
e8ca177fe4 perf: translate 2025-05-13 14:50:14 +08:00
ewall555
a88ebeff15 feat: Set the default expiration days for adding user and asset permissions 2025-05-13 10:35:21 +08:00
ibuler
bd0c50a3e4 fix: account username has domain, then set again 2025-05-12 18:36:26 +08:00
feng
9f121723c4 perf: auditor add asset user view perm 2025-05-12 17:57:48 +08:00
feng
245ed79b17 perf: Translate 2025-05-12 17:05:37 +08:00
ibuler
01c07a834b perf: 修改 adhoc 翻译 2025-05-12 10:50:43 +08:00
ibuler
4fb61e0af6 perf: org id error 2025-05-12 10:24:33 +08:00
Emmanuel Ferdman
19b7be33ae Resolve warnings of logger library
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
2025-05-12 09:51:30 +08:00
feng
7797c76032 perf: migrate 2025-05-09 18:25:41 +08:00
老广
eb777854d4 Pr@dev@fix django version (#15374)
* fix: Downgrade django and djangorestframework versions for compatibility

* perf: Update Dockerfile with new base image tag

* perf: Update Dockerfile with new base image tag

---------

Co-authored-by: wangruidong <940853815@qq.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-09 17:50:11 +08:00
Eric
22d4bd5292 perf: optimize file removal 2025-05-09 17:21:24 +08:00
ibuler
47d0d8b7a0 perf: stop dep check 2025-05-09 17:20:33 +08:00
wangruidong
5e298e5749 fix: Downgrade django and djangorestframework versions for compatibility 2025-05-09 16:10:49 +08:00
w940853815
ad3ba5034e Revert "fix: Upgrading django version causes json serialization problems"
This reverts commit ad56845d89.
2025-05-09 16:04:58 +08:00
feng
f1a1c3660d perf: Luna en translate 2025-05-09 15:14:56 +08:00
feng
eaf5bc5eb3 perf: I18n api 2025-05-09 14:46:48 +08:00
feng
30e680ad91 fix: ES the calculated quantity is 0 2025-05-08 17:23:15 +08:00
wangruidong
c9f281e8f7 fix: Handle exceptions in leak password check 2025-05-08 17:13:23 +08:00
wangruidong
ad56845d89 fix: Upgrading django version causes json serialization problems 2025-05-08 17:12:53 +08:00
feng
c3dceec3c7 perf: Connectivity add rdp error 2025-05-08 16:07:30 +08:00
wangruidong
100dad75f1 fix: i18n error 2025-05-08 14:50:54 +08:00
feng
aa52060f24 perf: Upgrade bootstrap js to 5.3.6 2025-05-08 14:12:17 +08:00
wangruidong
089a5f50f4 feat: Add LeakPasswords config 2025-05-07 17:47:22 +08:00
feng626
0bdbb6fd84 Merge pull request #15352 from jumpserver/pr@dev@connectivity_choice
perf: Connectivity choice
2025-05-07 17:30:48 +08:00
feng626
dd5bcab4ff Merge branch 'dev' into pr@dev@connectivity_choice 2025-05-07 17:30:30 +08:00
feng
49f0e51769 perf: Connectivity choice 2025-05-07 17:25:10 +08:00
wangruidong
5577e39f21 perf: Support watermark customization 2025-05-07 16:52:58 +08:00
老广
e2830ecdd6 perf: passkey auth auto mfa 2025-05-07 16:24:39 +08:00
feng
8065e04f26 perf: Translate 2025-05-07 15:50:04 +08:00
feng
fe70b60e95 perf: Users lina translate 2025-05-07 11:31:22 +08:00
feng
1f7836353a perf: translate 2025-05-07 10:32:08 +08:00
feng
a4296b3129 perf: Clean push record period 2025-05-06 18:32:56 +08:00
feng
ffc92fa7b4 perf: Clean push record period 2025-05-06 18:22:54 +08:00
github-actions[bot]
f94e032858 perf: Update Dockerfile with new base image tag 2025-04-30 11:13:34 +08:00
ibuler
25429e30ba perf: update quirements 2025-04-30 11:13:34 +08:00
CaptainB
5c7d539c6f chore: Configure Dependabot to group Python dependencies 2025-04-30 11:04:21 +08:00
fit2bot
a8a6e03428 perf: update deps 2025-04-30 10:58:19 +08:00
wangruidong
71b9b2df74 fix: Add AdminConnectionToken to operate log exclude_models 2025-04-30 10:51:25 +08:00
Eric
f1bc69b253 perf: add luna i18n 2025-04-29 18:12:10 +08:00
wangruidong
282ca25504 perf: Skip alert if login city seen in past 7 days 2025-04-29 17:46:10 +08:00
fit2bot
1bb44e783a perf: some i18n (#15312)
Co-authored-by: ibuler <ibuler@qq.com>
2025-04-29 17:45:29 +08:00
feng
a64fe4b0be perf: Account translate 2025-04-29 14:44:22 +08:00
feng
a75faf8da6 perf: Discover account translate 2025-04-29 14:36:13 +08:00
Bryan
537a9325a3 Update README.md (#15305)
* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md
2025-04-28 11:36:05 +08:00
feng
a9d455e867 perf: ntlm_err 2025-04-27 18:53:43 +08:00
feng
d06d26ac54 perf: Display asset/account connectivity error message 2025-04-27 18:50:00 +08:00
fit2bot
e992c44e11 perf: change lfs files download (#15293)
* perf: change lfs files download

* perf: clean unused ansible module

* perf: update lfs download

* perf: Update Dockerfile with new base image tag

* perf: change download path

* perf: Update Dockerfile with new base image tag

---------

Co-authored-by: ibuler <ibuler@qq.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-27 14:35:10 +08:00
feng
24fe058fd9 perf: lina translate 2025-04-25 18:07:09 +08:00
feng
a3fef9cc54 perf: Update the key when the integration-application is updated or created 2025-04-25 17:29:44 +08:00
ibuler
471053e62a perf: change mcp integrate 2025-04-25 17:28:03 +08:00
jiangweidong
dc6308b030 perf: if the apply-asset-ticket name is 128 characters long, will raise 500 2025-04-25 17:27:13 +08:00
feng
f016ae6161 perf: add sftplog command models field index 2025-04-25 15:21:55 +08:00
feng
14a8d877e0 perf: ko translate 2025-04-25 15:04:03 +08:00
feng
ddf20570a1 perf: device support ad 2025-04-23 19:38:01 +08:00
feng
1ad9616b7f perf: gather facts gpu info 2025-04-22 17:48:21 +08:00
刘瑞斌
d7bc6bb201 chore: use uv as package-ecosystem 2025-04-21 13:36:24 +08:00
feng
f855043468 perf: luna ru translate 2025-04-21 11:34:51 +08:00
fit2bot
3159a4e794 perf: change domain to zone (#15255)
* perf: change domain to zone

* perf: change domain to zone

* perf: change some word

* perf: update gateway enabled i18n

* perf: change migrations

---------

Co-authored-by: ibuler <ibuler@qq.com>
2025-04-21 10:30:18 +08:00
feng
57fcebfdd3 fix: No data found for the carrying organization 2025-04-18 16:50:07 +08:00
feng626
c500bb4e4c Revert "Revert "perf:Stored command records in ES support accurate searching.""
This reverts commit 6bc1c5bd50.
2025-04-18 16:50:07 +08:00
feng
fd062b0da6 perf: ru translate 2025-04-18 14:52:44 +08:00
ibuler
bcb112d5c6 perf: user profile api 2025-04-18 14:11:56 +08:00
fit2bot
533dbf316c perf: add ali rds dependencies (#15247)
* perf: add ali rds dependencies

* perf: Update Dockerfile with new base image tag

---------

Co-authored-by: Eric <xplzv@126.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-18 12:11:51 +08:00
github-actions[bot]
9cce94b709 perf: Update Dockerfile with new base image tag 2025-04-18 11:53:40 +08:00
Eric
8b815d812b perf: modify Dockerfile-base 2025-04-18 11:53:40 +08:00
github-actions[bot]
a168fc8a62 perf: Update Dockerfile with new base image tag 2025-04-18 11:29:07 +08:00
Eric
faae1a09d1 perf: lint dependencies 2025-04-18 11:29:07 +08:00
github-actions[bot]
26e819e120 perf: Update Dockerfile with new base image tag 2025-04-18 11:29:07 +08:00
Eric
79579654a1 perf: use uv tool
perf: add Homepage
perf: add env
2025-04-18 11:29:07 +08:00
feng626
6bc1c5bd50 Revert "perf:Stored command records in ES support accurate searching."
This reverts commit 3d6d2af268.
2025-04-17 20:16:06 +08:00
ibuler
36f312b943 perf: page queryset mixin 2025-04-17 19:47:51 +08:00
ibuler
11811c453b perf: page queryset mixin 2025-04-17 19:47:51 +08:00
ibuler
12fadeec58 perf: revert terminal api 2025-04-17 19:34:23 +08:00
ibuler
b49fd21e08 perf: 虚拟账号 api 2025-04-17 17:50:42 +08:00
feng
9b982eb592 perf: change secret api perm 2025-04-17 17:15:06 +08:00
wangruidong
31652ef5b1 fix: include openid in source validation logic 2025-04-17 16:24:00 +08:00
feng
8fef18b991 perf: gather account windows playbook failed_when: false 2025-04-17 15:55:49 +08:00
ibuler
c804c053d2 perf: revert api 2025-04-17 15:53:52 +08:00
ibuler
bef2282604 perf: asset list compute account amount 2025-04-17 15:15:36 +08:00
feng
cabc069045 perf: Translate 2025-04-17 15:12:16 +08:00
feng
99c9a021b7 fix: update applet host (platform failed) 2025-04-17 14:55:36 +08:00
ibuler
6cb3cc1f29 perf: 修改 DS 的一些翻译 2025-04-17 14:47:11 +08:00
feng
67422ef4ba fix: automation no account 2025-04-17 14:00:24 +08:00
gerry
3d6d2af268 perf:Stored command records in ES support accurate searching. 2025-04-17 11:43:16 +08:00
wangruidong
ee97e45cc3 fix: Allow superusers delete adhoc and playbook 2025-04-17 10:54:47 +08:00
feng
0131eaa6db perf: es search 2025-04-16 18:15:58 +08:00
feng
eaa390fd6f perf: update asset directory_services allow_empty true 2025-04-16 17:39:55 +08:00
ibuler
e2b8fd0d40 perf: change account filter by asset 2025-04-16 17:37:36 +08:00
feng
2aace05099 perf: as account username 2025-04-16 17:29:23 +08:00
ibuler
1ee70af93d perf: applet account select 2025-04-16 16:43:34 +08:00
feng
fa70fb2921 perf: Translate 2025-04-16 15:37:11 +08:00
ibuler
01a6019022 perf: swagger api 2025-04-16 14:53:51 +08:00
wangruidong
5c61a11d82 fix: add periodic_display to read_only_fields in Job serializer 2025-04-16 14:18:11 +08:00
fit2bot
67f3341310 perf: change db prefetch (#15215) 2025-04-16 13:48:12 +08:00
feng
cb49e26387 perf: refresh asset type tree 2025-04-16 11:44:07 +08:00
feng
314da330c0 perf: Asset account filter 2025-04-16 11:36:58 +08:00
halo
f1c98fda34 perf: client version 2025-04-16 10:39:10 +08:00
ibuler
1fdd1036d3 perf: directory service db 2025-04-15 20:24:10 +08:00
feng
e286997090 perf: koko translate 2025-04-15 17:26:06 +08:00
wangruidong
ce3daf5496 fix: update translation strings and improve error handling in inventory and job modules 2025-04-15 16:49:35 +08:00
feng
631570b819 perf: Asset filter 2025-04-15 16:45:50 +08:00
feng
9b1bff0847 perf: client version 2025-04-15 12:28:59 +08:00
feng
ee8a2afe16 fix: ES no data found 2025-04-15 12:07:56 +08:00
CaptainB
1a01c0537c chore: Add Dependabot configuration for pip dependencies 2025-04-15 11:47:59 +08:00
jiangweidong
64393fe695 fix: Error in using set method 2025-04-15 11:47:01 +08:00
jiangweidong
11ef4fab4e perf: Es subsequent optimization 2025-04-15 11:47:01 +08:00
jiangweidong
9f8256f885 fix: Solve the problem that log details cannot be viewed in non-default organizations 2025-04-15 11:47:01 +08:00
fit2bot
5390fbacec perf: some swagger api (#15203)
* perf: some swagger api

* perf: update deps

* perf: Update Dockerfile with new base image tag

---------

Co-authored-by: ibuler <ibuler@qq.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-15 11:43:36 +08:00
wangruidong
8b9fe3c72b perf: add default logo handling in IntegrationApplicationSerializer 2025-04-15 11:08:15 +08:00
wangruidong
20070e0647 fix: improve crontab validation logic 2025-04-15 11:07:23 +08:00
ibuler
47b72cb35e perf: add leak password db config 2025-04-14 17:27:27 +08:00
feng
2ca0e9a5a2 perf: automation .account -> .all_accounts 2025-04-14 14:18:56 +08:00
feng
3b2ac101c8 perf: windows ad asset info 2025-04-14 10:14:38 +08:00
feng
6795f036dd perf: ad asset automation gather_facts_enabled true 2025-04-11 17:53:43 +08:00
feng
aaa1f48258 perf: koko translate 2025-04-11 17:45:58 +08:00
feng
53c5bab203 perf: user login acl remove warning notify_and_warn action 2025-04-10 15:56:31 +08:00
feng
1254d28463 perf: windows ad gather account 2025-04-10 15:33:42 +08:00
wangruidong
d6b1a577fc fix: resolve ForeignKeyViolation in AccountRisk 2025-04-09 19:30:05 +08:00
wangruidong
5ab85d3561 perf: File directory adjustment 2025-04-09 19:29:52 +08:00
wangruidong
467f4c5d4f perf: Translate 2025-04-09 19:29:52 +08:00
wangruidong
f2404319af fix: account_prefer 2025-04-09 19:29:52 +08:00
wangruidong
bbeadf7dbe perf: optimize adhoc asset selection experience 2025-04-09 19:29:52 +08:00
feng
941bd9b3f4 perf: Translate 2025-04-09 19:22:32 +08:00
feng
37a307a9d0 perf: Windows AD 2025-04-09 18:22:00 +08:00
ibuler
528f9045d0 perf: update connection token 2025-04-09 11:11:39 +08:00
ibuler
a317549a01 perf: migrations merge 2025-04-08 19:21:37 +08:00
ibuler
0f5681de7d chore: remove workflow 2025-04-08 19:21:37 +08:00
ibuler
a7c514f8d8 perf: rename some workd 2025-04-08 19:21:37 +08:00
ibuler
75ea0079a2 perf: update ad domain 2025-04-08 19:21:37 +08:00
ibuler
4cc1687bf8 perf: update ad 2025-04-08 19:21:37 +08:00
ibuler
76e57b9a3e perf: update ad 2025-04-08 19:21:37 +08:00
ibuler
ba3bce1e2e perf: perm account valid 2025-04-08 19:21:37 +08:00
ibuler
45f0343cfa perf: update ds 2025-04-08 19:21:37 +08:00
ibuler
acaa4cf2d5 perf: rename ad to ds 2025-04-08 19:21:37 +08:00
ibuler
3f452daee8 perf: ad as asset 2025-04-08 19:21:37 +08:00
feng
5e25361ee8 perf: Operate default log 2025-04-08 18:37:25 +08:00
jiangweidong
7b7604e14d Added cloud sync global released asset tab (v4.9) 2025-04-08 18:31:53 +08:00
Eric
f9037878c3 perf: add remoteapp bitmapcache settings 2025-04-08 17:36:48 +08:00
fit2bot
29ddfcac17 fix: Optimize UserConfirmDialog to send code via email (#15164)
* fix: Optimize UserConfirmDialog to send code via email

* fix: Optimize verification failure without error reporting

---------

Co-authored-by: halo <wuyihuangw@gmail.com>
Co-authored-by: Bryan <jiangjie.bai@fit2cloud.com>
2025-04-08 15:50:15 +08:00
wangruidong
519ec65ad4 perf: LDAP strict sync 2025-04-08 15:43:15 +08:00
jiangweidong
1f60e328b6 perf: Export resources to add operation logs 2025-04-08 15:37:29 +08:00
Bai
e8e0ea920b perf: change jumpserver.org to jumpserver.com 2025-04-08 14:23:28 +08:00
Aaron3S
4fd8efd043 feat: remove oracle dyn port 2025-04-08 13:50:30 +08:00
wangruidong
623c800d31 fix: failure when deleting remote account in SQL Server 2025-04-08 13:48:48 +08:00
wangruidong
d2c6e3c7a6 fix: Job audit: Search job list, filter failures based on command 2025-04-08 13:41:59 +08:00
github-actions[bot]
dc5883576d Auto-translate README 2025-04-08 13:34:21 +08:00
Bai
0a9c9fb227 perf: change readme 2025-04-08 13:26:48 +08:00
Bai
15a1a58eca perf: change support email 2025-04-08 13:20:22 +08:00
halo
782401ef86 fix: Implement function _check_code 2025-04-07 16:20:43 +08:00
maninhill
8abcd201bc chore: Update README.md 2025-04-03 15:11:38 +08:00
Bryan
cdbc10ac72 Update README.md 2025-03-31 17:37:01 +08:00
Bryan
ceeef890e6 Update README.md 2025-03-31 17:37:01 +08:00
Bryan
dc8a172884 Update README.md 2025-03-28 17:53:22 +08:00
Bryan
62115e43bb Update README.md 2025-03-28 17:53:22 +08:00
Bryan
5eced85e69 Update README.md 2025-03-28 17:53:22 +08:00
Bryan
ec99b17b76 Update README.md 2025-03-28 17:53:22 +08:00
Bryan
84569720c3 Update README.md 2025-03-28 17:53:22 +08:00
feng
65984d38f1 perf: Account filter 2025-03-28 16:34:53 +08:00
feng
f6913ac63c perf: Priacy mode 2025-03-27 18:34:11 +08:00
Halo
514b2cdfc5 feat: Email as a method for multi-factor authentication (#15134)
* feat: Email as a method for multi-factor authentication

* perf: Optimize the MFA email sending logic

* perf: Optimize some parameters

* perf: Translate
2025-03-27 17:26:38 +08:00
ibuler
b55000663e perf: 提升服务注册安全性 2025-03-27 16:25:28 +08:00
ibuler
9ed822bb3e perf: 优化获取 labels 2025-03-27 16:23:14 +08:00
feng
ea599d7695 perf: Perm the template push account 2025-03-27 14:13:29 +08:00
feng
01c5d68b35 perf: change secret change_secret_result 2025-03-27 14:08:19 +08:00
feng
2e2c331941 perf: translate 2025-03-25 18:03:10 +08:00
feng
266ea9b858 perf: Change secret 2025-03-25 16:05:47 +08:00
feng
5f2e838342 perf: koko sftp translate 2025-03-25 14:33:50 +08:00
ZhaoJiSen
544ad5532b Merge pull request #15117 from jumpserver/pr@dev@koko_translate
perf: koko translate
2025-03-25 11:02:08 +08:00
feng
d22d715ee7 perf: koko translate 2025-03-25 10:59:45 +08:00
halo
dd2366532c perf: Use a domain account to avoid automatically creating a local account 2025-03-25 10:22:16 +08:00
ibuler
9667a3d340 perf: add crontab check min 60m 2025-03-25 09:56:37 +08:00
feng
c8e6e5d38c perf: Login language 2025-03-24 18:55:40 +08:00
feng
9d1047fae2 perf: Translate 2025-03-24 16:51:49 +08:00
feng
28f97d746d perf: Translate 2025-03-24 15:39:37 +08:00
ibuler
be72344c63 perf: update tk create 2025-03-24 10:54:17 +08:00
ibuler
d3176b68a8 perf: 优化 admin token 判断 2025-03-24 10:06:22 +08:00
ibuler
5411f65546 perf: update get permed account 2025-03-24 09:51:46 +08:00
ibuler
e3ba468004 fix: 修复 token 直连的问题 2025-03-24 09:51:46 +08:00
feng
a03a11efa4 perf: Translate 2025-03-21 15:49:42 +08:00
feng
d344495417 perf: Translate 2025-03-21 14:24:37 +08:00
github-actions[bot]
9412bd0331 Auto-translate README 2025-03-21 13:29:01 +08:00
Bai
8d73ddb1cd perf: update readme languages 2025-03-21 13:17:56 +08:00
Bai
7fe56a5e1a perf: README 2025-03-21 10:35:27 +08:00
wangruidong
db259d4e8b fix: Failed to delete account 2025-03-20 17:01:43 +08:00
feng
afc31ee5ce perf: translate 2025-03-20 15:33:53 +08:00
feng
69cc47e0cb perf: account backup 2025-03-20 13:25:40 +08:00
wangruidong
2455afc2d2 fix: Use ConfirmOrIgnore for confirmed status in account updates 2025-03-20 11:14:16 +08:00
Chenyang Shen
33cb793c19 Merge pull request #15078 from jumpserver/pr@dev@fix_face_vector_diabled
fix: fix face live can not enable
2025-03-19 20:47:39 +08:00
Aaron3S
5522ba0241 fix: fix face live can not enable 2025-03-19 20:45:35 +08:00
wangruidong
0fed338277 fix: Change secret failed, no module named libs 2025-03-19 20:23:02 +08:00
feng
8f78919b3e perf: Change secret filter days 2025-03-19 18:56:23 +08:00
wangruidong
f6fc9b1f5c fix: Update account status to confirmed 2025-03-19 18:30:09 +08:00
jiangweidong
365dbf6e14 fix: CTYun cannot sync 2025-03-19 17:59:43 +08:00
wangruidong
e5a5d5f727 fix: Account filter error 2025-03-19 16:34:42 +08:00
wangruidong
e0d6b843ee fix: Add account_deleted_accounts to RiskSummary 2025-03-19 15:25:47 +08:00
wangruidong
2a31a7d444 fix: Validate input data for account status updates 2025-03-19 14:45:17 +08:00
wangruidong
e68d5564c6 fix: Ansible could not initialize the preferred locale 2025-03-19 11:21:15 +08:00
feng
4fdb049c9d perf: translate 2025-03-19 11:07:42 +08:00
wangruidong
e5f66c4be2 fix: password_expired account, not listed as risk account 2025-03-18 19:19:51 +08:00
wangruidong
325edfe704 fix: long_time_no_login account, not listed as risk account 2025-03-18 18:59:23 +08:00
feng626
3a93aeb155 Merge pull request #15064 from jumpserver/pr@dev@license
perf: License
2025-03-18 18:56:50 +08:00
feng626
28d6f2f9ef Merge branch 'dev' into pr@dev@license 2025-03-18 18:56:41 +08:00
feng
2bfcebd064 perf: License 2025-03-18 18:54:12 +08:00
老广
6f2cb9b3c6 Merge pull request #15063 from jumpserver/pr@dev@add_delete_account_action
perf: update some 18n
2025-03-18 17:52:05 +08:00
fit2bot
cdebfd8121 perf: add delete account action (#15059) 2025-03-18 16:57:27 +08:00
ibuler
57d05e6ff0 perf: update some 18n 2025-03-18 16:56:46 +08:00
ibuler
49378d1f13 perf: update ansible env set 2025-03-18 16:32:59 +08:00
wangruidong
e802e145af fix: Create ssh_key failed 2025-03-18 16:23:01 +08:00
ibuler
2faad88b78 perf: remove ga also 2025-03-18 16:07:49 +08:00
ibuler
33a47139b3 perf: ansible env to jms 2025-03-18 16:02:33 +08:00
wangruidong
50faa3242a perf: Translate 2025-03-18 14:51:04 +08:00
ibuler
d89164db63 perf: add delete account action 2025-03-18 14:38:54 +08:00
ibuler
f72fc19ba6 perf: change Command 2025-03-18 13:48:14 +08:00
feng
7bd03c7863 perf: change secret filter 2025-03-18 13:29:36 +08:00
wangruidong
ed95a89a77 fix: Create ssh_key set is_active error 2025-03-18 11:29:40 +08:00
Chenyang Shen
428a4470c9 Merge pull request #15054 from jumpserver/pr@dev@feat_add_translate
feat: add translate
2025-03-18 10:44:00 +08:00
Aaron3S
b206e751da feat: add translate 2025-03-18 10:40:06 +08:00
ibuler
6913518046 perf: update automation report template 2025-03-17 19:21:52 +08:00
wangruidong
f5a2f5e538 fix: Check authorized_keys change failed 2025-03-17 19:18:34 +08:00
feng
f4fa153ffa perf: push account secret 2025-03-17 18:45:25 +08:00
feng626
c70d7f709f Merge pull request #15047 from jumpserver/pr@dev@excution
perf: Automation execution
2025-03-17 17:28:37 +08:00
feng626
ec95144907 Merge branch 'dev' into pr@dev@excution 2025-03-17 17:28:03 +08:00
feng
424ef4d9a5 perf: Automation execution 2025-03-17 17:26:09 +08:00
wangruidong
40bbc4a02c perf: Translate ExecuteAfterSaving 2025-03-17 16:32:39 +08:00
wangruidong
a784ca29c3 fix: Update counter naming for group and sudo changes in RiskSummary 2025-03-17 15:58:37 +08:00
fit2bot
b7820c6a5b perf: update automation report 2025-03-17 10:31:49 +08:00
feng
7bac1b42e4 perf: risk add account 2025-03-14 17:41:13 +08:00
feng
0a6757946a perf: translate 2025-03-14 17:02:39 +08:00
wangruidong
e4d169cabe perf: migrations type length 2025-03-14 15:09:06 +08:00
wangruidong
c80ca5236d perf: migrations bulk_size 2025-03-14 14:57:16 +08:00
wangruidong
f513eb62a6 perf: migrations automationexecution type 2025-03-14 14:46:20 +08:00
wangruidong
94e8c62953 fix: Allow empty files in FileSerializer 2025-03-13 18:54:20 +08:00
feng
bd783e6a8d perf: asset perm expire 2025-03-13 18:25:28 +08:00
wangruidong
35bc3a0e2b fix: Account risk search failed 2025-03-13 18:21:51 +08:00
ibuler
996bee3afd perf: update gathered account sync 2025-03-13 18:03:16 +08:00
feng
7c4931b6af perf: execution type 2025-03-13 17:54:02 +08:00
wangruidong
9992fb35be perf: Translate IpGroup 2025-03-13 17:10:09 +08:00
wangruidong
cc63c956cb fix: Delete gather account failed 2025-03-13 16:25:27 +08:00
feng
15919085bc perf: change secret push record list 2025-03-13 14:58:11 +08:00
wangruidong
9e4b82bf45 perf: Translate risk handle 2025-03-13 10:00:31 +08:00
wangruidong
28f85a0186 perf: BaseManager email subject translate 2025-03-12 19:05:23 +08:00
feng
30e64ecfc1 perf: change secret 2025-03-12 18:57:03 +08:00
feng
042c3d1ba8 perf: gather account node_id filter 2025-03-12 18:05:42 +08:00
feng
94a8122eac perf: report 2025-03-12 17:57:15 +08:00
feng
88450d796f perf: translate 2025-03-12 16:45:19 +08:00
wangruidong
3d28e255c0 fix: Account risk page change secret failed 2025-03-12 16:01:42 +08:00
wangruidong
153be1508f perf: Remove account_deleted, password_error, no_admin_account others risk 2025-03-12 15:40:54 +08:00
ibuler
6e83420e67 perf: update i18n 2025-03-12 15:19:34 +08:00
wangruidong
e03d983020 fix: Gather account new-found risk failed 2025-03-12 14:54:15 +08:00
feng
0afc1e6f5b perf: translate 2025-03-12 11:02:40 +08:00
wangruidong
a9ea801862 fix: Update username and address_last_login field length in account models 2025-03-12 10:36:35 +08:00
Bai
23f9b79142 feat: support Spanish and Russian 2025-03-12 10:24:34 +08:00
ibuler
4db15d9af7 perf: update action choice field default 2025-03-12 10:23:01 +08:00
ZhaoJiSen
bc9782bd55 Merge pull request #15001 from jumpserver/pr@dev@account_risk_filter
perf: account filter node
2025-03-11 19:20:14 +08:00
feng
635e9f5079 perf: account filter node 2025-03-11 19:19:14 +08:00
Eric_Lee
71259886fe Merge pull request #14834 from jumpserver/pr@dev@perf_replay_file
perf: use a custom local path to save session replay file
2025-03-11 19:12:42 +08:00
feng626
a26cc7ce1f Merge pull request #15000 from jumpserver/pr@dev@connectiontoken
perf: connection token
2025-03-11 18:34:35 +08:00
feng
a2aa5e9bf9 perf: connection token 2025-03-11 18:32:38 +08:00
ZhaoJiSen
82de373f8e Merge pull request #14998 from jumpserver/pr@dev@chage_secret
perf: change secret drop bulk record
2025-03-11 17:39:45 +08:00
feng
59e7778e4a perf: change secret drop bulk record 2025-03-11 17:37:04 +08:00
feng626
60eaec68c6 Merge pull request #14996 from jumpserver/pr@dev@fix_long_time_no_login_risk
fix: long_time_no_login account, not listed as risk account
2025-03-11 16:40:31 +08:00
wangruidong
43973122bf fix: Remove the empty contents of the log 2025-03-11 16:39:08 +08:00
wangruidong
8668955d4a fix: long_time_no_login account, not listed as risk account 2025-03-11 16:06:47 +08:00
ZhaoJiSen
5571fb6f42 Merge pull request #14993 from jumpserver/pr@dev@report
perf: report css
2025-03-11 15:10:55 +08:00
feng
62b9b6883e perf: report css 2025-03-11 15:04:40 +08:00
老广
7af1c6a2bb Merge pull request #14991 from jumpserver/pam
fix: OIDC PKCE S256
2025-03-11 11:02:09 +08:00
Bai
3e96c2fe79 fix: OIDC PKCE S256 2025-03-11 09:14:23 +08:00
feng626
3a1d3c1f5c Merge pull request #14990 from jumpserver/pam
Pam
2025-03-10 19:14:00 +08:00
zhaojisen
9466c7105c Perf: Perf All Report 2025-03-10 17:39:36 +08:00
feng
a3467bdabc perf: change secret 2025-03-10 17:34:20 +08:00
feng
4c547215aa perf: account integrationapplication filter 2025-03-10 16:37:53 +08:00
ibuler
2580e7a712 perf: update accounts migrations 2025-03-10 16:20:42 +08:00
ibuler
038d93e318 Merge branch 'pam' of github.com:jumpserver/jumpserver into pam 2025-03-10 15:25:46 +08:00
ibuler
f46cc0f040 perf: update user serializer 2025-03-10 15:24:41 +08:00
feng
423d6db2ac perf: change record dashboard 2025-03-10 14:48:18 +08:00
wangruidong
243083e876 perf: Translate application detail 2025-03-10 14:26:21 +08:00
wangruidong
c84bc52c70 perf: Translate check account 2025-03-10 10:43:12 +08:00
wangruidong
090ad0ba83 fix: Add drf filter set to SecretRecordMixin 2025-03-07 18:17:13 +08:00
feng
033750f108 perf: execution automation ObjectRelatedField 2025-03-07 17:05:12 +08:00
feng
405344de74 perf: Automation 2025-03-07 16:54:20 +08:00
fit2bot
763e67bd1d perf: Integrate authentication to update user attribute logic (#14979) 2025-03-07 16:25:28 +08:00
wangruidong
e8c581b08a fix: Integrations Application: Failed to filter accounts by selecting multiple attributes when creating or editing 2025-03-07 14:45:49 +08:00
feng
47029be3da perf: Change secret 2025-03-06 19:15:16 +08:00
wangruidong
bc70c480f7 fix: Integration Application: No Java example in the help docs 2025-03-06 17:45:48 +08:00
jiangweidong
d2d9d3d841 fix: Slove the problem that the third-party auth cannot update user name 2025-03-06 17:02:56 +08:00
ibuler
56d0a6d0b0 Merge branch 'pam' of github.com:jumpserver/jumpserver into pam 2025-03-06 10:23:26 +08:00
ibuler
060e8ace70 perf: update i18n 2025-03-06 10:22:32 +08:00
feng
821622638a perf: translate 2025-03-05 17:30:26 +08:00
老广
51c67f0e9d Merge pull request #14968 from jumpserver/pr@dev@pam
perf: update i18n
2025-03-04 19:19:38 +08:00
ibuler
70c8db839e perf: update i18n 2025-03-04 19:13:20 +08:00
ibuler
c9208d2cf7 Merge branch 'pam' of github.com:jumpserver/jumpserver into pam 2025-03-04 15:46:52 +08:00
ibuler
58177fdfb0 perf: update some i18n 2025-03-04 15:46:45 +08:00
wangruidong
76dd2f8153 fix: Creating an integration application with the same name results in a server error. 2025-03-03 18:28:09 +08:00
wangruidong
edd998da20 fix: Premailer failed to parse the report HTML. 2025-03-03 16:46:43 +08:00
feng
8b2276ce08 perf: koko sftp superuser perm 2025-03-03 16:17:16 +08:00
wangruidong
f42f46ffe4 fix: User list: some quick filters are ineffective. 2025-03-03 14:56:32 +08:00
ibuler
b2f8f9d248 perf: update pam i18n 2025-03-03 14:46:54 +08:00
ibuler
8105681304 perf: update i18n 2025-03-03 14:44:52 +08:00
feng
b4d3f6099a perf: translate 2025-03-03 10:52:21 +08:00
feng
9b48da11dc perf: translate 2025-02-28 18:55:35 +08:00
feng
904154a62b perf: translate 2025-02-28 18:50:18 +08:00
feng
7181dad5ad perf: Translate 2025-02-28 18:40:47 +08:00
jiangweidong
2a250d13d8 fix: Solve the problem that some messages cannot be sent from unauthenticated email 2025-02-28 17:44:36 +08:00
feng
caa1e2e1ac perf: Translate 2025-02-28 17:05:36 +08:00
wangruidong
5b044299b9 fix: Back account translate 2025-02-28 14:55:42 +08:00
wangruidong
d48a12e266 perf: Translate 2025-02-28 11:04:29 +08:00
feng
35ec9dc2f4 perf: Translate 2025-02-27 18:50:06 +08:00
老广
33f3281a1f Merge pull request #14943 from jumpserver/pr@dev@update_pam
merge: with dev
2025-02-27 17:14:59 +08:00
ibuler
93810fb0db merge: with dev 2025-02-27 17:05:35 +08:00
ibuler
8fc2b86189 Merge branch 'pam' of github.com:jumpserver/jumpserver into pam 2025-02-27 17:00:00 +08:00
ibuler
6217733aba perf: update some i18n 2025-02-27 16:59:52 +08:00
feng
4b4d7b6787 perf: During MFA authentication, if the current code has been used and successfully authenticated, it cannot be used again for authentication 2025-02-27 15:35:56 +08:00
ibuler
acbc3e1e44 Merge branch 'pam' of github.com:jumpserver/jumpserver into pam 2025-02-27 13:27:43 +08:00
ibuler
110b3a334d perf: update i18n 2025-02-27 13:27:35 +08:00
wangruidong
a498b22e80 perf: Update account change secret status and date on successful secret change 2025-02-26 16:20:39 +08:00
wangruidong
385bf47b11 perf: Add last login date update for account on session save 2025-02-26 16:20:39 +08:00
ibuler
16400082e7 perf: update i18n 2025-02-26 15:34:04 +08:00
wangruidong
cbc009cb3f fix: Return Response object for successful account risk handling 2025-02-26 10:31:33 +08:00
feng
919cdeae20 perf: report to iframe 2025-02-25 19:14:13 +08:00
feng
456b96a369 perf: Translate 2025-02-25 14:49:22 +08:00
wangruidong
ff9ad2680f perf: Update confirmation backend definitions to use ConfirmType 2025-02-25 10:53:19 +08:00
Bai
96a0cbc35d fix: import error 2025-02-25 10:53:19 +08:00
feng
08963ebb40 perf: Translate 2025-02-24 19:26:34 +08:00
wangruidong
908e6cb81a fix: Migrate account backup automation and execution data 2025-02-24 18:50:06 +08:00
feng
c206f5d09c perf: user filter error 2025-02-24 15:33:23 +08:00
github-actions[bot]
f0c7a7508b perf: Update Dockerfile with new base image tag 2025-02-24 15:09:38 +08:00
Bai
d386189c77 fix: pyproject.toml 2025-02-24 15:09:38 +08:00
ibuler
f0fa381b9f perf: update action run on 2025-02-24 14:51:53 +08:00
Bai
8b2af5ee0a fix: make messages errors 2025-02-24 14:28:31 +08:00
ibuler
0541c0a9d4 perf: squash migrations 2025-02-24 14:08:47 +08:00
feng
e4c7eb8035 perf: Account filter 2025-02-24 11:50:48 +08:00
Bai
e33aeaa338 fix: migrations files modify 2025-02-24 11:26:20 +08:00
feng
1282fffff7 perf: Change secret 2025-02-21 17:46:56 +08:00
fit2bot
3f4141ca0b merge: with pam (#14911)
* perf: change i18n

* perf: pam

* perf: change translate

* perf: add check account

* perf: add date field

* perf: add account filter

* perf: remove some js

* perf: add account status action

* perf: update pam

* perf: 修改 discover account

* perf: update filter

* perf: update gathered account

* perf: 修改账号同步

* perf: squash migrations

* perf: update pam

* perf: change i18n

* perf: update account risk

* perf: 更新风险发现

* perf: remove css

* perf: Admin connection token

* perf: Add a switch to check connectivity after changing the password, and add a custom ssh command for push tasks

* perf: Modify account migration files

* perf: update pam

* perf: remove to check account dir

* perf: Admin connection token

* perf: update check account

* perf: 优化发送结果

* perf: update pam

* perf: update bulk update create

* perf: prepaire using thread timer for bulk_create_decorator

* perf: update bulk create decorator

* perf: 优化 playbook manager

* perf: 优化收集账号的报表

* perf: Update poetry

* perf: Update Dockerfile with new base image tag

* fix: Account migrate 0012 file

* perf: 修改备份

* perf: update pam

* fix: Expand resource_type filter to include raw type

* feat: PAM Service (#14552)

* feat: PAM Service

* perf: import package name

---------

Co-authored-by: jiangweidong <1053570670@qq.com>

* perf: Change secret dashboard (#14551)

Co-authored-by: feng <1304903146@qq.com>

* perf: update migrations

* perf: 修改支持 pam

* perf: Change secret record table dashboard

* perf: update status

* fix: Automation send report

* perf: Change secret report

* feat: windows accounts gather

* perf: update change status

* perf: Account backup

* perf: Account backup report

* perf: Account migrate

* perf: update service to application

* perf: update migrations

* perf: update logo

* feat: oracle accounts gather (#14571)

* feat: oracle accounts gather

* feat: sqlserver accounts gather

* feat: postgresql accounts gather

* feat: mysql accounts gather

---------

Co-authored-by: wangruidong <940853815@qq.com>

* feat: mongodb accounts gather

* perf: Change secret

* perf: Migrate

* perf: Merge conflicting migration files

* perf: Change secret

* perf: Automation filter org

* perf: Account push

* perf: Random secret string

* perf: Enhance SQL query and update risk handling in accounts

* perf: Ticket filter assignee_id

* perf: 修改 account remote

* perf: 修改一些 adhoc 任务

* perf: Change secret

* perf: Remove push account extra api

* perf: update status

* perf: The entire organization can view activity log

* fix: risk field check

* perf: add account details api

* perf: add demo mode

* perf: Delete gather_account

* perf: Perfect solution to account version problem

* perf: Update status action to handle multiple accounts

* perf: Add GatherAccountDetailField and update serializers

* perf: Display account history in combination with password change records

* perf: Lina translate

* fix: Update mysql_filter to handle nested user info

* perf: Admin connection token validate_permission account

* perf: copy move account

* perf: account filter risk

* perf: account risk filter

* perf: Copy move account failed message

* fix: gather account sync account to asset

* perf: Pam dashboard

* perf: Account dashboard total accounts

* perf: Pam dashboard

* perf: Change secret filter account secret_reset

* perf: 修改 risk filter

* perf: pam translate

* feat: Check for leaked duplicate passwords. (#14711)

* feat: Check for leaked duplicate passwords.

* perf: Use SQLite instead of txt as leak password database

---------

Co-authored-by: jiangweidong <1053570670@qq.com>
Co-authored-by: 老广 <ibuler@qq.com>

* perf: merge with remote

* perf: Add risk change_password_add handle

* perf: Pam dashboard

* perf: check account manager import

* perf: 重构扫描

* perf: 修改 db

* perf: Gather account manager

* perf: update change db lib

* perf: dashboard

* perf: Account gather

* perf: 修改 asset get queryset

* perf: automation report

* perf: Pam account

* perf: Pam dashboard api

* perf: risk add account

* perf: 修改 risk check

* perf: Risk account

* perf: update risk add reopen action

* perf: add pylintrc

* Revert "perf: automation report"

This reverts commit 22aee54207.

* perf: check account engine

* perf: Perf: Optimism Gather Report Style

* Perf: Remove unuser actions

* Perf: Perf push account

* perf: perf gather account

* perf: Automation report

* perf: Push account recorder

* perf: Push account record

* perf: Pam dashboard

* perf: perf

* perf: update intergration

* perf: integrations application detail add account tab page

* feat: Custom change password supports configuration of interactive items

* perf: Go and Python demo code

* perf: Custom secret change

* perf: add user filter

* perf: translate

* perf: Add demo code docs

* perf: update some i18n

* perf: update some i18n

* perf: Add Java, Node, Go, and cURL demo code

* perf: Translate

* perf: Change secret translate

* perf: Translate

* perf: update some i18n

* perf: translate

* perf: Ansible playbook

* perf: update some choice

* perf: update some choice

* perf: update account serializer remote unused code

* perf: conflict

* perf: update import

---------

Co-authored-by: ibuler <ibuler@qq.com>
Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: wangruidong <940853815@qq.com>
Co-authored-by: jiangweidong <1053570670@qq.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
Co-authored-by: zhaojisen <1301338853@qq.com>
2025-02-21 16:39:57 +08:00
wangruidong
d516349a68 perf: Translate 2025-02-20 18:24:27 +08:00
Chenyang Shen
8730fa8dee Merge pull request #14900 from jumpserver/pr@dev@translate
perf: translate
2025-02-19 19:26:09 +08:00
Aaron3S
9a5a775652 feat: add luna i18n 2025-02-19 19:17:21 +08:00
feng
8304ae9070 perf: translate 2025-02-19 16:27:10 +08:00
wangruidong
9533861e24 fix: VariableSerializer allow null in default_value 2025-02-18 15:26:11 +08:00
Aaron3S
abbfbcde83 feat: add i18n 2025-02-18 15:10:13 +08:00
wangruidong
046a9d41bf fix: Removing labels from asset details will cause an error. 2025-02-17 18:21:28 +08:00
fit2bot
363bb20da7 feat: Chen i18n (#14851)
Co-authored-by: jiangweidong <1053570670@qq.com>
2025-02-17 11:25:54 +08:00
wangruidong
2b7c8b9c07 fix: Upgrading v3 to v4 generates two ticket flow 2025-02-14 16:10:20 +08:00
Aaron3S
db040bbd06 feat: add translate 2025-02-14 11:30:56 +08:00
feng
a761ec9aa1 perf: Translate 2025-02-13 16:55:09 +08:00
feng
c0ffe45ce9 perf: deepseek 2025-02-13 16:40:29 +08:00
wangruidong
404d58a9c9 fix: When the organization does not exist, close ticket with an error. 2025-02-13 16:31:47 +08:00
feng
f64eab7a15 perf: Translate 2025-02-13 11:48:59 +08:00
feng
46f94fd138 perf: Chat ai help text 2025-02-13 11:30:07 +08:00
wangruidong
2f1c0090b7 fix: markdown render issue 2025-02-12 15:48:05 +08:00
feng
b0d6a09276 perf: translate 2025-02-10 19:15:39 +08:00
feng
d8db76cc7b perf: DeepSeek 2025-02-08 15:40:24 +08:00
wangruidong
b35a55ed54 fix: Cannot set original org when exception occurs 2025-02-08 11:13:14 +08:00
Bai
dc5ecfcc4b fix: setting field encrypt issue 2025-02-06 17:14:10 +08:00
Eric
594d5b8128 perf: use a custom local path to save session replay file 2025-01-23 15:55:43 +08:00
wangruidong
543dde57ab perf: modify average_time_cost calculation in job model 2025-01-14 18:28:31 +08:00
w940853815
c088437fe5 Revert "perf: Optimize average_time_cost calculation in job model"
This reverts commit eafb5ecfb3.
2025-01-14 18:18:44 +08:00
feng
e721ec147c perf: luna translate 2025-01-14 17:30:00 +08:00
wangruidong
5d18d6dee0 fix: Add with_expired param to permission utils 2025-01-14 16:41:39 +08:00
feng
ecfd338428 perf: Lina translate 2025-01-14 15:16:17 +08:00
Eric
4b28b079dc perf: fix rdp file resolution value 2025-01-14 13:57:11 +08:00
wangruidong
c1c3236a30 fix: Add redirect_url check in base view 2025-01-14 11:54:17 +08:00
feng
4b19750581 perf: Client version 2025-01-14 10:32:07 +08:00
wangruidong
eafb5ecfb3 perf: Optimize average_time_cost calculation in job model 2025-01-13 17:12:11 +08:00
Bai
583486e26e fix: radius user auth skip backend 2025-01-13 15:49:23 +08:00
Bai
8198620a2e feat: add gitignore 2025-01-09 10:50:57 +08:00
wangruidong
c0b301d52b fix: ldap ha periodic task did not execute as expected 2025-01-08 18:34:53 +08:00
feng
7791d6222a perf: translate 2025-01-08 14:33:04 +08:00
Bai
b740d9d42f fix: circle imported for perms-api 2025-01-08 10:35:13 +08:00
wangruidong
48d0187604 fix: circular import 2025-01-07 14:01:38 +08:00
wangruidong
6217018427 perf: Translate var_name help_text 2025-01-06 11:36:11 +08:00
jiangweidong
923f40e523 feat: VMware automatically syncs folders to node-translation 2025-01-03 18:50:12 +08:00
Bai
1f1fe2084b fix: koko press r dont refresh user perm-nodes 2025-01-03 17:13:32 +08:00
刘瑞斌
b8b1a6ac9c chore: update readme 2024-12-30 16:04:32 +08:00
wangruidong
35f88722af fix: Add type check for secure command execution 2024-12-24 15:58:56 +08:00
Bai
7e6d2749ae fix: core download page error 2024-12-20 16:35:24 +08:00
Bai
be57b101ff fix: set default ldap user dn cache time (0) 2024-12-20 16:35:03 +08:00
Bai
41c8cb6307 fix: api prometheus count 2024-12-20 11:14:55 +08:00
Bai
3a7ae01ede fix: add settings for license version and facelive 2024-12-19 17:37:39 +08:00
老广
d17ca4f6a7 Revert "perf: update const import"
This reverts commit 2956f2e4b7.
2024-12-19 16:03:29 +08:00
Aaron3S
5a14bb13d0 feat: remove mfa check when unbind face code 2024-12-19 15:50:38 +08:00
ibuler
2956f2e4b7 perf: update const import 2024-12-19 15:49:13 +08:00
feng
e983ac3cbc perf: Translate 2024-12-19 15:18:39 +08:00
ibuler
fab156dc5f perf: update login success redirect 2024-12-19 14:34:49 +08:00
wangruidong
f6f897317e perf: default_value field allow blank 2024-12-19 12:01:08 +08:00
Aaron3S
a0441cd6ea feat: add translate 2024-12-19 11:13:13 +08:00
Chenyang Shen
e9abd1e72d Merge pull request #14688 from jumpserver/pr@dev@fix_face_openid
fix: fix openid user can't login with face verify
2024-12-19 11:08:45 +08:00
Aaron3S
9fcb4ecba0 fix: fix openid user can't login with face verify 2024-12-19 10:56:44 +08:00
feng
4b637ad86e perf: Client version 3.0.0 2024-12-18 19:33:45 +08:00
jiangweidong
829f867962 perf: The command amount does not record operation logs. 2024-12-18 19:33:02 +08:00
feng
7f965b55f4 perf: Translate 2024-12-18 18:21:43 +08:00
Chenyang Shen
0e0be618e5 Merge pull request #14684 from jumpserver/pr@dev@feat_refresh_cache_facelive
feat: refresh facelive cache
2024-12-18 18:10:39 +08:00
Aaron3S
9577af3221 feat: refresh facelive cache 2024-12-18 18:08:13 +08:00
Aaron3S
a6b7cc9d1b fix: fix 401 error on face verify when use openid login 2024-12-18 18:07:42 +08:00
feng
7a9a71197a perf: Client login 2024-12-18 18:01:38 +08:00
jiangweidong
3cd68ba0a9 perf: push account without increasing version. 2024-12-18 16:51:39 +08:00
jiangweidong
02bdd0f07d perf: push account without increasing version. 2024-12-18 16:51:39 +08:00
jiangweidong
98cf6f82b7 perf: create account add activity log 2024-12-18 15:54:57 +08:00
wangruidong
27fd5d51b9 perf: Translate 2024-12-18 15:53:47 +08:00
wangruidong
095ca91e30 feat: add 'labels' to DomainSerializer fields_m2m 2024-12-18 10:57:30 +08:00
wangruidong
d05514962a fix: calc platform asset count 2024-12-17 19:08:55 +08:00
Bai
c4066a03fa fix: login show system org 2024-12-17 19:08:31 +08:00
Aaron3S
a7d4c4ca2a feat: change face online killer name 2024-12-17 18:53:09 +08:00
Chenyang Shen
5b0f8f63a3 Merge pull request #14670 from jumpserver/pr@dev@feat_add_some_translate
feat: add some translate
2024-12-17 18:24:01 +08:00
Aaron3S
c4bcae68bf feat: add some translate 2024-12-17 18:03:13 +08:00
Aaron3S
29ca50f97e feat: add face online acl check for exchange token 2024-12-17 17:18:37 +08:00
feng
49aaf8d53e perf: Remove the login status after the client logs in 2024-12-17 15:32:39 +08:00
feng
931e15173b perf: perm asset api date_updated order 2024-12-17 14:43:19 +08:00
feng
4018a59b2e perf: Account backup filter org 2024-12-17 11:23:32 +08:00
Chenyang Shen
88905bd28d Merge pull request #14664 from jumpserver/pr@dev@feat_add_face_verify_on_exchange_token
feat: add face verify on exchange connect token
2024-12-16 19:00:56 +08:00
Aaron3S
abad98a190 feat: add face verify on exchange connect token 2024-12-16 18:54:32 +08:00
Chenyang Shen
7419139b29 Merge pull request #14663 from jumpserver/pr@dev@feat_exclude_some_action_for_acl
feat: exclude face action for login acl and command acl
2024-12-16 18:22:09 +08:00
Aaron3S
a1fd3b1ecb feat: exclude face action for login acl and command acl 2024-12-16 18:17:00 +08:00
wangruidong
8a8a7f9947 fix: filter custom assets in secret type check 2024-12-16 17:37:05 +08:00
Chenyang Shen
f9e6fc98fb Merge pull request #14654 from jumpserver/pr@dev@feat_update_migrations
feat: update migrations
2024-12-13 12:42:17 +08:00
Aaron3S
0dd015bcba feat: update migrations 2024-12-13 12:40:06 +08:00
Aaron3S
d1ea31c9a4 feat: face online 2024-12-12 18:31:21 +08:00
feng
e2bf56e624 perf: translate 2024-12-12 15:49:37 +08:00
feng
26040a5560 perf: pt_br translate 2024-12-12 14:40:59 +08:00
Bai
54726f0a2d perf: Passkey Model field token max_length 1024 2024-12-12 14:29:23 +08:00
Eric
7fd88b95f9 perf: update lion i18n 2024-12-12 11:21:19 +08:00
feng
4f271d6405 perf: RBAC remove assets gpt custom 2024-12-11 19:05:33 +08:00
feng
fe17a8c3a0 perf: The entire organization can view activity log 2024-12-11 18:45:41 +08:00
fit2bot
ee5e97e860 perf: add rdp connection speed option (#14641)
* perf: add rdp connection speed option

* perf: remove print code

---------

Co-authored-by: Eric <xplzv@126.com>
2024-12-11 18:42:05 +08:00
fit2bot
dddfc66efd perf: add encrypted configuration API (#14632)
* perf: 添加加密配置API

* perf: modify url

---------

Co-authored-by: Eric <xplzv@126.com>
2024-12-11 11:34:09 +08:00
Bai
d005bd804f fix: user orgs add field: is_system 2024-12-10 19:19:06 +08:00
Bai
08de04fdbc fix: fixed an issue when third-part user auth 2024-12-10 16:41:38 +08:00
Bai
9ed7c41514 fix: fixed an issue when third-part user auth 2024-12-10 16:41:38 +08:00
Eric
1a81b76a46 perf: add new Qwerty for keyboard layout 2024-12-10 15:26:18 +08:00
github-actions[bot]
cf99a7a031 perf: Update Dockerfile with new base image tag 2024-12-10 15:25:37 +08:00
Bai
64551b13a1 feat: deps add ipython==8.30.0 2024-12-10 15:25:37 +08:00
Chenyang Shen
c715300416 Merge pull request #14623 from jumpserver/pr@dev@separate_face_module
feat: Separate the face recognition module.
2024-12-09 17:00:34 +08:00
feng
d9031ae02b perf: Ticket filter assignee_id 2024-12-09 16:58:17 +08:00
Aaron3S
0d2ba5c518 feat: Separate the face recognition module. 2024-12-09 16:57:05 +08:00
Bai
817957dbac fix: fixed an issue where auth backend could pass inspect 2024-12-09 15:38:20 +08:00
feng
3796af78a6 perf: Random secret string 2024-12-09 15:25:31 +08:00
github-actions[bot]
1191e4ab2d perf: Update Dockerfile with new base image tag 2024-12-09 14:21:01 +08:00
吴小白
1c6fcc5826 feat: migrating boto to boto3 2024-12-09 14:21:01 +08:00
Chenyang Shen
4728f95634 Merge pull request #14610 from jumpserver/pr@dev@feat_face_login_acl
feat: login asset face verify acl
2024-12-09 11:34:09 +08:00
Aaron3S
013502186b feat: login asset face verify acl 2024-12-09 11:19:04 +08:00
feng
a6d040cd34 perf: Automation filter org 2024-12-06 18:00:56 +08:00
Bai
398758baa6 fix: when oidc enabled and use_state user login raise 400 2024-12-06 16:26:28 +08:00
吴小白
e29bddd89e feat: bump python from 3.11.10 to 3.11.11 2024-12-06 10:29:41 +08:00
Bai
e35c915ee3 perf: add workflows auto release docs 2024-12-06 10:20:24 +08:00
Bryan
de2dd583d0 Update README.zh-hant.md 2024-12-05 14:49:42 +08:00
Bryan
43f1d7eeae Update README.pt-br.md 2024-12-05 14:49:42 +08:00
Bryan
9bb63e0933 Update README.zh-hans.md 2024-12-05 14:49:42 +08:00
Bryan
c9e03fd5d8 Update README.ja.md 2024-12-05 14:49:42 +08:00
github-actions[bot]
7a147242c9 Auto-translate README 2024-12-05 14:49:42 +08:00
github-actions[bot]
392c261a96 Auto-translate README 2024-12-05 14:49:42 +08:00
Bai
2bbccae0f5 perf: readme 2024-12-05 14:39:23 +08:00
Bai
606fa9bfbc feat: change action 2024-12-05 14:24:38 +08:00
fit2bot
96e7b165dd Auto-translate README (#14584)
* Auto-translate README

* Auto-translate README

* Auto-translate README

* Auto-translate README

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-05 14:17:27 +08:00
Bai
148413d280 feat: add auto translate readme 2024-12-05 13:34:04 +08:00
Bai
a46a81d477 feat: add auto translate readme 2024-12-05 13:34:04 +08:00
feng
ff0f9eb6eb perf: Change secret update version 2024-12-05 10:50:07 +08:00
jiangweidong
d8dfaf0868 fix: Solve the problem of version increase caused by push account 2024-12-04 18:50:30 +08:00
Bai
3267c8074b feat: add actions for translate readme 2024-12-04 17:45:21 +08:00
Bai
7b14d680b2 feat: add actions for translate readme 2024-12-04 17:24:12 +08:00
Bai
0980808bb7 fix: compile languages error 2024-12-03 18:14:42 +08:00
Bai
0519f15bbf fix: compile languages error 2024-12-03 18:07:55 +08:00
Eric
f6742eb4c6 perf: add dbeaver-patch version 2024-12-03 17:36:59 +08:00
fit2bot
f8d11013fc feat: support pt-br language (#14567)
Co-authored-by: Bai <baijiangjie@gmail.com>
2024-12-03 17:11:08 +08:00
jiangweidong
7875777ed1 fix: Resolving Azure test connection failure issues 2024-12-03 14:34:48 +08:00
jiangweidong
0ca81a8f30 fix: To resolve the 500 error during local updates after an account is deleted from Vault 2024-12-03 14:34:07 +08:00
Bryan
09accbd922 perf: update issue template sorted (#14563)
* perf: update issue template sorted

* perf: update issue template sorted

* Rename 1_bug_report_cn.yml to 2_bug_report_cn.yml

* perf: update issue template sorted

* Rename 1_question.yml to 2_question.yml

* Update and rename 2_feature_request.yml to 3_feature_request.yml

* Rename 2_bug_report_cn.yml to 4_bug_report_cn.yml

* Rename 3_question_cn.yml to 5_question_cn.yml

* Update and rename 2_feature_request_cn.yml to 6_feature_request_cn.yml
2024-12-03 11:21:29 +08:00
fit2bot
945204c45b perf: Script to Add a Non-existent release_assets Field (#14558)
* perf: Script to Add a Non-existent release_assets Field

* perf: docstring

---------

Co-authored-by: jiangweidong <1053570670@qq.com>
2024-12-02 16:51:52 +08:00
Bai
2d62dc0657 fix: azure vault max_workers 2024-12-02 11:08:59 +08:00
fit2bot
fa61688c28 feat: Vault adds Amazon Secrets Manager (#14515)
* feat: Vault adds Amazon Secrets Manager

* perf: optimizing the code

---------

Co-authored-by: jiangweidong <1053570670@qq.com>
2024-11-29 17:51:28 +08:00
halo
801edc7cc9 perf: After optimizing the execution of the azure vault task, the data is out of sync 2024-11-29 16:27:35 +08:00
Bai
d0617a0ea4 fix: login log get ipv6 error 2024-11-29 14:59:01 +08:00
Chenyang Shen
1191ed1793 Merge pull request #14546 from jumpserver/pr@dev@feat_move_face_to_profile
feat: move face setiing to profile
2024-11-28 18:19:32 +08:00
Aaron3S
4036420d0e feat: move face setiing to profile 2024-11-28 18:06:57 +08:00
jiangweidong
35a1655905 perf: Oauth2.0 support two methods for passing authentication credentials. 2024-11-26 14:12:56 +08:00
feng
d4dc31aefa perf: Modify default_context COPYRIGHT 2024-11-25 15:30:26 +08:00
wangruidong
04ec34364f perf: Add viewAssetOnlineSessionInfo conf 2024-11-25 15:28:57 +08:00
Aaron3S
01b8c1f7a8 fix: Fix the uncaught exception when face capture fails 2024-11-25 10:17:28 +08:00
Bai
77598a0f23 perf: update readme 2024-11-22 16:43:44 +08:00
wangruidong
eafb074fda refactor: API endpoint 2024-11-22 15:14:26 +08:00
Bryan
d4d903f5c6 perf: Update README.md (#14516)
* perf: Update README.md

* perf: Update README.md
2024-11-22 10:38:32 +08:00
吴小白
c9c55b5fcb fix: add libldap2-dev 2024-11-21 20:53:11 +08:00
wangruidong
f7313bfcc1 perf: Audits job api disable periodic task 2024-11-21 18:56:16 +08:00
Bai
d2f7376f78 fix: job execution stop failed 2024-11-21 18:38:10 +08:00
wangruidong
6db56eb2aa fix: view ops job celery log no perms 2024-11-21 18:14:45 +08:00
fit2bot
442290703a fix: pyfreerdp verify account, the default value of gateway_args field is wrong (#14490)
* fix: pyfreerdp verify account, the default value of gateway_args field is wrong

* fix: pyfreerdp verify account, the default value of gateway_args field is wrong

---------

Co-authored-by: Ewall555 <a03216@foxmail.com>
2024-11-21 14:26:22 +08:00
feng
e491a724ed perf: Video player download 2024-11-21 14:25:50 +08:00
feng
230924baac fix: Vault proxy 2024-11-21 13:40:33 +08:00
wangruidong
0ae2f04f28 fix: view ops job celery log no perms 2024-11-21 13:24:29 +08:00
feng
68a490d305 perf: Hide azure vault 2024-11-21 13:02:40 +08:00
wangruidong
6abfeee683 feat: Add periodic display and validate job params 2024-11-20 22:07:56 +08:00
Aaron3S
1a03f7b265 feat: add license edition check 2024-11-20 20:09:11 +08:00
feng
2dae2b3789 perf: Translate 2024-11-20 18:21:31 +08:00
Aaron3S
bdbbebab76 feat: perf face capture page 2024-11-20 17:54:27 +08:00
Chenyang Shen
33170887f4 Merge pull request #14495 from jumpserver/pr@dev@feat_add_check_api_white_list
feat: add 'face_context' to check_api white list
2024-11-20 17:52:06 +08:00
Aaron3S
88302c8846 feat: add 'face_context' to check_api white list 2024-11-20 16:38:22 +08:00
feng
4068b5c76a perf: Change secret ssh_key_change_strategy modify the default value 2024-11-20 16:27:21 +08:00
feng
9966ad4c71 perf: Dynamic update vault 2024-11-20 15:58:20 +08:00
Aaron3S
9cfe974c52 feat: 添加 mfa middleware 白名单 2024-11-20 14:18:52 +08:00
feng
d9a9f890f5 perf: Lina AzureKeyVault translate 2024-11-20 14:08:27 +08:00
fit2bot
e2904ab042 perf: Custom SMS (files) support obtaining more user information. (#14486)
* perf: Custom SMS (files) support obtaining more user information.

* perf: Remove the useless modules

* perf: modify

---------

Co-authored-by: jiangweidong <1053570670@qq.com>
2024-11-20 10:29:14 +08:00
Aaron3S
f92c557235 feat: 增加人脸识别超时控制 2024-11-20 10:27:04 +08:00
halo
cfadbc164c perf: If the cloud vault initialization fails, the task will not be executed. 2024-11-20 10:15:14 +08:00
feng
374a102bc4 perf: Translate 2024-11-19 18:58:43 +08:00
feng
84e1411c22 fix: Clone endpoint 500 2024-11-19 18:09:00 +08:00
wangruidong
e28bf170d1 perf: MFA Translate 2024-11-19 17:55:11 +08:00
wangruidong
7c9e3a1362 perf: Optimize summary calculation 2024-11-19 17:55:11 +08:00
feng
fba80342a5 perf: Translate 2024-11-19 17:54:45 +08:00
Aaron3S
5eeff0aabf feat: 设置人脸上下文存活时间 2024-11-19 17:34:44 +08:00
Aaron3S
5b4de02fff feat: 增加绑定成功失败提示 2024-11-19 17:30:31 +08:00
wangruidong
b6a5854fa2 perf: Optimize summary calculation 2024-11-19 16:13:38 +08:00
Chenyang Shen
9771d3c817 Merge pull request #14476 from jumpserver/pr@dev@feat_add_face_i18n
FEAT: Add face recognition translation
2024-11-19 15:11:03 +08:00
Aaron3S
b33a0cf0b1 feat: 添加人脸识别翻译 2024-11-19 15:08:39 +08:00
Chenyang Shen
f9fa6ad9c1 Merge pull request #14474 from jumpserver/pr@dev@feat_update_face_capture_page
feat: Optimized the face collection page
2024-11-19 15:01:45 +08:00
Aaron3S
4b2db2b6a1 feat: 优化人脸采集页面 2024-11-19 14:28:31 +08:00
Halo
822b353a40 perf: Translate (#14468)
* feat: azure key vault

* perf: add azure-keyvault-secrets

* perf:azure kv api

* perf: Translate

* perf: Update Dockerfile with new base image tag

* perf: Error when secret is empty

* perf: Translate

* perf: Update Dockerfile with new base image tag

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-11-18 18:48:33 +08:00
feng
2908d4ee5f perf: Delete asset fail 2024-11-18 10:08:37 +08:00
wangruidong
482c4ced0c perf: Translate 2024-11-15 18:00:35 +08:00
halo
b2a5e457a9 fix: vault synchronization task exception 2024-11-15 17:46:17 +08:00
wangruidong
343c3607fa fix: modify job audit rbac 2024-11-15 15:47:20 +08:00
wangruidong
f03263eedf fix: Radius login failed 2024-11-15 15:44:05 +08:00
Aaron3S
98d7ecbf3e fix: 修改错误的url地址 2024-11-13 17:35:43 +08:00
halo
477ccda8ca perf: VAULT_BACKEND cannot be modified from the frontend 2024-11-13 17:31:47 +08:00
wangruidong
fcdc2b9510 fix: Solve audit job and variable bugs 2024-11-13 17:31:17 +08:00
wangruidong
1ee57cfda0 perf: ticket info add org name 2024-11-12 18:15:31 +08:00
wangruidong
804bd289a4 fix: Other people can delete adhoc or playbook 2024-11-12 17:44:21 +08:00
Aaron3S
86273865c8 feat: 增加人脸识别功能 2024-11-12 17:41:39 +08:00
Eric
5142f0340c perf: add license info for component config 2024-11-12 16:52:45 +08:00
Bai
7c80c52d02 fix: Set the default language to en 2024-11-12 15:43:57 +08:00
Bai
eb30b61ca9 fix: Set the default language to en 2024-11-12 15:38:01 +08:00
wangruidong
dd5a272cdf perf: Add task handler for ops job with creator assignment 2024-11-12 15:16:01 +08:00
wangruidong
5b27acf4ef perf: Admin and auditor can view and stop task 2024-11-12 11:25:12 +08:00
Eric
1a41a7450e perf: vnc proxy port to 15900 2024-11-11 19:46:24 +08:00
fit2bot
e1b501c7d4 feat: azure key vault (#14406)
* feat: azure key vault

* perf: add azure-keyvault-secrets

* perf:azure kv api

* perf: Translate

* perf: Update Dockerfile with new base image tag

* perf: Error when secret is empty

* perf: Translate

---------

Co-authored-by: halo <wuyihuangw@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-11-11 19:41:47 +08:00
Eric
b660bfb7ff perf: add nec vnc component and endpoint migrations 2024-11-11 18:54:52 +08:00
wangruidong
5724912480 perf: Add check for SECURITY_COMMAND_EXECUTION settings in ops tasks 2024-11-11 18:14:43 +08:00
feng
11b3bafd5a perf: Translate 2024-11-08 15:34:37 +08:00
wangruidong
9f90838df1 perf: Optimize username handling in push_account 2024-11-07 10:47:01 +08:00
wangruidong
b01916001e fix: User import fails if MFA field is set to Disabled (0) 2024-11-07 10:45:05 +08:00
fit2bot
c96ae1022b feat: Supports running adhoc,playbook with variable (#14417)
* perf:Create a job that supports adding node parameters

* feat: add variable model

* feat: Modify Variable and AdHoc models,

* feat: Parameters can be set when running job

* feat: Supports setting  variable type

* feat: Supports running adhoc with parameters

* feat: Supports running playbook with parameters

* fix: Translate

* feat: Support setting variables for scheduled tasks

* perf: Translate

---------

Co-authored-by: wangruidong <940853815@qq.com>
2024-11-07 10:38:34 +08:00
jiangweidong
8f11167db0 perf: i18n - Supports automatic release of assets and prevents accidental release of network errors 2024-11-06 15:07:26 +08:00
老广
a53397b76f Update llm-code-review.yml 2024-11-05 18:20:38 +08:00
老广
8f13224454 Create llm-code-review.yml 2024-11-04 18:34:06 +08:00
Bai
8f4dd25e69 feat: DEFAULT_EXPIRED_YEARS put in public settings API 2024-11-01 18:24:54 +08:00
Bai
9c8762e3a0 feat: support configuration DEFAULT_EXPIRED_YEARS 2024-11-01 15:48:57 +08:00
Bai
a8cf788122 feat: add GitHub Action to automatically publish release notes to Discord changelog channel. 2024-11-01 15:24:07 +08:00
Bai
7355a4f152 feat: add GitHub Action to automatically publish release notes to Discord changelog channel. 2024-11-01 14:21:48 +08:00
ibuler
2cf80e6615 perf: login success to call client 2024-10-31 18:36:42 +08:00
ibuler
9a18ed631c fix: oracle platform create error 2024-10-30 16:33:18 +08:00
Bai
1e16f1cb9f fix: console dashboard proportion describe 2024-10-29 19:09:50 +08:00
fit2bot
35b8b080ab perf: add to cron.d (#14375)
* perf: add to cron.d

* perf: Update Dockerfile with new base image tag

---------

Co-authored-by: ibuler <ibuler@qq.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-10-29 16:15:07 +08:00
ibuler
4219d54db3 perf: add cron in dockerfile 2024-10-29 15:39:54 +08:00
ibuler
c3620254b3 perf: change docker file 2024-10-29 15:32:57 +08:00
fit2bot
d30de0b6a0 perf: update chrome applets hang (#14353)
* perf: update chrome applets hang

* perf: remove debug print

---------

Co-authored-by: Eric <xplzv@126.com>
2024-10-29 15:19:15 +08:00
github-actions[bot]
af91b6faeb perf: Update Dockerfile with new base image tag 2024-10-29 15:18:24 +08:00
ibuler
49b84b019d perf: using poetry mirror 2024-10-29 15:18:24 +08:00
ibuler
a0ee520572 perf: remove cache 2024-10-29 15:18:24 +08:00
fit2bot
972afe0bfe perf: revert old deps (#14371)
* perf: revert old deps

* perf: update poetry

* perf: Update Dockerfile with new base image tag

---------

Co-authored-by: ibuler <ibuler@qq.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-10-29 14:24:31 +08:00
wangruidong
e47e9b0a11 fix: Unique basename 2024-10-29 11:38:46 +08:00
fit2bot
87e54d8823 perf: add cron (#14364)
* perf: add cron

* Update Dockerfile-base

* perf: Update Dockerfile with new base image tag

---------

Co-authored-by: ibuler <ibuler@qq.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-10-29 10:56:42 +08:00
jiangweidong
a73c8d8285 fix: Wechat ticket message some url cannot clicked 2024-10-25 15:05:13 +08:00
Eric
b0dd8d044d perf: add error msg when applet task failed 2024-10-24 14:55:33 +08:00
jiangweidong
7c55c42582 perf: Links in WeCom messages can be opened without re-logging in. 2024-10-22 17:02:59 +08:00
fit2bot
cc1fcd2b98 perf: move storage sdk to core (#14318)
* perf: move storage sdk to core

* perf: Update Dockerfile with new base image tag

---------

Co-authored-by: ibuler <ibuler@qq.com>
Co-authored-by: Bai <baijiangjie@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-10-22 15:20:10 +08:00
fit2bot
8434d8d5ba perf: update dependency (#14307)
* perf: update dependency

* perf: remove source build

* perf: Update Dockerfile with new base image tag

* perf: use cache build

* perf: Update Dockerfile with new base image tag

* fix: variable incorrectly defined

* perf: Update Dockerfile with new base image tag

* fix: openpyxl fixed version

* perf: Update Dockerfile with new base image tag

* perf: remove cache

* perf: Update Dockerfile with new base image tag

* perf: update pyproject.toml

* perf: Update Dockerfile with new base image tag

* perf: remove cache

* perf: Update Dockerfile with new base image tag

---------

Co-authored-by: 吴小白 <296015668@qq.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-10-22 14:16:19 +08:00
feng
044fd238b8 perf: Remove ssh_key_change_strategy add value 2024-10-21 15:25:38 +08:00
feng
be096a1319 perf: List preference translate 2024-10-18 14:36:13 +08:00
吴小白
6fa14833b3 perf: use python embed 2024-10-18 11:02:49 +08:00
feng
1f32ab274c fix: Error subpub_msg log 2024-10-17 15:17:32 +08:00
feng
b0f86e43a6 perf: Translate 2024-10-17 12:05:25 +08:00
ibuler
9b0c81333f perf: debug pub sub 2024-10-17 10:16:44 +08:00
Eric
05fc966444 perf: add koko i18n 2024-10-16 18:25:42 +08:00
Eric
b87650038f perf: update code 2024-10-16 18:11:00 +08:00
wangruidong
d4f69a7ff8 perf: Translate 2024-10-16 17:59:18 +08:00
ibuler
0e1e26c29c perf: disable f1 key 2024-10-16 17:01:10 +08:00
Huaqing Chen
1b8cdbc4dd 修复websocket不能使用Authorization Header的问题 2024-10-15 14:13:38 +08:00
feng
2a781c228f perf: Cas user cannot bind organization 2024-10-15 10:50:20 +08:00
ZhaoJiSen
35d6b0f16a Merge pull request #14299 from jumpserver/pr@dev@change_password_length
perf: Change secret remove redundant checks
2024-10-14 16:45:27 +08:00
feng
ca8987fef6 perf: Change secret remove redundant checks 2024-10-14 16:39:31 +08:00
ZhaoJiSen
b385133071 Merge pull request #14297 from jumpserver/pr@dev@translate
perf: Translate
2024-10-14 16:09:21 +08:00
feng
aa78a03efa perf: Translate 2024-10-14 16:05:38 +08:00
wangruidong
31f8a19392 perf: Translate account history 2024-10-14 15:31:17 +08:00
wangruidong
7a528b499a perf: import data validate platform 2024-10-14 14:05:24 +08:00
Eric
1c6ce422cf perf: update tinker v0.1.9 2024-10-12 16:30:28 +08:00
Eric
f9cf2ea2e5 perf: fix api error when deleting offline panda components 2024-10-12 16:15:23 +08:00
Aaron3S
575b3a617f feat: 添加 chen 翻译 2024-10-12 15:44:38 +08:00
wangruidong
b7362d3f51 fix: adhoc execute alert msg 2024-10-12 15:43:03 +08:00
ZhaoJiSen
6ee3860124 Merge pull request #14287 from jumpserver/pr@dev@translate
perf: Translate
2024-10-12 14:40:23 +08:00
feng
7e111da529 perf: Translate 2024-10-12 14:35:18 +08:00
wangruidong
578458f734 perf: site msg content optimize 2024-10-11 11:28:56 +08:00
Bai
bd56697d6d perf: DEFAULT_PAGE_SIZE same as MAX_LIMIT_PER_PAGE 2024-10-10 18:00:01 +08:00
wangruidong
aad824d127 perf: add created_by field 2024-10-09 16:14:22 +08:00
wangruidong
63f828da0b perf: Default endpoint cannot be disabled 2024-10-09 16:12:37 +08:00
wangruidong
7c211b3fb6 perf: Translate 2024-10-08 15:01:53 +08:00
feng
3881edd2ba perf: Optimize file audit download prompt 2024-09-29 16:12:49 +08:00
feng
b882b12d04 perf: Check the validity of the connection token 2024-09-27 17:10:08 +08:00
wangruidong
addd2e7d1c perf: Endpoint add is_active field 2024-09-27 16:00:05 +08:00
Bai
ad6d2e1cd7 fix: Fixed the issue that the workbench user login log only displays failed logs 2024-09-27 14:34:23 +08:00
github-actions[bot]
5f07271afa perf: Update Dockerfile with new base image tag 2024-09-27 14:30:48 +08:00
Bai
efdcd4c708 perf: upgrade geoip2 and .mmdb 2024-09-27 14:30:48 +08:00
jiangweidong
b62763bca3 perf: Cloud Sync IP Policy Updated to Preferred Option i18n 2024-09-27 14:29:09 +08:00
wangruidong
e95da730f2 perf: Koko can display assets custom name 2024-09-27 14:25:55 +08:00
fit2bot
43fa3f420a fix: Addressing the issue of unauthorized execution of system tools (#14209)
* fix: Addressing the issue of unauthorized execution of system tools

* perf: Optimization conditions

---------

Co-authored-by: jiangweidong <1053570670@qq.com>
2024-09-27 14:17:16 +08:00
wangruidong
0311446384 perf: playbook clone with file 2024-09-27 14:13:35 +08:00
feng
f7030e4fee perf: Login encryption key cache added 2024-09-26 15:11:35 +08:00
ZhaoJiSen
fce8cc375f Merge pull request #14230 from jumpserver/pr@dev@max_password_length
perf: The maximum length of the randomly generated password is changed to 36
2024-09-25 11:00:45 +08:00
feng
920199c6df perf: The maximum length of the randomly generated password is changed to 36 2024-09-25 10:52:16 +08:00
feng
d09eb3c4fa perf: Lock username is not case sensitive 2024-09-23 14:11:55 +08:00
ibuler
6e8affcdd6 perf: ops db migrate 2024-09-19 21:39:55 +08:00
wangruidong
647736f4e3 fix: SAML2 500 error caused by duplicate email or username 2024-09-19 17:49:53 +08:00
ZhaoJiSen
cbc09d84df Merge pull request #14202 from jumpserver/pr@dev@password_rule
perf: Password rule import csv help_text
2024-09-19 16:54:52 +08:00
feng
4c957dd03b perf: Password rule import csv help_text 2024-09-19 16:51:43 +08:00
wangruidong
d34b65890f fix: import account failed 2024-09-19 15:12:05 +08:00
Bai
b53968ac00 delete: ansible log in logging.py 2024-09-19 15:11:31 +08:00
ZhaoJiSen
f2ccb15101 Merge pull request #14198 from jumpserver/pr@dev@saml
perf: Bind user group support str
2024-09-19 12:01:20 +08:00
feng
db5bf046fc perf: Bind user group support str 2024-09-19 11:58:45 +08:00
ibuler
59c87483e6 perf: filter gateway with new params 2024-09-19 11:33:02 +08:00
github-actions[bot]
26420b78f8 perf: Update Dockerfile with new base image tag 2024-09-19 11:18:04 +08:00
wangruidong
e47bdc093e perf: trigger core base image build 2024-09-19 11:18:04 +08:00
wangruidong
3dde80a60a fix: Password reset is only required for AUTH_BACKEND_MODEL 2024-09-19 11:08:11 +08:00
feng
e373a79d63 perf: Gateway type asset filter 2024-09-19 10:45:59 +08:00
wangruidong
744a5cd0e3 perf: Modify relative file path 2024-09-19 10:41:12 +08:00
wangruidong
37ca4a46ee perf: add clean_site_packages.sh file path to build-base-image.yml 2024-09-19 10:25:08 +08:00
wangruidong
0dc9214f98 fix: LDAP HA the login log did not record the authentication backend 2024-09-18 18:53:03 +08:00
wangruidong
513508654b fix: minio test failed 2024-09-18 18:51:25 +08:00
feng
ef2b12fa0f perf: Export template with prompts 2024-09-18 18:26:38 +08:00
feng
4e719ecacd perf: TimerExecution translate 2024-09-18 15:02:17 +08:00
ibuler
755a124b50 perf: checkout repo 2024-09-14 18:32:23 +08:00
zhaojisen
d6888776e7 perf: translate 2024-09-14 18:20:46 +08:00
wangruidong
29e233e715 perf: RemoteApp machine deployOption translate 2024-09-14 18:19:22 +08:00
wangruidong
99c3696d96 fix: Failed to import csv data 2024-09-14 18:17:15 +08:00
ibuler
ed6de83e8c perf: workflow push with full name 2024-09-14 18:09:30 +08:00
Eric
134f1a440c perf: replay part file download 2024-09-14 18:06:05 +08:00
ibuler
7da82242fe perf: github action workflow 2024-09-14 17:47:34 +08:00
Eric
2fd50d2425 perf: update compilemessages check ci 2024-09-14 17:38:07 +08:00
fit2bot
41a3e89248 chore: using pull pull request not push event (#14164)
* perf: diff with head not dev

* chore: using pull pull request not push event

---------

Co-authored-by: ibuler <ibuler@qq.com>
2024-09-14 17:21:49 +08:00
Bai
b125297c37 feat: GitHub Actions add compilemessages checked 2024-09-14 17:04:35 +08:00
ibuler
24255b69ee perf: diff with head not dev 2024-09-14 17:01:02 +08:00
ibuler
3bb51b39c4 perf: github action fetch branches 2024-09-14 16:51:25 +08:00
ibuler
b54da7d3b3 perf: workflow build base image 2024-09-14 16:42:06 +08:00
ibuler
534af0abf0 perf: build workflow 2024-09-14 16:32:15 +08:00
ibuler
8b0073333b perf: change git workflow 2024-09-14 16:25:06 +08:00
ZhaoJiSen
d8af2274f4 Merge pull request #14154 from jumpserver/pr@dev@koko_zh_translate
perf: KOKO zh translate
2024-09-14 15:34:27 +08:00
ibuler
3dd828d703 perf: workflow build base image 2024-09-14 15:34:20 +08:00
feng
fa6b4a5b63 perf: KOKO zh translate 2024-09-14 15:32:52 +08:00
ZhaoJiSen
8bd86c77f9 Merge pull request #14151 from jumpserver/pr@dev@win_rdp_ping
fix: Windows rdp ping fail
2024-09-14 14:48:17 +08:00
feng
3828e89cf8 fix: Windows rdp ping fail 2024-09-14 14:47:14 +08:00
wangruidong
e531b040ef fix: compilemessages error 2024-09-13 22:38:58 +08:00
wangruidong
3eee84a34e fix: delete ReplayStorage error 2024-09-13 19:09:21 +08:00
wangruidong
ab29df5991 fix: command search input error 2024-09-13 19:05:38 +08:00
wangruidong
b042f00688 fix: command search input error 2024-09-13 19:05:11 +08:00
github-actions[bot]
5beebaf51c perf: Update Dockerfile with new base image tag 2024-09-13 19:03:39 +08:00
wangruidong
50f075cc7e fix: Historical sessions download failed 2024-09-13 19:03:39 +08:00
Bai
e997236159 perf: Modify gunicorn log file rotate yesterday dir 2024-09-13 18:37:13 +08:00
ZhaoJiSen
c8b1d892e3 Merge pull request #14145 from jumpserver/pr@dev@account_already_exists
fix: Translate Account already exists
2024-09-13 18:33:25 +08:00
feng
9cb9e7328b fix: Translate Account already exists 2024-09-13 18:32:06 +08:00
feng
85129da942 perf: Postgresql add ssl mode 2024-09-13 17:49:14 +08:00
ZhaoJiSen
1cb00b1db4 Merge pull request #14138 from jumpserver/pr@dev@markdown_html
fix: Internal letter hyperlinks cannot be redirected
2024-09-13 11:07:08 +08:00
feng
c3798bfa95 fix: Internal letter hyperlinks cannot be redirected 2024-09-13 11:05:22 +08:00
github-actions[bot]
1d280599ae perf: Update Dockerfile with new base image tag 2024-09-12 18:55:01 +08:00
feng
ee8d7cdcac perf: Upgrade ansible postgresql 2024-09-12 18:55:01 +08:00
Aaron3S
1b4114fd5f perf: Optimize chen translation 2024-09-12 18:49:04 +08:00
Chenyang Shen
3c6c476f2e Merge pull request #14135 from jumpserver/pr@dev@feat_add_some_chen_i18n
feat: add chen i18n
2024-09-12 18:41:47 +08:00
Aaron3S
f19e3fedbd feat: add chen i18n 2024-09-12 18:38:16 +08:00
Bai
542e64278f perf: fix migrate adhoc playbook 2024-09-12 16:33:36 +08:00
wangruidong
cd76294e81 fix: migrate ops adhoc and playbook unique_together error 2024-09-12 16:33:36 +08:00
wangruidong
4f9158b2ad fix: ldap test config msg error 2024-09-12 10:41:17 +08:00
ZhaoJiSen
e319f20296 Merge pull request #14126 from jumpserver/pr@dev@third_party_user_login_failed
perf: Third-party user login failed
2024-09-12 10:23:05 +08:00
feng
b00f3a851c perf: Third-party user login failed 2024-09-12 10:19:40 +08:00
wangruidong
ab529fd22c fix: i18n compilemessages error 2024-09-12 10:07:12 +08:00
wangruidong
c2784c44ad feat: LDAP HA 2024-09-11 18:26:11 +08:00
feng
512e727ac6 feat: Postgresql support ssl 2024-09-11 18:12:25 +08:00
wangruidong
2dd0154967 perf: modify only_myself to only_mine 2024-09-11 18:02:35 +08:00
wangruidong
f55869a449 feat: Support playbook, adhoc share 2024-09-11 17:52:06 +08:00
wangruidong
b6f3c23787 perf: task description translate 2024-09-11 14:57:07 +08:00
github-actions[bot]
6982ab1efc perf: Update Dockerfile with new base image tag 2024-09-10 15:54:05 +08:00
wangruidong
db4d841bb0 perf: add xpack task description 2024-09-10 15:54:05 +08:00
wangruidong
ef91ebb468 perf: clean expired and account is null SyncInstanceTask record 2024-09-10 15:50:11 +08:00
fit2bot
6264319c51 perf: When connected through a gateway, you can use nc to forward data (#14110)
Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: Bryan <jiangjie.bai@fit2cloud.com>
2024-09-09 19:00:48 +08:00
fit2bot
1417abecfb perf: Add task description (#14033)
Co-authored-by: ZhaoJiSen <97007455+ZhaoJiSen@users.noreply.github.com>
2024-09-09 18:54:33 +08:00
老广
bd548b3fe2 Revert "perf: update deps"
This reverts commit 76b6489636.
2024-09-09 15:33:57 +08:00
ZhaoJiSen
94cef9ea6e Merge pull request #14106 from jumpserver/pr@dev@translate
perf: Translate
2024-09-09 14:29:04 +08:00
feng626
a338613b5a Merge branch 'dev' into pr@dev@translate 2024-09-09 14:27:38 +08:00
feng
0d833a966c perf: Translate 2024-09-09 14:15:16 +08:00
ibuler
76b6489636 perf: update deps 2024-09-09 11:39:51 +08:00
fit2bot
763fe778d5 perf: finish this feat (#14079)
* perf: basic finished

* perf: finish this feat

* perf: add datetime demo

---------

Co-authored-by: ibuler <ibuler@qq.com>
2024-09-09 11:26:24 +08:00
ibuler
cf1dc79c68 perf: applet host tips 2024-09-09 10:25:01 +08:00
ibuler
7973239424 perf: support change gateway platform 2024-09-06 17:35:57 +08:00
feng
1baacd0b2c perf: Disable delete admin user 2024-09-06 15:37:12 +08:00
feng
054d385ffc perf: Acl action add notify and warn 2024-09-06 11:07:30 +08:00
wangruidong
50d3a4906a feat: Add announcement start and end dates 2024-09-06 10:54:27 +08:00
wangruidong
c8b7008d42 perf: Translate 2024-09-06 10:54:12 +08:00
kebyn
e94520a3fd fix: 修复非标准实现 X-Forwarded-For 时的问题 2024-09-06 10:31:58 +08:00
wangruidong
55e8e34226 fix: 500 error caused by duplicate email or username 2024-09-06 10:22:37 +08:00
wangruidong
8755ece633 perf: Translate 2024-09-05 19:24:19 +08:00
feng
c545e2a3aa perf: Support SAML2, OIDC user authentication services, mapping user group field information 2024-09-04 18:42:47 +08:00
wangruidong
1068662ab1 perf: Optimize asset connection speed with es command storage 2024-09-02 13:52:23 +08:00
ZhaoJiSen
75141741a1 Merge pull request #14062 from jumpserver/pr@dev@translate
perf: Translate
2024-08-30 15:18:45 +08:00
feng
9da507bb62 perf: Translate 2024-08-30 15:16:44 +08:00
fit2bot
160293365a perf: Regularly delete useless password change push records (#14026)
* perf: If the user Home page does not exist, push will fail

* perf: Change secret add uid parameter

* perf: Regularly delete useless password change push records

---------

Co-authored-by: feng <1304903146@qq.com>
2024-08-30 15:01:40 +08:00
wangruidong
7a19007aba perf: ldap import user error msg 2024-08-30 14:55:22 +08:00
ibuler
f866b93f96 perf: refresh oracle ports if need 2024-08-29 19:06:55 +08:00
feng
b9e64747ac perf: View the internal message and convert the content into markdown 2024-08-29 17:28:12 +08:00
fit2bot
25a473dc99 chore: update checkout action 2024-08-29 17:22:25 +08:00
Bai
e3bf015aa9 fix: user role can't open page of password & ssh key 2024-08-29 14:44:36 +08:00
Bryan
6d3d4a08af Update README.md (#14043)
* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md
2024-08-28 17:55:56 +08:00
Bai
9554de4ea6 fix: User check password need reset 2024-08-28 15:08:24 +08:00
ZhaoJiSen
6157ff7b7d Merge pull request #14032 from jumpserver/pr@dev@koko_translate
perf: Koko translate
2024-08-27 17:41:30 +08:00
feng
774fd176fd perf: Koko translate 2024-08-27 17:39:37 +08:00
ibuler
b489db8054 perf: add a script activate user manually 2024-08-21 14:55:57 +08:00
ZhaoJiSen
6b9fa6e01f Merge pull request #14010 from jumpserver/pr@dev@view_asset
perf: View asset mini api add domain platform field
2024-08-21 11:34:20 +08:00
ZhaoJiSen
9b59954393 Merge pull request #14011 from jumpserver/pr@dev@test_asset
perf: No permission to test asset connectivity
2024-08-21 11:33:55 +08:00
feng
ecaf19563f perf: No permission to test asset connectivity 2024-08-21 11:28:39 +08:00
feng
c431e96eaf perf: View asset mini api add domain platform field 2024-08-21 10:35:07 +08:00
ZhaoJiSen
d86f241450 Merge pull request #14005 from jumpserver/pr@dev@translate
perf: Translate
2024-08-20 11:30:37 +08:00
feng
3252db31fe perf: Translate 2024-08-20 11:28:30 +08:00
Bai
dac118dd26 perf: delete organization message 2024-08-19 16:06:37 +08:00
fit2bot
181eb621c0 perf: Remove kubernetes tree api (#13995)
* perf: Remove kubernetes tree api

* perf: Update Dockerfile with new base image tag

---------

Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
2024-08-19 16:04:00 +08:00
ibuler
828582333d perf: remove ansible receptcel 2024-08-19 11:16:58 +08:00
github-actions[bot]
657f7f822b perf: Update Dockerfile with new base image tag 2024-08-19 10:50:39 +08:00
ibuler
93627e4f9d perf: clean site packages 2024-08-19 10:50:39 +08:00
feng
2adb2519fa perf: Push password change and select finally use rdp to test connectivity. rdp does not support gateway 2024-08-19 10:20:33 +08:00
wangruidong
32ec48ac14 perf: Improve performance by optimizing ES index creation 2024-08-16 18:19:04 +08:00
Bai
b3a0d81740 fix: job periodic task double run 2024-08-15 20:17:20 +08:00
ibuler
2b160fbbc2 revert: entrypoint.sh 2024-08-15 20:14:24 +08:00
wangruidong
60fcf5fcd3 perf: luna connect asset name set custom value 2024-08-15 19:47:56 +08:00
Bai
7c2e50435d perf: i18n for ldap user import 2024-08-15 15:50:56 +08:00
ZhaoJiSen
57f91d0973 Merge pull request #13980 from jumpserver/pr@dev@no_account_found
perf: Lina translate
2024-08-15 14:49:41 +08:00
feng
49c033e003 perf: Lina translate 2024-08-15 14:47:55 +08:00
Ewall555
6476a8fee8 perf: Translate ticket cancel button 2024-08-15 14:35:43 +08:00
wangruidong
c10db2ab0f perf: LDAP import user Translate 2024-08-15 14:35:06 +08:00
wangruidong
647beffc01 fix: no accounts no send msg 2024-08-14 19:25:11 +08:00
feng
ac0c6ef3d5 perf: Storage update comment failed 2024-08-14 19:18:10 +08:00
feng
e13741827d fix: Domain detail asset amount mistake 2024-08-14 17:37:03 +08:00
wangruidong
29caf0154e perf: Translate batch approval 2024-08-14 17:36:23 +08:00
wangruidong
fbdcc437e6 perf: ticket msg field value set truncate string length 2024-08-14 16:45:43 +08:00
feng
b38e5df1aa perf: Translate 2024-08-14 16:37:57 +08:00
feng
0a39ba0a75 fix: Use only_sudo failed 2024-08-14 16:15:57 +08:00
wangruidong
c56e1bdbbe fix: call get_verify_state_failed_response NotImplementedError 2024-08-13 18:51:15 +08:00
feng
6b00ba271f perf: Replace Feishu to obtain user information interface 2024-08-13 18:13:08 +08:00
wangruidong
bddb1de2f8 perf: Comment translate 2024-08-13 18:04:29 +08:00
wangruidong
32ae77c42d perf: add TERMINAL_SSH_KEY_LIMIT_COUNT conf 2024-08-13 17:39:03 +08:00
feng
3b1701b1aa perf: Translate 2024-08-12 18:41:05 +08:00
feng
3b9bcc719e perf: Reset password: optimize form frame 2024-08-12 15:16:06 +08:00
feng
8e6aa4524d perf: Ip type translate 2024-08-09 17:10:11 +08:00
feng
cea63e6083 perf: Setting user attributes is invalid 2024-08-09 16:53:13 +08:00
feng
5d2d8ca487 perf: Translate 2024-08-08 19:17:34 +08:00
fit2bot
81146f44f7 perf: set default version 2024-08-08 17:54:43 +08:00
fit2bot
9adaa27f6c perf: Luna login expire message (#13917)
* perf: Luna login expire message

* perf: Login timeout open in a new window

---------

Co-authored-by: feng <1304903146@qq.com>
2024-08-08 17:54:02 +08:00
feng
01c565f93f perf: Activity log no display 2024-08-08 16:39:44 +08:00
fit2bot
cb97afffab chore: remove build test 2024-08-08 16:06:51 +08:00
github-actions[bot]
1b55bf1670 perf: Update Dockerfile with new base image tag 2024-08-08 16:06:28 +08:00
fit2bot
b1c68165bb perf: update check version to v1.0.3 2024-08-08 16:06:28 +08:00
wangruidong
5d3e633e83 perf: ldap import msg modify 2024-08-07 19:12:42 +08:00
Eric
c863bf63b1 perf: update lina i18n 2024-08-07 17:45:55 +08:00
wangruidong
c71a6ae4ba fix: ssh_key search failed 2024-08-07 17:04:38 +08:00
wangruidong
38e3d9de8b feat: Allow users to customize asset name and comment 2024-08-07 16:44:01 +08:00
Eric
0c73acd4b9 perf: support only su or sudo 2024-08-07 10:57:09 +08:00
wangruidong
581a5c73a6 perf: object storage builtin comment i18n 2024-08-06 10:44:15 +08:00
feng
e1ed1d7c4c perf: Reset password remove sensitive data 2024-08-05 18:25:11 +08:00
Eric
805e7d1d5f perf: Check whether the applet is available. 2024-08-05 18:18:54 +08:00
feng
1957c2983b perf: Ticket set serial number add lock 2024-08-05 17:53:43 +08:00
Bai
6b1ceae6c5 perf: delete blank line 2024-08-05 16:29:54 +08:00
wangruidong
2a5c41dfaf feat: support configuring multiple SSH keys for users 2024-08-05 15:22:54 +08:00
wangruidong
7a38c9136e feat: Allow users to customize asset name and comment 2024-08-05 14:50:24 +08:00
ZhaoJiSen
9a3fdf76fc Merge pull request #13876 from jumpserver/pr@dev@translate
perf: Translate
2024-08-05 14:33:41 +08:00
feng
136db61011 perf: Translate 2024-08-05 14:31:08 +08:00
ibuler
0d338f80c5 perf: ee dockerfile 2024-08-05 14:23:32 +08:00
feng
bd3909ad27 perf: Third-party user login settings default organization 2024-08-02 15:52:05 +08:00
Eric
96399f8315 perf: update tinker v0.1.7 2024-08-02 14:10:03 +08:00
ibuler
4e90d17484 perf: poetry mirror 2024-08-01 18:18:08 +08:00
ibuler
13de75c41f perf: docker file poetry mirror 2024-08-01 17:37:15 +08:00
ibuler
a77ebc5fee perf: pkg download
perf: resource download

perf: resource download
2024-08-01 16:15:36 +08:00
ibuler
99ce82a6a0 perf: build 2024-08-01 16:15:16 +08:00
wangruidong
ec95d25704 perf: Remove applets, no longer display remote application connection methods 2024-08-01 15:59:00 +08:00
Eric
7c6e83d124 perf: reformat code 2024-07-31 15:09:53 +08:00
ibuler
ad5e88f1e3 perf: display migrate log 2024-07-31 15:09:33 +08:00
wangruidong
b1e958d806 fix: stop job failed 2024-07-30 18:53:16 +08:00
feng
8506ae9edd perf: When account push change secret windows only modify the type equal to password 2024-07-30 18:33:42 +08:00
wangruidong
ceb2a9bb17 fix: Arbitrary File Read in Ansible Play 2024-07-30 18:19:01 +08:00
feng
8d83c953d3 perf: Support WeCom DingTalk FeiShu Lark Slack attribute mapping 2024-07-30 17:48:26 +08:00
Eric
9825f9fbd2 perf: Check if CORE_HOST should ignore SSL 2024-07-30 16:57:04 +08:00
feng
41b2ce06a8 perf: Approval process role selection supports multiple strategies 2024-07-30 16:06:01 +08:00
feng
920cfdac5c perf: Saml2 callback url miss port 2024-07-26 18:17:40 +08:00
Bai
8abf7876cc perf: graceful restart gunicorn worker timeout 30 2024-07-26 14:05:27 +08:00
wangruidong
2e625f2c33 feat: add assets amount field to platform page 2024-07-26 13:45:05 +08:00
halo
88037b2038 perf: Email service authentication username is optional 2024-07-26 11:23:15 +08:00
Bai
457021040a perf: Modifying the label matching logic of an AppletHost (random) 2024-07-25 19:04:57 +08:00
fit2bot
4887b21d35 fix: message publish_task args,kwargs can json encode (#13797)
* fix: message publish_task args,kwargs can json encode

* perf: Update Dockerfile with new base image tag

---------

Co-authored-by: wangruidong <940853815@qq.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-24 15:45:27 +08:00
fit2bot
03a66fd563 perf: Modify error message for desktop client login (#13763)
* perf: Modify error message for desktop client login

* perf: Update Dockerfile with new base image tag

---------

Co-authored-by: wangruidong <940853815@qq.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-24 10:59:54 +08:00
fit2bot
ef656a8dfd perf: change docker file build (#13761)
* perf: change docker file build

* perf: Update Dockerfile with new base image tag

---------

Co-authored-by: ibuler <ibuler@qq.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-23 16:38:00 +08:00
Eric
5e45129e32 perf: add luna i18n 2024-07-23 15:40:32 +08:00
feng
ea64b01da6 perf: You can modify sudo permissions multiple times 2024-07-22 17:27:20 +08:00
feng
c3b863c2be perf: You can modify sudo permissions multiple times 2024-07-22 17:27:20 +08:00
feng
6a7896b712 perf: Gpt3 to gpt-4o-mini 2024-07-19 11:56:07 +08:00
feng
83c1f8e4d3 perf: The gateway password contains ! Password parsing failed 2024-07-19 10:41:54 +08:00
Bai
9d3fdd37a3 perf: user authentication supports configuration redirection 2024-07-19 10:37:52 +08:00
Bai
419195895e perf: update readme 2024-07-18 19:43:38 +08:00
feng
c92188887d perf: Create authorization to add template account Push account parameters 2024-07-18 19:15:46 +08:00
feng
dcfc4e6e7b perf: The locked IP shows the username + translate 2024-07-17 18:10:22 +08:00
feng
836adab5d0 perf: Feishu lark support attributes settings 2024-07-17 16:59:57 +08:00
wangruidong
e93227a53c fix: The asset cannot be obtained during online synchronization 2024-07-17 15:52:40 +08:00
fit2bot
d6f6bb9c1b fix: session viewset api permission validation (#13750)
* fix: session viewset api permission validation

* fix: some api permission validation

---------

Co-authored-by: Bai <baijiangjie@gmail.com>
2024-07-17 15:35:34 +08:00
feng
85825165fc perf: Translate 2024-07-17 11:37:19 +08:00
fit2bot
66047c7926 perf: Migrate (#13741)
Co-authored-by: feng <1304903146@qq.com>
2024-07-17 10:18:53 +08:00
Bai
456bcd2d3f fix: i18n error 2024-07-17 10:01:21 +08:00
Bai
259f68a806 fix: i18n error 2024-07-17 09:54:47 +08:00
feng
4e6231ab19 perf: Notification remove kael magnus 2024-07-16 19:34:18 +08:00
fit2bot
d7bbfdcce6 perf: Translate (#13731)
Co-authored-by: feng <1304903146@qq.com>
2024-07-16 18:38:47 +08:00
吴小白
a0cc9e5db5 fix: deploy applet host 2024-07-16 12:49:33 +08:00
wangruidong
ea6cd853de perf: 社区版移除magnus 2024-07-16 10:40:33 +08:00
fit2bot
53a388a7e0 fix: View user perms bug (#13721)
Co-authored-by: feng <1304903146@qq.com>
2024-07-15 17:50:37 +08:00
fit2bot
13b1938efb perf: Community supports custom platforms (#13719)
Co-authored-by: feng <1304903146@qq.com>
2024-07-15 17:31:44 +08:00
ibuler
6677985e4a perf: support user email login 2024-07-15 16:23:52 +08:00
ibuler
cfa1034161 perf: community add postgre support 2024-07-15 16:19:24 +08:00
ibuler
815973fb63 perf: split user model to many file 2024-07-15 10:54:17 +08:00
吴小白
92d369aaca perf: remove receptor 2024-07-12 18:38:26 +08:00
jiangweidong
281a2d9679 fix: custom sms send success but prompt fails 2024-07-12 18:37:46 +08:00
feng
e9f4615caa perf: Optimize the password reset page experience for new users (the password field will be lengthened) 2024-07-12 15:17:49 +08:00
jiangweidong
c0d2efa72a perf: async sms task params can json 2024-07-12 15:16:41 +08:00
gerry-fit
247f4d5c19 perf: Enterprise Edition Hide Footer Copyright Content 2024-07-11 16:10:42 +08:00
fit2bot
29c29b17d4 perf: Translate (#13686)
Co-authored-by: feng <1304903146@qq.com>
2024-07-10 19:03:19 +08:00
wangruidong
5608f7d20d fix: 定时清理任务不生效问题 2024-07-10 16:13:47 +08:00
Bai
aa8ae36255 perf: README 2024-07-10 14:55:46 +08:00
feng
2292e6f2eb perf: save_passwd_change filter user source local and passwords not emtpy 2024-07-10 14:20:33 +08:00
fit2bot
bf82a1c721 fix: Operator write failed (#13677)
Co-authored-by: feng <1304903146@qq.com>
2024-07-10 11:24:26 +08:00
Bryan
8ef84bbc03 Update README.md 2024-07-10 11:13:42 +08:00
fit2bot
e36d51cc0b perf: country code api (#13672)
* perf: remove notification migrations

* perf: country code api

---------

Co-authored-by: ibuler <ibuler@qq.com>
2024-07-09 19:23:41 +08:00
feng
5c1d0238e1 39.102.214.101 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOzDdXgVjgKrT+ZF5DXcNZqJnkjwvt0M5FbVpvbTOU/v
perf: save_passwd_change filter user source local and passwords not emtpy
2024-07-09 19:08:22 +08:00
wangruidong
c6befe4c4b fix: creat linux asset protocol default value is sftp 2024-07-09 19:04:19 +08:00
Bai
5a57c296a1 feat: add db table data analyzer util 2024-07-09 18:49:51 +08:00
wangruidong
34ddfd24be fix: import role template csv failed 2024-07-09 18:15:44 +08:00
wangruidong
39051ef0fd fix: import role template csv failed 2024-07-09 17:04:59 +08:00
fit2bot
ddd813241c perf: JobExecutionViewSet add SECURITY_COMMAND_EXECUTION permission (#13662)
Co-authored-by: feng <1304903146@qq.com>
2024-07-09 16:34:15 +08:00
mmagi
60f7cbef9a fix: 主机硬件信息硬盘大小避免多次挂载重复计入 2024-07-09 15:52:15 +08:00
wangruidong
4adc981a21 perf: update date_updated when update user roles 2024-07-09 15:51:15 +08:00
mmagi
c42913c15e fix: win主机硬件信息内存单位与其他主机一致;cpu信息字段与其他主机一致 2024-07-09 15:49:35 +08:00
halo
bb6d60b46d perf: 优化创建子节点时锁置后 2024-07-09 15:15:06 +08:00
fit2bot
afe7f03c16 perf: login style change (#13539)
* perf: login style change

* perf: login style change

* perf: login style change

---------

Co-authored-by: zhaojisen <1301338853@qq.com>
2024-07-09 15:02:37 +08:00
fit2bot
ba8d3be9a6 fix: Operatelog plaintext storage AKSK (#13506)
* fix: Operatelog plaintext storage AKSK

* perf: Encrypt some field when saving operatelog

* fix: Operatelog plaintext storage AKSK

---------

Co-authored-by: jiangweidong <1053570670@qq.com>
2024-07-09 14:52:00 +08:00
Eric
d14d8869ac perf: add connection options for mongodb 2024-07-09 14:00:59 +08:00
wangruidong
2f7391efc3 perf: modify migrations 2024-07-09 11:38:47 +08:00
ibuler
75fa96b29c perf: remove notification migrations 2024-07-09 11:25:49 +08:00
maninhill
c56ab9bc1e chore: Update README.zh-CN.md 2024-07-09 11:11:20 +08:00
fit2bot
443e492fd4 perf: Asset type cloud add community version (#13640)
Co-authored-by: feng <1304903146@qq.com>
2024-07-09 10:59:56 +08:00
ibuler
b8c223d525 perf: can set xpack disable force 2024-07-09 10:56:20 +08:00
吴小白
a509afe24b fix: FromAsCasing keywords 2024-07-09 10:35:59 +08:00
fit2bot
9654add528 perf: Translate (#13633)
Co-authored-by: feng <1304903146@qq.com>
2024-07-08 15:43:56 +08:00
Bryan
d0a9409078 Update README.md 2024-07-08 14:51:07 +08:00
fit2bot
5836583490 fix: The account gather results do not have the last login time (#13625)
Co-authored-by: feng <1304903146@qq.com>
2024-07-08 11:42:24 +08:00
fit2bot
57d689bee6 perf: Translate (#13620)
Co-authored-by: feng <1304903146@qq.com>
2024-07-05 18:09:39 +08:00
ZhaoJiSen
8a3fb6bd4d Merge pull request #13616 from jumpserver/pr@dev@translate
perf: Translate
2024-07-05 16:50:00 +08:00
feng
78bd3f581a perf: Translate 2024-07-05 16:36:55 +08:00
fit2bot
d07c476507 perf: Translate (#13612)
Co-authored-by: feng <1304903146@qq.com>
2024-07-04 18:14:34 +08:00
fit2bot
50d196eda4 perf: Job api add filter options (#13610)
Co-authored-by: feng <1304903146@qq.com>
2024-07-04 16:03:51 +08:00
ibuler
823d9af91d perf: upgrade to v4, more international and more standardized. 2024-07-04 10:06:43 +08:00
Bryan
3731123369 Update README.md 2024-07-04 09:47:56 +08:00
Bryan
1a68c4b44a Update README.md 2024-07-04 09:47:56 +08:00
Bryan
0f79006b59 Update README.md 2024-07-04 09:47:56 +08:00
maninhill
c95ad5a31c chore: Update README.md 2024-07-04 09:44:01 +08:00
maninhill
e25a96d359 chore: Update README.md 2024-07-03 22:56:08 +08:00
maninhill
04284adc87 chore: Update README.md 2024-07-03 22:40:32 +08:00
maninhill
7ee7d50f22 chore: Update README.md 2024-07-03 18:54:56 +08:00
fit2bot
3d015398c3 perf: Luna translate (#13599)
Co-authored-by: feng <1304903146@qq.com>
2024-07-03 17:50:55 +08:00
wangruidong
da8b328f80 fix: bulk delete playbook 500 error 2024-07-03 17:15:50 +08:00
fit2bot
82a6702c90 perf: Translate (#13594)
Co-authored-by: feng <1304903146@qq.com>
2024-07-03 16:50:09 +08:00
fit2bot
ad267bcd35 perf: Translate (#13593)
Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
2024-07-03 16:42:02 +08:00
maninhill
15dc922bca chore: Update README.md 2024-07-03 16:10:03 +08:00
Aaron3S
22405d46d6 feat: add chen translate 2024-07-03 15:54:19 +08:00
wangruidong
35b0741068 fix: modify render_to_json rbac 2024-07-03 15:53:25 +08:00
刘瑞斌
d7b8174fd0 chore: use unseq list 2024-07-03 15:35:14 +08:00
ibuler
43cfb11bca perf: tag export format use name:value style 2024-07-03 15:34:53 +08:00
wangruidong
f955cebaa0 perf: Translate 2024-07-03 15:17:10 +08:00
fit2bot
5d7ec054e6 perf: Community limit (#13584)
Co-authored-by: feng <1304903146@qq.com>
2024-07-03 15:01:37 +08:00
Bryan
6088a38eed Update README.md 2024-07-03 14:51:51 +08:00
fit2bot
e1a84e76bb perf: some translation (#13585)
* perf: applet host platform

* perf: some translation

---------

Co-authored-by: ibuler <ibuler@qq.com>
2024-07-03 14:51:21 +08:00
wangruidong
19f9179e7f perf: update migrations same with v3 2024-07-03 14:46:17 +08:00
Bryan
aa4a8d5b42 Update README.md 2024-07-03 14:44:28 +08:00
老广
10ba31086c Update README.md 2024-07-03 14:40:49 +08:00
fit2bot
fa8312bc65 perf: Translate (#13575)
Co-authored-by: feng <1304903146@qq.com>
2024-07-02 18:30:23 +08:00
maninhill
512e727dd4 chore: Update CONTRIBUTING.md 2024-07-02 18:25:57 +08:00
wangruidong
a529609275 fix: Resolve issue with update permissions preventing data import 2024-07-02 16:34:10 +08:00
fit2bot
a8973330fe fix: Account tempale cannot push params (#13571)
Co-authored-by: feng <1304903146@qq.com>
2024-07-02 16:12:27 +08:00
ibuler
d42acc3848 perf: applet host platform 2024-07-02 15:15:13 +08:00
fit2bot
912cefbc85 perf: Lina LoginLogTotal translate (#13569)
Co-authored-by: feng <1304903146@qq.com>
2024-07-02 15:10:33 +08:00
feng
2bb475d0ce perf: Account push log optimization 2024-07-02 14:55:38 +08:00
ibuler
22788ff2da perf: remove org api scope 2024-07-02 14:11:16 +08:00
fit2bot
5594b25ae0 perf: Login confirm return failed (#13560)
Co-authored-by: feng <1304903146@qq.com>
2024-07-02 11:02:30 +08:00
Aaron3S
4733d89807 perf: 优化 chen 翻译 2024-07-02 10:19:36 +08:00
wangruidong
c718fe1a9d perf: modify user login ACL msg 2024-07-01 19:30:42 +08:00
wangruidong
237b4a82c9 fix: handle 500 error when re-binding DingTalk user to another user 2024-07-01 18:03:47 +08:00
fit2bot
76e0cbb8ac perf: update lion i18n (#13556)
* perf: update lion i18n

* perf: update i18n

---------

Co-authored-by: Eric <xplzv@126.com>
2024-07-01 16:22:46 +08:00
fit2bot
b3a670d380 perf: Lina mfa translate (#13555)
Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
2024-07-01 16:12:13 +08:00
wangruidong
db243d050e fix: playbook FileNotFoundError 2024-07-01 15:51:14 +08:00
wangruidong
cd2648291e perf: Translate 2024-07-01 15:15:53 +08:00
wangruidong
4a49bde1f0 perf: add compatibility for macOS environment 2024-07-01 15:02:32 +08:00
wangruidong
d9754496d0 perf: add bubblewrap 2024-07-01 15:02:32 +08:00
fit2bot
6753b5fd19 perf: Translate (#13550)
Co-authored-by: feng <1304903146@qq.com>
2024-07-01 11:42:33 +08:00
fit2bot
aeb320ba30 perf: Lina translate (#13548)
Co-authored-by: feng <1304903146@qq.com>
2024-07-01 10:15:06 +08:00
ibuler
e712e8ccfc perf: ansible version and set user lang 2024-06-28 18:59:44 +08:00
fit2bot
1d6f827296 perf: Migrate (#13540)
Co-authored-by: feng <1304903146@qq.com>
2024-06-28 18:36:24 +08:00
ibuler
772c9b385c perf: lang setting from core 2024-06-28 16:40:25 +08:00
wangruidong
f5053728e7 perf: Translate Tags 2024-06-28 15:28:57 +08:00
wangruidong
f67fd29499 perf: Community update user list API to exclude specific fields 2024-06-28 14:54:07 +08:00
fit2bot
138ea35620 fix: Got perm tree 500 (#13533)
Co-authored-by: feng <1304903146@qq.com>
2024-06-28 11:39:09 +08:00
wangruidong
bf56549f01 perf: Task log optimize 2024-06-28 10:25:10 +08:00
Eric
908181af64 perf: clean mp4 replay file
perf: refactor code to clean files
2024-06-27 18:12:37 +08:00
fit2bot
7b4d3c44f8 fix: Asset perm calculate failed (#13530)
Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
2024-06-27 18:05:08 +08:00
feng
b7a6454d65 fix: Asset perm calculate failed 2024-06-27 17:56:41 +08:00
ibuler
6d81fa7fdf perf: change default login title 2024-06-27 17:55:57 +08:00
wangruidong
0e8833cce3 perf: Translate Client connection 2024-06-27 11:27:43 +08:00
fit2bot
24d9e65532 fix: Asset 003 migrate failed (#13519)
Co-authored-by: feng <1304903146@qq.com>
2024-06-26 21:42:43 +08:00
ibuler
bca9bdf619 perf: translate some word 2024-06-26 19:29:56 +08:00
fit2bot
cd39e20808 perf: Applet host provider add filterset (#13517)
Co-authored-by: feng <1304903146@qq.com>
2024-06-26 19:07:28 +08:00
fit2bot
9c8680d3f4 perf: Translate (#13514)
Co-authored-by: feng <1304903146@qq.com>
2024-06-26 17:06:23 +08:00
wangruidong
dd84ca8f85 fix: Virtualapp rbac config 2024-06-26 16:43:32 +08:00
Eric
96c1f689c0 perf: modify dbeave remoteapp dislay name 2024-06-26 16:19:09 +08:00
wangruidong
84855bfd7e perf: Translate Lark 2024-06-26 16:13:16 +08:00
fit2bot
40c5a218a9 perf: Translate (#13509)
Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
2024-06-26 15:18:37 +08:00
wangruidong
8e87972a76 perf: Translate ticket action 2024-06-26 14:37:32 +08:00
fit2bot
3faee9b80c perf: change some translate (#13505)
* perf: some word translate


---------

Co-authored-by: ibuler <ibuler@qq.com>
2024-06-25 19:36:35 +08:00
fit2bot
5a1389a187 perf: Translate (#13504)
Co-authored-by: feng <1304903146@qq.com>
2024-06-25 19:10:32 +08:00
Eric
565c2f493c perf: add lion i18n 2024-06-25 19:04:40 +08:00
Bai
8d48593fc4 perf: Update README 2024-06-25 16:44:00 +08:00
fit2bot
b50c96fcd6 perf: Update README (#13497)
* perf: Update README

* perf: Update README

* perf: Update README

---------

Co-authored-by: Bai <baijiangjie@gmail.com>
2024-06-25 16:29:14 +08:00
ibuler
85700a2a26 perf: some word translate 2024-06-25 15:36:25 +08:00
Bryan
66615b7dd3 Update README.md 2024-06-25 15:34:31 +08:00
Bryan
2c1a1fa31e Update README.md 2024-06-25 15:34:31 +08:00
wangruidong
bbc442b56e perf: Translate CanDragSelect tips 2024-06-25 15:31:30 +08:00
Bryan
1ca579f4f0 Update README.md 2024-06-25 15:01:47 +08:00
Bryan
9e3b23179c Update README.md 2024-06-25 15:01:47 +08:00
Bryan
9fd861d047 Update README.md 2024-06-25 15:01:47 +08:00
fit2bot
4abfcb27d1 perf: Update README (#13491)
* perf: Update README

* perf: Update README

* perf: Update README

* perf: Update README

* perf: Update README

---------

Co-authored-by: Bai <baijiangjie@gmail.com>
Co-authored-by: Bryan <jiangjie.bai@fit2cloud.com>
2024-06-25 11:22:38 +08:00
老广
3463761693 Update README.md 2024-06-25 10:28:14 +08:00
Eric
c311adc1da chore: update mysqlclient 2.2.4 2024-06-24 20:12:09 +08:00
ibuler
ee258707c8 perf: change initial passwd to ChangeMe 2024-06-24 20:11:49 +08:00
Eric
17d96669fe perf: remove pymysql 2024-06-24 20:11:23 +08:00
fit2bot
3fade107d5 perf: Translate (#13489)
Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
2024-06-24 20:10:34 +08:00
wangruidong
f91ec6fa6a perf: favor & disfavor trans 2024-06-24 19:38:19 +08:00
Bai
dfff41e9d6 perf: Update README 2024-06-24 19:25:41 +08:00
Bai
478e81b8fa perf: Update README 2024-06-24 19:25:41 +08:00
wangruidong
9b14f2aa1f perf: ftp log has_file trans 2024-06-24 19:18:26 +08:00
Bryan
18e648af6e Update README.md (#13481)
* Update README.md

* perf: Update README

* perf: Update README

* perf: Update README

* perf: Update README

* perf: Update README

* perf: Update README

* perf: Update README

* perf: Update README

* perf: Update README

* perf: Update README

* perf: Update README

* perf: Update README

* perf: Update README
2024-06-24 19:16:30 +08:00
老广
45bd69585a Update README.md 2024-06-24 18:24:21 +08:00
maninhill
42a0cde450 chore: Update README.md 2024-06-24 18:22:38 +08:00
Bai
a9ef21ea3f fix: poetry lock 2024-06-24 17:07:34 +08:00
Bai
13d24a12db fix: i18n messages 2024-06-24 17:07:34 +08:00
wangruidong
2bd09f246d fix: raise http 400 when batch delete in component settings 2024-06-24 16:25:54 +08:00
fit2bot
23c81cf5eb perf: Migrate asset dameng json (#13477)
Co-authored-by: feng <1304903146@qq.com>
2024-06-24 16:24:40 +08:00
Bryan
e95284335e Merge pull request #13472 from jumpserver/v4
Merge v4 to dev
2024-06-24 15:50:29 +08:00
Bai
1c7f82e65a Merge v4 to dev (Update poetry lock) 2024-06-24 15:47:13 +08:00
Bai
dfde50c768 Merge v4 to dev 2024-06-24 15:43:40 +08:00
ibuler
8bfbebf29e Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-06-24 14:51:42 +08:00
ibuler
8157f9891f perf: 优化批量删除判断 2024-06-24 14:50:53 +08:00
wangruidong
ad95adc833 perf: trans LDAP msg 2024-06-24 14:24:06 +08:00
ibuler
f7e55c9b89 merge: with remote 2024-06-24 11:06:32 +08:00
ibuler
11b125655d perf: passkey help msg 2024-06-24 11:05:41 +08:00
fit2bot
c6628a1959 perf: Translate (#13471)
Co-authored-by: feng <1304903146@qq.com>
2024-06-24 10:57:10 +08:00
fit2bot
165d030c8e perf: ansible runner in isolated mode (#13434)
perf: use new ansible runner

perf: change lock

Co-authored-by: ibuler <ibuler@qq.com>
2024-06-24 10:21:31 +08:00
feng
9be77cf58f perf: Ansible inventory set jms 2024-06-24 10:15:05 +08:00
吴小白
887724bad4 feat: upgrade poetry.lock 2024-06-24 10:11:49 +08:00
fit2bot
ae7dbbedcc perf: Edit rbac perms (#13468)
Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
2024-06-21 19:08:37 +08:00
fit2bot
407a77f61b perf: trans StopLogOutput 2024-06-21 18:05:39 +08:00
fit2bot
e06f9a03d6 perf: System setting perm (#13463)
Co-authored-by: feng <1304903146@qq.com>
2024-06-20 19:19:14 +08:00
fit2bot
07edbea54e perf: Update ah translate (#13459)
Co-authored-by: feng <1304903146@qq.com>
2024-06-20 16:56:41 +08:00
ibuler
856e501a15 Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-06-20 11:11:19 +08:00
ibuler
8cf900f9de perf: 生产授权树 2024-06-20 11:10:57 +08:00
fit2bot
a54605ac79 perf: Translate (#13454)
Co-authored-by: feng <1304903146@qq.com>
2024-06-19 19:36:47 +08:00
Bai
b283d88781 fix: Clone asset with accounts 2024-06-19 16:00:58 +08:00
wangruidong
92790d711e perf: Add log download button 2024-06-19 15:56:02 +08:00
gerry-fit
2977323800 perf: 登录重置密码传输进行加密 2024-06-19 14:53:50 +08:00
fit2bot
5b548d8d57 perf: Translate (#13450)
Co-authored-by: feng <1304903146@qq.com>
2024-06-19 14:48:48 +08:00
wangruidong
4a520e9e10 fix: 全局组织,添加标签报错 2024-06-19 09:27:03 +08:00
fit2bot
afdf777386 perf: Translate account (#13445)
Co-authored-by: feng <1304903146@qq.com>
2024-06-18 19:39:27 +08:00
ibuler
cd2af0dcf7 perf: english traslation 2024-06-18 18:47:06 +08:00
wangruidong
44f29e166c fix: 一些任务查找不到id和执行者 2024-06-18 16:52:18 +08:00
fit2bot
f42113afb9 fix: Fixed the issue of user login statistics (#13440)
Co-authored-by: feng <1304903146@qq.com>
2024-06-18 14:18:02 +08:00
Bai
523468f7af fix: Add API Exception traceback log if settings.DEBUG_DEV enabled 2024-06-18 11:58:44 +08:00
Bai
9385d04812 fix: Add API Exception traceback log if settings.DEBUG_DEV enabled 2024-06-18 11:55:56 +08:00
Bai
ff126f3459 fix: delete account error (DoesNotExist) 2024-06-18 11:06:40 +08:00
fit2bot
2ee435a8ec perf: Translate (#13438)
Co-authored-by: feng <1304903146@qq.com>
2024-06-17 19:47:05 +08:00
fit2bot
f3a827b76b perf: Translate (#13437)
Co-authored-by: feng <1304903146@qq.com>
2024-06-17 19:22:45 +08:00
fit2bot
50ceca9f06 perf: Perms system settings (#13435)
Co-authored-by: feng <1304903146@qq.com>
2024-06-17 17:40:03 +08:00
Bai
8a5e86dfa7 fix: migrations assets 0003 json.loads error 2024-06-17 10:39:38 +08:00
fit2bot
6ffae48ab2 perf: Translate (#13431)
Co-authored-by: feng <1304903146@qq.com>
2024-06-14 19:15:41 +08:00
wangruidong
66cd6e95a8 fix: 获取账号改密的任务列表超时 2024-06-14 18:54:01 +08:00
wangruidong
b28aec527f perf: 默认关闭作业中心 2024-06-14 18:18:35 +08:00
fit2bot
9ff78c8569 perf: Lina translate (#13427)
Co-authored-by: feng <1304903146@qq.com>
2024-06-14 15:16:00 +08:00
fit2bot
d6718d7b78 perf: Device asset remove_account_enabled false (#13426)
Co-authored-by: feng <1304903146@qq.com>
2024-06-14 14:47:13 +08:00
fit2bot
32966b260a perf: Refactor OperateLogStore separator logic for database compatibility (#13424)
Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
2024-06-14 14:25:14 +08:00
feng
6c59888d77 perf: Refactor OperateLogStore separator logic for database compatibility 2024-06-14 14:09:53 +08:00
Bai
1c1d839b82 fix: i18n compilemessages 2024-06-14 09:53:08 +08:00
wangruidong
7d295cc675 perf: rbac applet modify translate 2024-06-13 18:26:10 +08:00
fit2bot
75496cbe91 perf: Account backup failed (#13420)
Co-authored-by: feng <1304903146@qq.com>
2024-06-13 18:20:00 +08:00
jiangweidong
496903dfb2 fix: 解决获取用户登录后端的session_key有两种的问题 2024-06-13 17:49:56 +08:00
wangruidong
11f6a029de perf: modify translate 2024-06-13 17:45:39 +08:00
Bai
e40c66c7ed fix: select_for_update error for out join sql 2024-06-13 15:50:11 +08:00
ibuler
2a33337963 Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-06-13 13:04:07 +08:00
ibuler
bd1a768743 perf: change some translation 2024-06-13 13:02:03 +08:00
wangruidong
0a0312695b fix: es使用https报错 2024-06-13 10:33:47 +08:00
fit2bot
0c0ec098ae perf: Modify some translations (#13412)
Co-authored-by: wangruidong <940853815@qq.com>
2024-06-12 19:38:45 +08:00
fit2bot
37ad7b32e4 perf: Cloud account translate (#13413)
Co-authored-by: feng <1304903146@qq.com>
2024-06-12 19:38:07 +08:00
ibuler
2640963938 Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-06-12 19:29:14 +08:00
ibuler
6bc9181c25 fix: some bugs 2024-06-12 19:25:36 +08:00
fit2bot
d8379195e6 perf: Platform automation add remove account method (#13411)
Co-authored-by: feng <1304903146@qq.com>
2024-06-12 19:23:40 +08:00
Bai
9195c658a0 perf: Update djangojs.po file 2024-06-12 18:36:04 +08:00
wangruidong
3fb261b5c8 fix: Role details - multiple instances of English in permissions list 2024-06-12 17:30:03 +08:00
ibuler
aa16c3d3a1 Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-06-12 16:19:26 +08:00
ibuler
7be6cf2b73 perf: tags update 2024-06-12 16:19:16 +08:00
wangruidong
3608b025e5 fix: es8会话记录查询不到命令 2024-06-12 15:49:57 +08:00
fit2bot
60738da053 perf: Automation remove account task fail (#13406)
Co-authored-by: feng <1304903146@qq.com>
2024-06-12 15:30:52 +08:00
Aaron3S
507ad10389 feat: add some translations for chen 2024-06-12 15:27:53 +08:00
Bai
68244b2b37 perf: 更新 lock 文件 2024-06-12 14:30:37 +08:00
wangruidong
948e9ecb4b perf: 命令存储支持ES8的版本 2024-06-12 14:15:13 +08:00
wangruidong
67bc16238c perf: i18n 2024-06-12 10:25:22 +08:00
wangruidong
7ad4d9116a fix: LDAP定时同步任务设置多个通知人,消息内容分除第一个正常,其它人都不正常 2024-06-11 18:24:43 +08:00
Aaron3S
db88f6c9b4 perf: 优化 chen 翻译文件 2024-06-11 18:19:30 +08:00
fit2bot
8b7f60d43e fix: Cloud sync related issues (#13396)
Co-authored-by: feng <1304903146@qq.com>
2024-06-11 17:42:13 +08:00
wangruidong
9439035b86 fix: 账号备份,云同步定时任务不执行 2024-06-07 18:33:46 +08:00
halo
2b220d3753 perf: 去掉account序列化中params属性 2024-06-07 15:54:33 +08:00
ibuler
cd1f6a9137 Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-06-06 16:56:47 +08:00
ibuler
7973d066a3 revert: asset permission real accounts serializer 2024-06-06 16:56:07 +08:00
Bai
440a7ae9cc perf: 添加配置项 FILE_UPLOAD_TEMP_DIR 2024-06-06 16:32:23 +08:00
wangruidong
ad65097a8f perf: Crontab i18n 2024-06-06 14:49:56 +08:00
ibuler
1b05f56598 Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-06-05 19:34:04 +08:00
ibuler
3468f8cd40 perf: 修改授权的账号 2024-06-05 19:33:40 +08:00
Bryan
5c81e974cd Update README.md 2024-06-05 18:00:13 +08:00
Bryan
b638cf7417 Update README.md 2024-06-05 17:53:26 +08:00
Bryan
1db1961cc0 Update README.md 2024-06-05 17:25:45 +08:00
Bryan
811afdcf1a Update README.md 2024-06-05 17:25:12 +08:00
Bryan
1f87ce2a47 Update README.md 2024-06-05 17:09:04 +08:00
Bryan
8213e38e6a Update README.md 2024-06-05 17:01:31 +08:00
ibuler
263bcbb566 Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-06-04 19:08:51 +08:00
ibuler
050ddc88f2 perf: labels 支持颜色 2024-06-04 19:08:16 +08:00
Bai
40a4efc992 fix: 修复用户登录报错刷新浏览器后依旧报错的问题(登录超时,请重新登录) 2024-06-04 16:33:06 +08:00
feng
38e8791d9f perf: Community Edition Remove db client 2024-06-04 16:24:37 +08:00
老广
15d4fafbdb chrome: change github action 2024-06-04 16:23:25 +08:00
fit2bot
deb8474c1b feat: add oracle database web-cli connect method (#13358)
Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2024-06-04 14:51:47 +08:00
fit2bot
12740ead08 perf: ticket translate (#13357)
Co-authored-by: feng <1304903146@qq.com>
2024-06-04 11:01:33 +08:00
Bai
6322559bd7 perf: i18n updated 2024-06-03 19:15:40 +08:00
Aaron3S
6c5eb00fb6 feat: 增加 chen 翻译文件 2024-06-03 16:42:23 +08:00
feng
dad2f8eb65 perf: koko translate 2024-06-03 14:29:57 +08:00
Bai
c8679f48f5 perf: Update i18n 2024-06-03 11:44:16 +08:00
fit2bot
510dc1eaf2 perf: translate (#13347)
Co-authored-by: feng <1304903146@qq.com>
2024-06-03 10:26:12 +08:00
wangruidong
a313753757 perf: action i18n 2024-05-31 16:34:03 +08:00
Gerry.tan
48b037ac26 feat: 支持 Dameng 数据库 2024-05-31 14:45:41 +08:00
wangruidong
53f106b30d perf: i18n 2024-05-31 14:39:56 +08:00
jiangweidong
dfd133cf5a perf: optimize user operation logs (#13221) 2024-05-31 11:05:35 +08:00
吴小白
0d27bfcfa9 perf: 添加 arm64 缺失依赖 2024-05-31 10:56:48 +08:00
jiangweidong
cdfb11549e fix: 解决OAuth2可以跳过不存在用户不允许登录的规则 2024-05-31 10:43:01 +08:00
wangruidong
ba6660216c perf: celery task log format 2024-05-31 10:15:11 +08:00
吴小白
3536af2051 perf: 按要求移除重复构建代码 2024-05-31 10:13:22 +08:00
fit2bot
21bb0a8162 fix: translate json (#13322)
Co-authored-by: feng <1304903146@qq.com>
2024-05-30 14:20:12 +08:00
jiangweidong
d718398791 feat: refactoring sync module (#13293) 2024-05-29 18:44:32 +08:00
fit2bot
0d825927e1 perf: Optimize GitHub labels and update related workflows (#13315)
* perf: Optimize GitHub labels and update related workflows

* perf: Optimize issue template

* perf: Optimize issue template

* Update 1_bug_report.yml

* Update 1_bug_report.yml

* Update 1_bug_report.yml

* Update 1_bug_report.yml

* Update 1_bug_report.yml

* Update 2_feature_request.yml

* Update 2_feature_request.yml

* Update 3_question.yml

* Update 3_question.yml

* Update 3_question.yml

* Update 1_bug_report.yml

* Update 2_feature_request.yml

* Update 1_bug_report_cn.yml

* Update 1_bug_report_cn.yml

* Update 2_feature_request_cn.yml

* Update 1_bug_report_cn.yml

* Update 1_bug_report_cn.yml

* Update 1_bug_report_cn.yml

* Update 3_question_cn.yml

* Update 1_bug_report_cn.yml

* Update 2_feature_request_cn.yml

* Update 3_question_cn.yml

* Update 2_feature_request_cn.yml

* Update 1_bug_report.yml

* Update 1_bug_report_cn.yml

* Update 2_feature_request.yml

* Update 3_question.yml

* perf: Optimize issue template

---------

Co-authored-by: Bai <baijiangjie@gmail.com>
Co-authored-by: Bryan <jiangjie.bai@fit2cloud.com>
2024-05-29 18:15:13 +08:00
吴小白
0b65e3ffda perf: 按要求移除重复构建代码 2024-05-28 18:50:11 +08:00
feng
91a1da57e9 perf: mfa interface optimization, mobile phone number can be empty 2024-05-28 17:27:17 +08:00
Bai
4e8d7df005 fix: v2->v3 The issue of authorized accounts displaying as empty when there are more than 10,000 authorization rules. 2024-05-28 16:09:12 +08:00
Bai
5d1829b998 fix: Disable the applet connection method when all applet hosts have is_active set to False 2024-05-28 11:07:40 +08:00
Bai
75df845024 perf: Remove dependency django-rest-swagger 2024-05-28 10:34:37 +08:00
Bai
c103253867 perf: perm tree search 2024-05-27 18:05:21 +08:00
ibuler
f95cbd6977 merge: with remote 2024-05-27 16:46:13 +08:00
ibuler
f16ec02c40 perf: 修改翻译 2024-05-27 16:43:26 +08:00
wangruidong
0ea2339ad5 perf: notification i18n 2024-05-27 15:24:31 +08:00
feng
81da9e018a fix: windows sync remove account fail and applet deploy rbac perm error and job exection log admin auditor cannot view 2024-05-27 11:41:30 +08:00
Bai
8ebdd59e00 Merge branch 'v4_bain' into v4 2024-05-27 11:35:16 +08:00
Bai
c4e30737a4 perf: i18n bai 2024-05-27 11:34:53 +08:00
ibuler
f127aca5f8 Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-05-27 11:20:59 +08:00
ibuler
7333c8e094 perf: 修改 json 空格数量 2024-05-27 11:20:35 +08:00
Bai
a1e9382275 perf: i18n bai 2024-05-27 11:13:13 +08:00
ibuler
097a6c5c5f perf: 修改 label 为 tag 2024-05-27 11:07:36 +08:00
fit2bot
4e023057cc perf: ticket translate (#13291)
Co-authored-by: feng <1304903146@qq.com>
2024-05-27 11:00:54 +08:00
Bryan
7f90fccc4f perf: The label matching policy is configured with a random selection publisher 2024-05-27 10:26:35 +08:00
ibuler
4034e2152c Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-05-24 18:43:07 +08:00
ibuler
e8d6c6b711 merge: with remote 2024-05-24 18:42:37 +08:00
Bai
43215d27c5 perf: migrations i18n 2024-05-24 14:54:56 +08:00
Bai
e20db96331 Merge branch 'v4_baisse' into v4 2024-05-24 14:42:27 +08:00
Bai
564ad40b99 perf: i18n System Settings End 2024-05-24 14:41:28 +08:00
ibuler
32ef4c79da perf: 修改翻译 2024-05-23 19:00:28 +08:00
wangruidong
af4f6ebb26 perf: dashboard i18n 2024-05-23 18:23:10 +08:00
wangruidong
33b688b021 perf: modify task log i18n 2024-05-23 18:12:52 +08:00
fit2bot
b179770dbf perf: del extra translate (#13274)
Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
2024-05-22 19:24:25 +08:00
Bai
e7f92ec0d7 merged: Merge to v4 (bai) 2024-05-22 18:12:35 +08:00
Bai
79449a8a02 perf: i18n System Settings -> Authentication-OIDC 2024-05-22 17:51:45 +08:00
fit2bot
4ebcba81e0 perf: dates_metrics api speed (#13266)
Co-authored-by: feng <1304903146@qq.com>
2024-05-22 15:25:38 +08:00
wangruidong
5616d31888 perf: CeleryTaskExecution保存时去掉无用参数 2024-05-22 14:04:11 +08:00
fit2bot
f259509ef8 fix: notification migrate file (#13269)
Co-authored-by: feng <1304903146@qq.com>
2024-05-22 10:47:55 +08:00
fit2bot
82977f9023 perf: tickets notifications add default data migrate file (#13268)
Co-authored-by: feng <1304903146@qq.com>
2024-05-21 19:24:26 +08:00
Bai
4a5205c5ac perf: i18n System Settings -> Features 2024-05-21 16:11:13 +08:00
ibuler
714b4ef7f4 merge: with remote 2024-05-21 14:47:37 +08:00
ibuler
df091f0ee1 perf: 添加 terminal 的 migrate 2024-05-21 14:44:48 +08:00
wangruidong
7037cf56ec perf: i18n 2024-05-21 10:47:15 +08:00
Eric
f683d195e4 perf: update lina i18n 2024-05-20 19:06:28 +08:00
Bai
5ab55b823c perf: i18n System Settings -> General,Org,Notifications 2024-05-20 18:39:57 +08:00
吴小白
0f2c769e8d Merge pull request #13255 from jumpserver/pr@v4@fix_docker_build
fix: 修正企业镜像缺失依赖
2024-05-20 15:02:56 +08:00
吴小白
1d53f292ae fix: 修正企业镜像缺失依赖 2024-05-20 14:57:15 +08:00
wangruidong
606d2c8933 fix: 关闭ssh client后,sftp,telnet不显示客户端连接方式 2024-05-20 10:02:12 +08:00
fit2bot
a15335cac9 perf: lina ja translate (#13252)
Co-authored-by: feng <1304903146@qq.com>
2024-05-17 18:46:30 +08:00
wangruidong
f33cf07859 perf: i18n 2024-05-17 18:30:19 +08:00
fit2bot
bce55421ce perf: MenuAccountTemplates zh translate (#13250)
Co-authored-by: feng <1304903146@qq.com>
2024-05-17 17:56:09 +08:00
fit2bot
c3449cd6bc perf: account translate (#13249)
Co-authored-by: feng <1304903146@qq.com>
2024-05-17 16:47:02 +08:00
ibuler
4e903ce19b Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-05-17 16:32:08 +08:00
ibuler
90826b358c perf: 修改翻译 2024-05-17 16:31:39 +08:00
吴小白
7d46aa9892 perf: 优化发布机部署 2024-05-17 15:22:16 +08:00
ibuler
49d2bd93b7 perf: merge with remote 2024-05-17 09:59:12 +08:00
ibuler
9f103a88d6 perf: 修改 org name 2024-05-17 09:58:12 +08:00
fit2bot
ce33bdc370 perf: account related translate (#13241)
Co-authored-by: feng <1304903146@qq.com>
2024-05-16 19:39:03 +08:00
fit2bot
cdf1f81c8a perf: account automation translate (#13240)
Co-authored-by: feng <1304903146@qq.com>
2024-05-16 19:12:24 +08:00
Eric
79edff5fca perf: 支持 loki log 2024-05-16 19:00:47 +08:00
feng
a534c496d0 perf: core celery always active 2024-05-16 15:52:11 +08:00
wangruidong
a11097fb5a fix: 定时任务,再次执行报错 2024-05-16 15:48:45 +08:00
feng
d4c1f93ef6 fix: send slack message failed 2024-05-16 15:23:31 +08:00
fit2bot
9168e92669 perf: update poetry lock (#13229)
Co-authored-by: feng <1304903146@qq.com>
2024-05-16 10:27:29 +08:00
fit2bot
a7316bc7c1 perf: translate (#13228)
Co-authored-by: feng <1304903146@qq.com>
2024-05-15 18:43:31 +08:00
fit2bot
bfd030d70f perf: upgrade jms-storage (#13223)
Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
2024-05-15 14:38:26 +08:00
wangruidong
da0c017c4f fix: ldap定时任务未执行 2024-05-15 14:16:33 +08:00
fit2bot
5ffc0a9665 perf: add new dependencies (#13220)
Co-authored-by: feng <1304903146@qq.com>
2024-05-15 10:13:14 +08:00
fit2bot
10e9026ec7 perf: add gpt 4o (#13218)
Co-authored-by: feng <1304903146@qq.com>
2024-05-14 16:29:41 +08:00
Bai
7c4c0b5924 fix: Fixed ACLs Asset connect select attribute assets while both include labels not matched. 2024-05-14 16:16:00 +08:00
wangruidong
42c3008ec9 perf: 更新ldap相关翻译文件 2024-05-14 15:08:37 +08:00
吴小白
2f6d743cf0 perf: 优化 CI 构建测试 2024-05-14 14:17:02 +08:00
fit2bot
e8faaeb8fb fix: Accounts of ssh key type will no longer export fingerprints. (#13215)
Co-authored-by: feng <1304903146@qq.com>
2024-05-14 13:04:11 +08:00
jiangweidong
09f802b00d perf: cloud sync module adjustment (#13197)
* perf: cloud sync module adjustment

* perf: cloud sync module adjustment
2024-05-14 10:36:17 +08:00
wangruidong
a644b84bb1 perf: dashboard zh,ja,zh_hant i18n 2024-05-13 18:31:54 +08:00
吴小白
b6f48111e3 feat: 更新 Dockerfile 2024-05-13 18:25:06 +08:00
feng
0ea675f8d6 fix: windows gather account failed 2024-05-13 18:23:40 +08:00
wangruidong
3a6e4e7fb6 perf: file transfer boot step help tips i18n 2024-05-13 18:18:27 +08:00
wangruidong
e42a98ff95 perf: celery task log css optimize 2024-05-13 18:16:36 +08:00
ibuler
8fe511cec6 perf: remove *.mo 2024-05-13 17:35:00 +08:00
Bai
ffb3cd13cb perf: Delete locale dir 2024-05-13 17:26:38 +08:00
halo
77caa5536f fix: chrome应用加载多个插件不生效问题 2024-05-13 16:30:17 +08:00
Bai
b1abf8a339 perf: Merge local v4 2024-05-13 15:58:59 +08:00
ibuler
89d20c8a4d perf: 修改一些翻译 2024-05-13 15:28:11 +08:00
ibuler
d66f923c0c perf: 修改翻译 2024-05-13 10:40:08 +08:00
ibuler
d3c14428a1 perf: remove an or a 2024-05-13 10:35:21 +08:00
ibuler
c104f85b18 perf: 修改翻译 2024-05-13 10:29:26 +08:00
fit2bot
755d8124ac perf: account backup translate (#13198)
Co-authored-by: feng <1304903146@qq.com>
2024-05-11 19:48:15 +08:00
Bai
a029cc8ed5 perf: i18n Personal Settings -> All sub menu 2024-05-11 18:55:03 +08:00
ibuler
111dfa8c29 perf: 修改大小写 2024-05-11 16:03:40 +08:00
fit2bot
52c905832b fix: 账号密钥长度为8192时 刷新账号列表504 (#13196)
Co-authored-by: feng <1304903146@qq.com>
2024-05-11 14:45:29 +08:00
ibuler
5f892c3afe perf: change i18n 2024-05-11 14:41:58 +08:00
fit2bot
313202fe41 perf: 合并 migrations (#13187)
* perf: 修改 Migrations

* perf: 合并 migrations

* perf: remove unuse

* perf: change to file

---------

Co-authored-by: ibuler <ibuler@qq.com>
2024-05-11 11:22:01 +08:00
Bai
af1adc3baa perf: i18n Personal Settings -> All sub menu 2024-05-11 11:17:02 +08:00
ibuler
be214c84d1 merge: with dev 2024-05-10 18:10:18 +08:00
fit2bot
082614e7b0 perf: A wave of migration Japan, Taiwan China font (#13188)
Co-authored-by: feng <1304903146@qq.com>
2024-05-10 15:13:40 +08:00
Bai
94ee3169dc perf: While Asset amount (GLOBAL) > 5000 delay (20s) refresh user perm tree 2024-05-10 12:38:31 +08:00
wangruidong
83835747c5 perf: i18n 2024-05-10 10:06:44 +08:00
Bai
2a7b48c83d perf: i18n Personal Settings -> Profile 2024-05-09 15:26:38 +08:00
ibuler
a9068496d9 perf: 打算压缩 migratons 2024-05-09 11:01:01 +08:00
fit2bot
8bad88e798 perf: 优化账号相关翻译 (#13177)
Co-authored-by: feng <1304903146@qq.com>
2024-05-08 18:04:46 +08:00
fit2bot
92b6286feb fix: ldap更换OU后无法登录 (#13172)
* fix: ldap更换OU后无法登录

* perf: 翻译

---------

Co-authored-by: wangruidong <940853815@qq.com>
2024-05-08 14:23:20 +08:00
Bai
bce776bb63 fix: 修复 v2 升级到 v3 授权的手动登录系统用户显示空字符串的问题 2024-05-07 14:33:01 +08:00
吴小白
9f45eeeb1f fix: 优化构建缓存 2024-05-07 11:43:40 +08:00
wangruidong
dc39cbf037 fix: ldap定时任务未执行 2024-05-07 10:27:44 +08:00
吴小白
60110982f1 fix: 修正构建错误 2024-04-30 11:24:17 +08:00
ibuler
259204bfe2 Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-04-30 10:42:31 +08:00
wangruidong
c55e9679db perf: dashboard i18n 2024-04-30 10:31:22 +08:00
ibuler
c05a3c315a Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-04-29 15:07:25 +08:00
ibuler
dbdf586f5b add i18n 2024-04-29 15:06:53 +08:00
Bai
b1bd4db3e9 perf: Update poetry.lock 2024-04-29 11:47:18 +08:00
fit2bot
7806a13db5 feat: 默认数据库使用 PostgreSQL (#13088)
Co-authored-by: 吴小白 <296015668@qq.com>
Co-authored-by: Bryan <jiangjie.bai@fit2cloud.com>
2024-04-29 11:46:16 +08:00
Bai
928f564109 merge: into dev from v4: poetry lock file updated 2024-04-29 11:20:37 +08:00
Bai
328f718fe8 merge: into dev from v4: i18n file 2024-04-29 11:16:09 +08:00
Bai
cb4402c610 merge: into dev from v4 2024-04-29 11:07:43 +08:00
feng626
fbc4cb9046 Revert "perf: remove ticket model" (#13145)
This reverts commit 94567b86f0.
2024-04-28 18:26:49 +08:00
feng
94567b86f0 perf: remove ticket model 2024-04-28 18:02:57 +08:00
Bai
38175d6b57 fix: Fixed csv file export for 0 chars is not appear 2024-04-28 17:56:45 +08:00
ibuler
8aa707427f pref: remove user source choice 2024-04-28 16:01:09 +08:00
wangruidong
7408ed0f03 perf: add XPACKModelFieldsMixin 2024-04-28 15:58:14 +08:00
wangruidong
5135186961 perf: 社区版去掉一些东西 2024-04-28 15:58:14 +08:00
wangruidong
5be399616b fix: 华为交换机执行某些命令报错 2024-04-28 14:17:38 +08:00
ibuler
7d64b8419f Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-04-28 14:04:55 +08:00
ibuler
fad9249810 perf: 再次修改菜单 2024-04-28 14:04:28 +08:00
wangruidong
46a23afbec perf: 创建、更新用户时MFA选项根据系统设置选项进行动态渲染 2024-04-26 11:35:56 +08:00
Bai
8c4add241d perf: Support django shell run orm output SQL 2024-04-26 10:39:49 +08:00
Bai
feee92daee fix: Fixed issue of v2 to v3 Account missing su_from 2024-04-25 19:13:34 +08:00
Bai
42054c7989 feat: Support asset tree node drag to another one 2024-04-24 18:05:51 +08:00
wangruidong
bb4fbc3a1c perf: index page typo 2024-04-24 18:05:03 +08:00
Aaron3S
9b20b67039 fix: 修复执行快捷命令时 local_connection 没有被正确设置 2024-04-23 19:07:22 +08:00
Bai
2acc84dc69 fix: Adhoc support mariadb with module of mysql 2024-04-23 18:57:08 +08:00
ibuler
d7916a62f0 perf: 修改翻译 2024-04-23 18:11:05 +08:00
吴小白
3383d0f314 perf: 镜像添加 nc 命令 2024-04-23 16:53:25 +08:00
Bai
c9858b5a84 fix: 修改配置 RECEPTOR_ENABLED=False 默认 2024-04-23 16:52:44 +08:00
Bai
25e21b185f fix: 修改配置 RECEPTOR_ENABLED 2024-04-23 15:03:04 +08:00
ibuler
da27e1b93c perf: 修改翻译 2024-04-23 14:16:21 +08:00
Aaron3S
720231f692 feat: 修改 receptor 容器通信地址 2024-04-23 13:12:18 +08:00
jiangweidong
95f29a584e perf: 优化会话过期500问题 2024-04-23 13:11:41 +08:00
Bai
50cbb75b96 perf: 优化 Web 资产详情时根据 autofill 类型返回对应的 spec_info 信息 2024-04-23 13:09:40 +08:00
Bai
d418647774 fix: 修复仪表盘会话排序数量都是 1 的问题 2024-04-22 19:37:45 +08:00
Bai
6b5d4a4810 fix: 修复仪表盘会话排序数量都是 1 的问题 2024-04-22 19:32:42 +08:00
Eric
2cc67634a4 perf: 发布机支持平台连接参数 2024-04-22 16:40:41 +08:00
ibuler
99b24cad00 perf: add open sans font 2024-04-22 15:08:28 +08:00
fit2bot
52922088a9 feat: 优化代码结构,receptor开关,修改为 tcp 通信 (#13078)
* feat: 优化代码结构,receptor开关,修改为 tcp 通信

* fix: 修改导包路径

* fix: 修复错别字

* fix: 修改导包路径

* perf: 优化代码

* fix: 修复任务不执行的问题

* perf: 优化配置项名称

* perf: 优化代码结构

* perf: 优化代码

---------

Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2024-04-22 13:51:52 +08:00
jiangweidong
ef7329a721 perf: 优化频繁发送短信,将后端的频繁发送警告提示到页面上来提醒用户 2024-04-22 13:20:51 +08:00
Bai
ad0bc82539 perf: 优化 HUAWEI 设备判断逻辑 2024-04-22 13:19:32 +08:00
wangruidong
1ecf8534f6 perf: 兼容自定义平台的华为交换机执行命令 2024-04-22 13:19:32 +08:00
feng
94286caec4 fix: 命令输出取消长度限制 2024-04-22 10:31:35 +08:00
wangruidong
d4c8425218 fix: 快捷命令账号选择未按账号数量排序 2024-04-22 10:31:02 +08:00
fit2bot
59f9a4f369 fix: 获取 k8s 树取消异常 返回空 优化错误日志 (#13077)
Co-authored-by: feng <1304903146@qq.com>
2024-04-19 17:41:41 +08:00
Bai
64125051df fix: Org is None not has id attribute 2024-04-19 17:15:30 +08:00
Bai
660572a0ea fix: merge_delay_run 偶尔会出现 (2006, MySQL server has gone away 的报错) 2024-04-19 17:15:30 +08:00
ibuler
c0273dc698 perf: 去掉 js 报错 2024-04-19 11:21:27 +08:00
Bai
2782d4b5f1 fix: 修复 Celery Execution 任务保存失败导致 View 事务回滚的问题(首次登录用户修改密码失败) 2024-04-18 21:21:09 +08:00
ibuler
9dbdd6ac60 perf: change i18n 2024-04-18 20:12:01 +08:00
fit2bot
d4f9e30306 perf: translate (#13061)
Co-authored-by: feng <1304903146@qq.com>
2024-04-18 17:28:55 +08:00
Aaron3S
1b221d1cb6 fix: celery kwargs 参数解析问题 2024-04-18 17:06:09 +08:00
halo
fbf42ebbf9 perf: 更新客户端版本 2024-04-18 15:58:50 +08:00
Aaron3S
a0c4eae04c perf: 优化变量名, 防止和翻译方法冲突 2024-04-18 14:31:44 +08:00
Aaron3S
d1c293940a fix: 修复 celery task not found 的问题 2024-04-18 14:31:44 +08:00
Aaron3S
6f2d04a029 fix: 修复自动化任务重包含多个playbook runtime 目录被提前删除的问题 2024-04-18 14:10:34 +08:00
wangruidong
29dbc2e4d4 perf: 用户详情页-资产授权规则字段排序优化 2024-04-18 13:14:16 +08:00
wangruidong
e8d717d174 fix: 资产不存在指定用户的时候,没有用特权用户任务未执行 2024-04-17 20:17:24 +08:00
Aaron3S
138a3a2f46 fix: 修复 receptor_ctl 的并发安全问题 2024-04-17 18:58:20 +08:00
fit2bot
cade2cfa13 fix: 改密推送没有更新版本 (#13044)
Co-authored-by: feng <1304903146@qq.com>
2024-04-17 16:14:40 +08:00
wangruidong
ac988a76b4 fix: 重启服务禁用的定时任务会执行问题 2024-04-17 14:25:10 +08:00
ibuler
5a9815481a perf: 修改 token expire 逻辑 2024-04-17 14:23:56 +08:00
ibuler
f8953441e3 Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-04-17 14:09:25 +08:00
ibuler
5b41eddacc perf: 修改翻译 2024-04-17 13:49:43 +08:00
feng
bfbddfdead fix: 【账号改密】任务列表-详情:获取任务记录tab报错 2024-04-17 11:27:18 +08:00
Aaron3S
3cf526fdf3 fix: 修复测试根节点连接性 task 找不到的问题 2024-04-16 19:27:56 +08:00
Aaron3S
f6a4ee54d0 fix: 补充遗漏的网关参数 2024-04-16 19:27:56 +08:00
wangruidong
5755d281d7 perf: ldap测试登录前端不需要先测试连接 2024-04-16 18:13:45 +08:00
Aaron3S
1569524583 fix: 修复调用 ssh_ping 模块测试走网关的资产连接性失败 2024-04-16 17:14:30 +08:00
fit2bot
7ba876eb0a fix: 登录复核 审批后 刷新页面工单没清除 (#13031)
Co-authored-by: feng <1304903146@qq.com>
2024-04-16 14:04:18 +08:00
wangruidong
a31ea77b3c fix: 会话详情中文件传输显示有误 2024-04-16 10:38:05 +08:00
Aaron3S
44445a9482 fix: 修复一些因使用 receptor runner 造成的 bug 2024-04-15 19:42:36 +08:00
Bai
b8449a6efa fix: Export csv file can run program for windows 2024-04-15 19:42:03 +08:00
fit2bot
ccf6b00084 perf: 迁移文件和翻译 (#13024)
Co-authored-by: feng <1304903146@qq.com>
2024-04-15 17:57:47 +08:00
fit2bot
4423f842e0 fix: 历史账号数量计算错误 (#13023)
Co-authored-by: feng <1304903146@qq.com>
2024-04-15 17:17:11 +08:00
ibuler
a432af1a6d perf: 修改翻译 2024-04-15 16:34:02 +08:00
fit2bot
7660e3228e fix: 【账号推送】创建账号推送失败 (#13021)
Co-authored-by: feng <1304903146@qq.com>
2024-04-15 14:48:58 +08:00
wangruidong
482f5613e4 fix: 会话详情中文件传输显示有误 2024-04-15 14:42:18 +08:00
Bai
3cfb46f798 fix: Update jms-storage version 0.0.57 2024-04-15 14:34:58 +08:00
吴小白
f987515b89 perf: 优化发布机日志输出 2024-04-15 12:04:26 +08:00
fit2bot
f0d1279a42 perf: 修改user session 权限判断 (#13019)
Co-authored-by: feng <1304903146@qq.com>
2024-04-15 11:26:22 +08:00
halo
140118c9c6 perf: 更新copyright年份 2024-04-15 10:33:45 +08:00
wangruidong
637b9b1b15 perf: 申请工单-指定账号信息优化 2024-04-12 13:26:23 +08:00
Aaron3S
969069dde0 feat: receptor 中添加环境变量 2024-04-12 13:24:54 +08:00
Jiangweidong
84a71c8b3a perf: 火山引擎翻译 2024-04-12 13:24:32 +08:00
fit2bot
f3bd727c32 perf: 改密失败发给收件人 (#13009)
Co-authored-by: feng <1304903146@qq.com>
2024-04-12 11:53:47 +08:00
Aaron3S
2ac87e4ad6 feat: 修改重复的删除目录的逻辑 2024-04-12 11:35:51 +08:00
fit2bot
3740a4ad6f fix: 开启仅一台设置登录 退出失败 (#13007)
Co-authored-by: feng <1304903146@qq.com>
2024-04-12 11:16:58 +08:00
fit2bot
3bc8db7c3d fix: 改密任务记录搜索失败 (#13006)
Co-authored-by: feng <1304903146@qq.com>
2024-04-12 11:02:47 +08:00
fit2bot
f3d19ad9f4 fix: 【Lark】绑定时,一些报错信息优化 (#13004)
Co-authored-by: feng <1304903146@qq.com>
2024-04-12 10:39:49 +08:00
Bai
d2396afdd5 fix: User my assets sorted by connectivity did not take effect 2024-04-12 10:39:34 +08:00
Eric
43f9c07838 perf: 优化任务日志输出 2024-04-11 22:27:44 +08:00
Aaron3S
6052306c04 feat: ansible receptor kill 进程 2024-04-11 22:26:01 +08:00
Aaron3S
6a12bc39e9 feat: ansible receptor 适配文件上传 2024-04-11 22:22:29 +08:00
Bai
3f67b40975 fix: Export excel file can running instructions(csv no need deal) 2024-04-11 20:37:17 +08:00
fit2bot
0adc854721 perf: 优化审计台命令记录代码 (#12998)
Co-authored-by: feng <1304903146@qq.com>
2024-04-11 18:32:00 +08:00
fit2bot
ab76745a9f perf: 优化审计台仪表盘命令记录总数统计数据库和所有es数据 (#12997)
Co-authored-by: feng <1304903146@qq.com>
2024-04-11 18:29:02 +08:00
Aaron3S
574639d5e1 feat: 支持 ansible receptor private 方式认证, 支持运行完成工作空间清理 2024-04-11 17:51:22 +08:00
fit2bot
fa5d9d3df4 fix: 二级审批通过,一级审批人员查看不到工单 (#12993)
Co-authored-by: feng <1304903146@qq.com>
2024-04-11 16:35:00 +08:00
Aaron3S
0c31925131 feat: 设置默认的 ansible 配置文件 2024-04-11 15:10:39 +08:00
wangruidong
94b5d8b9e9 perf: 处理停止任务异常情况 2024-04-11 14:25:40 +08:00
Bai
bffc9f4b1d fix: Fix session Duration label 2024-04-11 11:00:46 +08:00
wangruidong
6b5d18222e fix: 全局组织-组织角色用户数量不对 2024-04-10 18:20:05 +08:00
Aaron3S
2b05fd5276 fix: 修复 ansible receptor playbook 无法执行的问题 2024-04-10 18:18:32 +08:00
fit2bot
3e46d72ba3 fix: 修复lark登录 Backend错误问题 (#12981)
Co-authored-by: feng <1304903146@qq.com>
2024-04-10 17:07:48 +08:00
feng
6502adb772 perf: 切换zh hant 2024-04-10 14:39:58 +08:00
fit2bot
a8112c86e3 feat: 全面修改 ansible 执行方式为 receptor (#12975)
* feat: 修复 receptor kill job  的问题

* feat: 全面修改 ansible 执行方式为 receptor

---------

Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2024-04-10 11:35:38 +08:00
wangruidong
8911c9c649 fix: Luna引导下载版本更新 2024-04-09 20:10:30 +08:00
Bai
3b70b4cf9e feat: LDAP User Auth support cache user_dn 2024-04-09 20:09:50 +08:00
wangruidong
1e0ea3905e fix: 忘记密码短信验证码过期 2024-04-09 20:05:34 +08:00
ibuler
2afabd65f9 Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-04-09 18:43:29 +08:00
ibuler
85cb80cbfe perf: remove gpt category 2024-04-09 18:43:06 +08:00
fit2bot
79f8480ae4 perf: core celery 不做报警 (#12970)
Co-authored-by: feng <1304903146@qq.com>
2024-04-09 17:07:48 +08:00
Bai
dec502e025 perf: Update user orgs roles 2024-04-09 16:52:11 +08:00
Aaron3S
c7b5cc7d89 feat: 暂时注释ansible runner write pid 逻辑 2024-04-09 16:46:56 +08:00
Aaron3S
bc76ce50e1 feat: 修改 receptor 启动参数 2024-04-09 15:59:14 +08:00
Bai
be90bf6b28 perf: Update user orgs roles 2024-04-09 15:43:27 +08:00
hzhfit2cloud
dfa68d1ca8 支持中文繁体 2024-04-09 15:18:36 +08:00
hzhfit2cloud
0237edf6c1 支持中文繁体 2024-04-09 15:18:36 +08:00
吴小白
6a87221c2a fix: 修正构建错误 2024-04-09 10:11:04 +08:00
ibuler
f0e87ef3f8 perf: rdp token 复用
perf: connection token
2024-04-08 19:03:47 +08:00
fit2bot
cd19a276c9 fix: 修复工单申请人过滤问题 (#12957)
Co-authored-by: feng <1304903146@qq.com>
2024-04-08 18:56:59 +08:00
jiangweidong
5ea4bba676 perf: 优化资产修改激活状态记录操作日志 2024-04-08 18:52:46 +08:00
吴小白
8500f186f6 perf: 优化镜像构建 2024-04-08 18:52:22 +08:00
Bryan
8c93d419fe Merge pull request #12956 from jumpserver/revert-12949-dev
Revert "feat: 支持中文繁体"
2024-04-08 18:05:45 +08:00
Bryan
2530827d07 Revert "feat: 支持中文繁体" 2024-04-08 18:04:38 +08:00
Bryan
8e54c446bc Merge pull request #12949 from elf168/dev
feat: 支持中文繁体
2024-04-08 18:02:31 +08:00
Bryan
3456e9ac5b Merge branch 'dev' into dev 2024-04-08 18:01:55 +08:00
fit2bot
689f858f97 feat: 支持 ansible 沙盒运行 (#12953)
* feat: 支持 ansible 沙盒运行

* feat: 修改 receptor sock 默认路径

* feat: 增加 adhoc 执行命令的 local connection 权限

---------

Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
Co-authored-by: Bai <baijiangjie@gmail.com>
2024-04-08 17:54:34 +08:00
jiangweidong
93eebd7876 perf: 依赖包去掉多余的内容 2024-04-08 17:38:49 +08:00
jiangweidong
82cc21ef59 perf: 增加火山引擎依赖包volcengine-python-sdk 2024-04-08 17:38:49 +08:00
wangruidong
e61f9efbf2 perf: 内置平台置顶 2024-04-08 16:33:44 +08:00
ibuler
97f60a61e0 perf: 修改翻译 2024-04-08 14:32:14 +08:00
Bai
45bac09dc7 perf: ROOT Org show orgs-and-roles in user-detail page 2024-04-08 14:00:57 +08:00
Eddie
989a970a7c 簡轉繁 2024-04-07 10:57:48 +00:00
Eddie
0296df0480 簡轉繁 2024-04-07 10:31:04 +00:00
wangruidong
9776d35140 perf: 批量上传添加权限校验 2024-04-07 15:49:41 +08:00
fit2bot
0aeea414f5 fix: 支持 SSO 用户登录时校验 (#12923)
Co-authored-by: feng <1304903146@qq.com>
2024-04-07 14:57:38 +08:00
Bai
9817154234 perf: 优化所有View默认排序规则(name) 2024-04-03 19:10:34 +08:00
Bai
39ae14877b perf: 优化所有View默认排序规则(name) 2024-04-03 18:33:00 +08:00
Bai
9c238a9147 perf: 优化所有View默认排序规则(name) 2024-04-03 18:12:15 +08:00
fit2bot
42d7e983e4 perf: 翻译 (#12937)
Co-authored-by: feng <1304903146@qq.com>
2024-04-03 16:53:08 +08:00
fit2bot
611d0b71e8 fix: 修复用户下线失败问题 SESSION_EXPIRE_AT_BROWSER_CLOSE 可配置 (#12936)
Co-authored-by: feng <1304903146@qq.com>
2024-04-03 16:41:37 +08:00
Bai
d78d55091c fix: 修复过滤用户组织角色不生效的问题 2024-04-03 15:52:52 +08:00
ibuler
3b8aab8c25 perf: 修改 export 使用的 serializer 2024-04-02 19:15:48 +08:00
Eric
2f16bdc4be perf: 优化针对低版本 ssh 版本的任务 2024-04-02 19:01:21 +08:00
wangruidong
22d70eb416 fix: 华为交换机执行快捷命令报错 2024-04-02 18:48:40 +08:00
wangruidong
afa1ba4f6b fix: 统一成模板 2024-04-02 17:21:47 +08:00
ibuler
39d3e5477c perf: migrate label model with the id 2024-04-02 16:47:38 +08:00
Bryan
08ac8b0857 Update README.md 2024-04-02 15:27:28 +08:00
ibuler
255817f5c6 perf: 修改翻译 2024-04-02 14:27:18 +08:00
ibuler
19b196eb1f Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-04-01 19:28:26 +08:00
ibuler
40db6485dd perf: change i18n 2024-04-01 19:28:08 +08:00
Bryan
b23e99885e Update README.md 2024-04-01 18:47:29 +08:00
Bryan
22fbbb92da Update README.md 2024-04-01 18:41:34 +08:00
Bryan
99c94166bb Update README.md 2024-04-01 18:38:59 +08:00
Bryan
169254a1c7 Update README.md 2024-04-01 18:22:11 +08:00
Bryan
bda6037b2a Update README.md 2024-04-01 18:21:35 +08:00
Bryan
1cf0b15528 Update README.md 2024-04-01 18:08:47 +08:00
Bryan
ff3865d1a7 Update README.md 2024-04-01 18:01:56 +08:00
Bryan
10435788bc Update README.md 2024-04-01 17:37:11 +08:00
Bai
02750e56d9 perf: Update README.md 2024-04-01 17:09:08 +08:00
ibuler
a1d53cba44 Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-03-29 19:01:01 +08:00
fit2bot
d499b94e04 fix: gpt 配置取消长度限制 (#12907)
Co-authored-by: feng <1304903146@qq.com>
2024-03-29 18:53:24 +08:00
Bai
b921ca8c9d perf: Update README.md 2024-03-29 18:46:11 +08:00
fit2bot
7a6468530f fix: 修复测试rdp资产可连接性时使用的python解释器路径不对问题 (#12902)
Co-authored-by: feng <1304903146@qq.com>
2024-03-29 16:09:42 +08:00
ibuler
29b38632e2 Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-03-29 15:30:31 +08:00
ibuler
56193f833f perf: change some translation 2024-03-29 15:29:04 +08:00
fit2bot
02893c2a2b perf: 翻译 (#12899)
Co-authored-by: feng <1304903146@qq.com>
2024-03-29 15:18:54 +08:00
Eric
4470b68de9 perf: 优化代码,避免录像下载异常 2024-03-29 11:37:47 +08:00
wangruidong
d3d89b0853 perf: 去掉工单重新打开状态 2024-03-29 11:06:51 +08:00
wangruidong
681cecc52b perf: 优化所有资源列表的默认排序规则 2024-03-29 10:48:54 +08:00
Bryan
2c8b977001 Update README.md 2024-03-28 19:05:42 +08:00
Bryan
4827fcf243 Update README.md 2024-03-28 19:02:39 +08:00
fit2bot
3336a4526b fix: 解决beat无法在redis-ssl下运行报错的问题 (#12893)
Co-authored-by: jiangweidong <weidong.jiang@fit2cloud.com>
2024-03-28 18:44:52 +08:00
feng
bca0863952 fix: 【标签】标签绑定资源api需校验正确的uuid 2024-03-28 18:43:00 +08:00
Bryan
9140ed6969 Update README.md 2024-03-28 18:01:16 +08:00
Bryan
24e7597c67 Update README.md 2024-03-28 17:59:37 +08:00
Bryan
833dd654b2 Update README.md 2024-03-28 17:57:02 +08:00
Bryan
ae74154071 Update README.md 2024-03-28 17:52:37 +08:00
Bryan
fb1631c1c7 Update README.md 2024-03-28 17:49:53 +08:00
Bryan
1c6832b9b2 Update README.md 2024-03-28 17:11:55 +08:00
Bryan
77d06037bb Update README.md 2024-03-28 17:05:12 +08:00
Bai
136e62b97d perf: Update README.md 2024-03-28 17:02:52 +08:00
Bryan
24c36087dd Update README.md 2024-03-28 16:33:24 +08:00
Bryan
73f9d721fe Update README.md 2024-03-28 16:10:32 +08:00
Bryan
792f8b2d1f Update README.md 2024-03-28 16:08:05 +08:00
Bryan
6871d194a8 Update README.md 2024-03-28 16:07:22 +08:00
Bryan
12c26e4551 Update README.md 2024-03-28 15:56:55 +08:00
fit2bot
bf1a29fac2 fix: 修改content type 权限 (#12890)
Co-authored-by: feng <1304903146@qq.com>
2024-03-28 15:22:26 +08:00
wangruidong
47ceaf967c fix: 查看作业命令任务执行结果添加用户隔离 2024-03-28 14:42:08 +08:00
ibuler
3426f650fa Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-03-28 14:40:31 +08:00
feng
00c5b3c0a2 fix: 【资产登录】属性为标签时,规则不生效 2024-03-28 14:36:17 +08:00
ibuler
f224dc241e perf: 修改翻译 2024-03-28 14:31:27 +08:00
Bryan
f6effb3c40 Update README.md 2024-03-28 14:21:02 +08:00
Bryan
6bbdcc060d perf: Update README.md 2024-03-28 11:36:24 +08:00
Bryan
14411d8c86 Update README.md 2024-03-28 11:05:04 +08:00
Bryan
cca2bfee4e perf: Update README.md 2024-03-28 10:42:01 +08:00
Bryan
c6cc68601b perf: Update README.md 2024-03-28 10:40:48 +08:00
Bai
06f33e4bdc perf: Update README.md 2024-03-27 18:15:29 +08:00
ibuler
616b38158a Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-03-27 17:51:12 +08:00
ibuler
c22f88ae42 perf: 修改翻译 2024-03-27 17:50:44 +08:00
fit2bot
3aeadc2f03 fix: 修复收藏文件夹中的资产时不时莫名的丢失 (#12886)
Co-authored-by: feng <1304903146@qq.com>
2024-03-27 16:04:16 +08:00
wangruidong
f0cbd77310 perf: 优化资产、网域、网关的操作体验 2024-03-27 16:02:08 +08:00
Bai
3bf401f029 perf: Update README.md 2024-03-26 19:34:06 +08:00
Bai
0b8b74b7a4 perf: Update README.md 2024-03-26 18:48:10 +08:00
Bai
e1bd0ee3d7 perf: Update README.md 2024-03-26 18:30:30 +08:00
fit2bot
f11852c60d perf: lark logo (#12878)
Co-authored-by: feng <1304903146@qq.com>
2024-03-26 17:46:16 +08:00
Bai
4b0d95ed0c perf: Update README.md 2024-03-26 17:40:22 +08:00
feng
8b870678df perf: 翻译 2024-03-26 17:34:27 +08:00
feng
470a088a9f feat: 拆分 feishu lark 2024-03-26 17:10:25 +08:00
Bai
fedb146025 perf: Update README.md 2024-03-26 16:57:52 +08:00
Bai
695a5eb470 perf: Update README.md 2024-03-26 16:53:04 +08:00
jiangweidong
ccd4f3ada4 fix: tcpdump想捕捉所有ip时,空ip被解析成0.0.0.0,导致捕捉不到的问题 2024-03-22 17:31:03 +08:00
ibuler
ae7a562b85 fix: ansible playbook render and run in localhost 2024-03-22 17:06:19 +08:00
wangruidong
be6d8566da perf: 去掉enabled字段默认值 2024-03-22 16:02:25 +08:00
ibuler
f6e4d909ff Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-03-22 10:17:36 +08:00
ibuler
6c0299b05a perf: 优化语言更改 2024-03-21 19:13:00 +08:00
wangruidong
f264bf03ff feat: 支持开启、关闭定时任务执行 2024-03-21 18:23:41 +08:00
fit2bot
02c2ee8c54 perf: 登录界面文案优化 (#12849)
Co-authored-by: feng <1304903146@qq.com>
2024-03-21 16:21:44 +08:00
Eric
d71374ca8a perf: 优化代码 2024-03-21 16:08:34 +08:00
Eric
0589f7fe33 perf: 支持发布机卸载远程应用 2024-03-21 16:08:34 +08:00
fit2bot
a5e8792092 perf: 翻译 (#12847)
Co-authored-by: feng <1304903146@qq.com>
2024-03-21 11:32:23 +08:00
fit2bot
15acfe84b0 perf: 改密记录可查看密文 (#12821)
* perf: 改密记录可查看密文

* perf: 自动化任务错误处理

* feat: 改密记录可批量重试 新增更多过滤选项

* perf: 改密任务失败添加消息通知

---------

Co-authored-by: feng <1304903146@qq.com>
2024-03-21 11:05:04 +08:00
jiangweidong
08b483140c fix: 解决FTP审计文件无法清理的问题 2024-03-20 19:06:30 +08:00
Bai
cf1e048328 perf: 优化 Session 支持 duration 字段 2024-03-20 15:51:33 +08:00
Bai
fb02095568 perf: Remove settigns.LITE 2024-03-19 19:22:29 +08:00
Bai
d5675ce498 perf: update poetry.lock 2024-03-19 18:10:02 +08:00
ibuler
ccbb860de1 Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-03-19 17:54:00 +08:00
ibuler
5e104a3dd2 perf: 修改翻译 2024-03-19 17:53:29 +08:00
Bai
51890c94cc perf: 对ce、ee依赖库进行分组 2024-03-19 16:35:15 +08:00
Bai
06259a2d63 perf: 对ce、ee依赖库进行分组 2024-03-19 16:31:45 +08:00
wangruidong
a6228f145d fix: 作业命令用户隔离执行 2024-03-19 11:25:46 +08:00
ibuler
b6ab3df038 perf: 优化 celery task log 权限控制 2024-03-18 19:00:04 +08:00
ibuler
e9f591b33b perf: 优化 ops task 2024-03-18 18:54:48 +08:00
wangruidong
90d4914280 perf: 删除job-execution/asset-detail接口 2024-03-18 18:54:27 +08:00
wangruidong
80a506e99f perf:LDAP报错信息不对 2024-03-18 15:56:57 +08:00
Eric
d8a891a7d7 perf: 支持发布机仅初始化配置 2024-03-18 15:52:42 +08:00
wangruidong
d71c41e384 perf: 提高短信发送任务优先级 2024-03-18 15:50:00 +08:00
fit2bot
bb27ff7f8a fix: 批量上传文件关闭作业中心配置后上传会报错 (#12814)
* fix: 批量上传文件关闭作业中心配置后上传会报错

* fix: format

---------

Co-authored-by: wangruidong <940853815@qq.com>
Co-authored-by: Bai <baijiangjie@gmail.com>
2024-03-18 15:49:13 +08:00
wangruidong
0671e56d65 fix: Another user can use this job id to spoof both the file name and
its contents
2024-03-18 14:22:17 +08:00
ibuler
d04ac09e82 perf: 修改 groups api 2024-03-15 19:18:49 +08:00
feng
73a4ce0943 perf: 优化user secret key 处理逻辑 2024-03-15 11:39:59 +08:00
fit2bot
902fac61e9 perf: playbook api 去掉多余的rbac_perms (#12813)
Co-authored-by: feng <1304903146@qq.com>
2024-03-14 14:27:31 +08:00
wangruidong
dcd7f9f7e6 perf: 支持终断批量快捷命令执行的任务 2024-03-14 14:20:47 +08:00
Bai
80035e7cb6 fix: 修复 Playbook 脚本文件问题 2024-03-14 10:26:30 +08:00
Eric
e2d14f5e4b perf: 支持 razor 的监控 2024-03-13 19:36:26 +08:00
ibuler
cae9f03892 perf: 修改 platform 翻译 2024-03-13 18:40:35 +08:00
刘瑞斌
a27cc22596 chore: edit readme_en 2024-03-13 15:47:04 +08:00
ibuler
72362274ce perf: 优化 console_orgs 的选择问题 2024-03-13 10:58:30 +08:00
feng
cfb1d306a3 perf: 优化user session 逻辑 2024-03-13 10:58:03 +08:00
ibuler
bffcd6107c perf: 修改翻译 2024-03-12 18:47:44 +08:00
wangruidong
e5cb99d682 perf: 登录页面排版优化 2024-03-12 17:05:03 +08:00
ibuler
056e0c816b perf: 修改翻译 2024-03-12 17:04:26 +08:00
fit2bot
cbd812ab5f feat: 自定义footer (#12795)
Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
2024-03-12 14:36:20 +08:00
ibuler
ea67312877 perf: 修改翻译 2024-03-11 19:20:18 +08:00
Bai
d0117b5a91 perf: 优化邮箱校验逻辑 2024-03-11 18:41:50 +08:00
jiangweidong
afe3777895 perf: 减少一次邮箱的判断 2024-03-11 18:41:50 +08:00
jiangweidong
e45676edc4 perf: 优化获取邮箱后缀代码位置 2024-03-11 18:41:50 +08:00
jiangweidong
60e4b19d07 perf: 优化三方登录创建的用户邮箱会校验,非法邮箱会重置成默认格式 2024-03-11 18:41:50 +08:00
Bai
86d76c53d6 perf: 优化 MongoDB 数据库支持 authSource 认证数据库配置 2024-03-11 18:27:57 +08:00
fit2bot
b50f1a662d fix: 优化手动输入的账号username遵循登录资产的ACL控制 (#12774)
Co-authored-by: feng <1304903146@qq.com>
2024-03-11 15:10:51 +08:00
fit2bot
b3e4c10bc2 perf: 用户个人设置操作记录翻译 (#12788)
Co-authored-by: feng <1304903146@qq.com>
2024-03-11 15:10:15 +08:00
ibuler
327cdc8604 perf: 修改翻译 2024-03-11 14:33:14 +08:00
Bai
ba11e646d6 fix: 修复 redis lock 导致 celery 异步任务卡住不执行的问题 2024-03-11 14:12:18 +08:00
wangruidong
6de524c797 perf: 不满足自动登录勾选条件时从禁用修改为隐藏 2024-03-08 18:35:18 +08:00
Bai
2e067a7950 perf: 优化升级 django-celery-beat==2.6.0; 删除之前修复的 celery-beat 的代码 2024-03-08 17:47:07 +08:00
fit2bot
a3658136e2 feat: 支持配置资产连接默认打开方式 (#12781)
Co-authored-by: feng <1304903146@qq.com>
2024-03-08 10:47:18 +08:00
Bai
4108415894 perf: 优化 issue 提交模版 2024-03-08 10:33:04 +08:00
Bai
ae2fdff9a7 perf: 优化 issue 提交模版 2024-03-07 18:58:28 +08:00
ibuler
6f37cc4d01 merge: with remote 2024-03-07 18:36:03 +08:00
ibuler
003dd49ed6 perf: 修改翻译 2024-03-07 18:33:13 +08:00
Bai
46d57f02e7 perf: i18n settings-systemtask done. 2024-03-07 17:29:03 +08:00
Bai
30915a93e5 perf: i18n settings-tools done. 2024-03-07 16:15:09 +08:00
Bryan
b9422c096e fix: 修复连接 Token 时报错的问题((1139, "Got error empty (sub)expression from regexp")) (#12768) 2024-03-07 12:37:33 +08:00
fit2bot
b3e73605b0 perf: 创建网域时资产不用必选 (#12766)
Co-authored-by: feng <1304903146@qq.com>
2024-03-07 11:20:40 +08:00
Bai
c64480dc33 perf: i18n settings-Interface not done. 2024-03-06 17:49:42 +08:00
ibuler
4a9b1aff96 Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-03-06 17:08:31 +08:00
ibuler
542e94ec9c perf: 修改翻译 2024-03-06 17:08:24 +08:00
fit2bot
9341558f61 perf: translate (#12764)
Co-authored-by: feng <1304903146@qq.com>
2024-03-06 16:51:07 +08:00
fit2bot
6c89349194 perf: 优化会话 命令记录 分片删除 (#12763)
Co-authored-by: feng <1304903146@qq.com>
2024-03-06 15:22:55 +08:00
jiangweidong
670eac49b6 perf: 优化oauth2登录未激活用户时,会重复跳转登录问题 2024-03-06 15:03:58 +08:00
feng
a7a099f290 perf: 支持配置文件配置限制的最大数量 2024-03-06 14:53:48 +08:00
feng
5157514c62 perf: 优化会话清理任务使用分片删除过期的会话和命令 2024-03-06 14:50:19 +08:00
jiangweidong
533d2ab98a perf: 优化自定义短信测试总是成功的问题 2024-03-06 14:32:58 +08:00
ibuler
6ea13b2c0d perf: 修改翻译 2024-03-05 19:01:44 +08:00
wangruidong
40730b741d fix: 个别页面搜索不生效的问题 2024-03-05 11:21:20 +08:00
ibuler
e57512f4fe perf: 添加配置支持 Lite 2024-03-04 19:18:26 +08:00
ibuler
348f67f4a4 Merge branch 'v4' of github.com:jumpserver/jumpserver into v4 2024-03-04 15:46:18 +08:00
ibuler
83bdf07600 perf: 修改翻译 2024-03-04 15:42:14 +08:00
fit2bot
dfe4eddbbc perf: translate (#12746)
Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
2024-03-04 14:44:19 +08:00
ibuler
1caed59f76 merge: with remote 2024-03-04 14:03:05 +08:00
Bai
6db4e88a2c perf: 更新 poetry.lock 文件 2024-03-04 11:32:04 +08:00
halo
786cb23f98 perf: 优化ansible_winrm执行超时时间 2024-03-01 17:02:48 +08:00
fit2bot
133daeb664 perf: translate (#12739)
Co-authored-by: feng <1304903146@qq.com>
2024-03-01 15:42:21 +08:00
fit2bot
518ae3fa09 perf: 自动化资产探活支持Telnet方式 (#12728)
Co-authored-by: jiangweidong <weidong.jiang@fit2cloud.com>
2024-03-01 15:05:34 +08:00
ibuler
18707d365b perf: 优化标签搜索资产使用的关系 2024-03-01 15:05:01 +08:00
wangruidong
a4a8d1ecf0 perf: modify menu translate 2024-03-01 13:53:29 +08:00
feng
f0ffa2408d fix: 哨兵redis 密码里有@ 无法连接 2024-02-29 16:19:33 +08:00
jiangweidong
b557e264bc fix: 账号备份选择SFTP有多个时,重复编码password会导致任务异常 2024-02-29 16:10:21 +08:00
ibuler
88a08a74f7 perf: 修改翻译 2024-02-29 14:57:38 +08:00
wangruidong
457d2b2359 fix: 作业管理资产根据标签过滤获取不对 2024-02-28 15:50:46 +05:00
feng
c9e12a3027 perf: Modify some translations 2024-02-28 18:23:10 +08:00
fit2bot
82aa4a65ab perf: account translate (#12723)
Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
2024-02-28 17:32:29 +08:00
ibuler
d46237f1bf merge: with remote 2024-02-28 16:32:46 +08:00
ibuler
1744f94910 perf: 修改翻译 2024-02-28 16:27:41 +08:00
Bai
8ebc99339b perf: 更新 poetry.lock 文件 2024-02-28 07:22:16 +05:00
wangruidong
e71e335f5c fix: 终断任务时接口报错 2024-02-27 16:22:06 +05:00
Bai
e308812429 perf: i18n settings-Security done. 2024-02-27 19:20:48 +08:00
fit2bot
2328ef0b0c perf: account translate (#12719)
Co-authored-by: feng <1304903146@qq.com>
2024-02-27 19:17:40 +08:00
Bai
000c5770f2 perf: i18n settings-RemoteApp done. 2024-02-27 17:13:59 +08:00
Bai
9e1a3598ab perf: i18n settings-Components done. 2024-02-27 16:43:44 +08:00
Bai
7268f60343 perf: i18n settings-Storage done. 2024-02-27 14:59:22 +08:00
Bai
c8b274031f perf: i18n settings-Auth done. 2024-02-27 11:25:42 +08:00
masix
7517e77af9 指定lxml版本为4.9.3
修复SAML2认证回调/core/auth/saml2/callback/时偶发出现http 502错误
2024-02-27 08:16:10 +05:00
wangruidong
889cdca3b0 fix: 操作日志资源类型搜索无效 2024-02-26 16:36:05 +05:00
wangruidong
4cfd1bc047 fix: 远程应用列表接口报错 2024-02-26 16:03:34 +05:00
Eric
fc0891ceee perf: 会话生命周期日志翻译 2024-02-26 15:33:11 +05:00
feng
cea16fc41f perf: 命令上传 取消input长度限制 2024-02-26 14:29:13 +05:00
fit2bot
4b7c0b8437 perf: 用户列表翻译超级管理员,组织管理员 2024-02-26 14:27:19 +05:00
Bai
10394dbb1c perf: i18n settings-Auth done. 2024-02-26 16:53:40 +08:00
Bai
859bb91fc7 perf: i18n settings-Features done. 2024-02-26 15:47:05 +08:00
fit2bot
09432b01a7 fix: 自动化任务密钥为 None 报错 (#12709)
Co-authored-by: feng <1304903146@qq.com>
2024-02-26 14:47:19 +08:00
wangruidong
d7f8ba58ad perf: 作业日志添加任务类型 2024-02-26 13:43:49 +08:00
fit2bot
0fd0d33704 perf: i18n settings-notifications done. (#12702)
Co-authored-by: Bai <baijiangjie@gmail.com>
Co-authored-by: Bryan <jiangjie.bai@fit2cloud.com>
2024-02-23 18:09:18 +08:00
fit2bot
ad0f489834 perf: translate (#12701)
Co-authored-by: feng <1304903146@qq.com>
2024-02-23 17:52:16 +08:00
fit2bot
b1fa870de7 perf: 工作台相关翻译 (#12700)
Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
2024-02-23 17:22:47 +08:00
Bai
7c5e2ae8ea perf: i18n settings-org done. 2024-02-23 15:17:17 +08:00
Bai
c0e4065a45 perf: i18n settings-basic done. 2024-02-23 14:31:09 +08:00
吴小白
f660c38d80 fix: 添加 psycopg2 缺失依赖 2024-02-22 19:08:18 +08:00
fit2bot
35448eea9f perf: 翻译 (#12690)
Co-authored-by: feng <1304903146@qq.com>
2024-02-22 17:46:12 +08:00
wangruidong
edf0630cef fix: 用户列表导出优化 2024-02-22 17:44:56 +08:00
wangruidong
430f45a3ec perf: permissions i18n modify 2024-02-22 17:36:45 +08:00
Bai
71b6fd5326 perf: 修改翻译 2024-02-22 17:29:46 +08:00
wangruidong
c4342567ba fix: 远程应用README国际化 2024-02-22 16:11:43 +08:00
fit2bot
d4e53be7ce perf: 修改core celery 组件状态 (#12684)
Co-authored-by: feng <1304903146@qq.com>
2024-02-22 14:47:26 +08:00
wangruidong
d4721e90d5 fix: LDAP用户导入会超时 2024-02-22 11:37:30 +08:00
jiangweidong
bb6c6c8f6a perf: jms-storage==0.0.56 2024-02-22 11:36:33 +08:00
wangruidong
251db733b2 perf: i18n modify 2024-02-22 10:30:15 +08:00
fit2bot
753ab77c46 perf: 关闭页面等待ws的最大重连时间改为6秒 (#12677)
Co-authored-by: feng <1304903146@qq.com>
2024-02-21 17:51:06 +08:00
jiangweidong
ba127c506d feat: 支持工单链接直接免密审批 2024-02-21 11:39:01 +08:00
ibuler
d799725b8a perf: 修改翻译 2024-02-20 19:01:32 +08:00
fit2bot
c21ca70158 perf: 账号收集添加资产名称模糊搜索 (#12673)
Co-authored-by: feng <1304903146@qq.com>
2024-02-20 18:42:11 +08:00
wangruidong
135fb7c6f9 perf: 终断批量快捷命令执行的任务 2024-02-20 15:09:39 +08:00
feng
f592f19b08 perf: 自动化任务按优先级默认排序 2024-02-19 18:19:14 +08:00
fit2bot
dce68cd011 perf: 授权用户不显示组件用户 (#12664)
Co-authored-by: feng <1304903146@qq.com>
2024-02-19 14:48:31 +08:00
fit2bot
d7b1903fb7 perf: 修改登录页面定期 check 的时间 (#12660)
Co-authored-by: feng <1304903146@qq.com>
2024-02-19 10:57:40 +08:00
feng
6e506e3146 fix: 【登录超时】修复登录页面提示 <登录超时,请重新登录> 问题 2024-02-19 10:21:13 +08:00
fit2bot
58d30e7f85 perf: 记录会话活动日志 (#12523)
* perf: 更新会话生命周期日志

* perf: 优化错误原因

* perf: 增加错误类型

---------

Co-authored-by: Eric <xplzv@126.com>
2024-02-06 18:28:31 +08:00
ibuler
9d80aed468 perf: 修改一些翻译 2024-02-06 15:51:39 +08:00
wangruidong
2062778ab8 fix: 资产登录未发送提醒 2024-02-06 15:24:41 +08:00
wangruidong
eaca296bd0 perf: 支持改密日志记录保留天数 2024-02-05 18:09:45 +08:00
Bai
1051c6af04 fix: 修复用户登录后仪表盘显示403的问题(用户在非Default组织下是组织管理员权限) 2024-02-05 16:52:09 +08:00
老广
96f92f0908 Merge pull request #12643 from jumpserver/pr@v4@perf_i18n
perf: 优化翻译
2024-02-05 14:18:48 +08:00
ibuler
314e4301f3 perf: 修改翻译 2024-02-05 14:13:07 +08:00
wangruidong
aa69353474 perf: 支持远程应用描述文案的国际化 2024-02-05 10:46:47 +08:00
ibuler
b284bb60f5 merge: with dev 2024-02-05 09:49:43 +08:00
ibuler
f99396ec50 perf: 修改翻译 2024-02-04 19:31:51 +08:00
jiangweidong
d1f31f078b perf: 账号支持批量更新 2024-02-04 17:28:31 +08:00
ibuler
be80663436 perf: 优化日志显示避免太长 2024-02-04 17:23:37 +08:00
wangruidong
1ae363d6bd perf: MFA认证App支持自定义下载二维码 2024-02-04 17:19:04 +08:00
fit2bot
31b0d345ad perf: 使用新的钉钉登录接口 (#12635)
* perf: 暂存

* perf: 使用新的钉钉登录接口

---------

Co-authored-by: halo <wuyihuangw@gmail.com>
2024-02-04 17:05:11 +08:00
Bai
cabda0a32f perf: 修改依赖 2024-02-04 17:02:07 +08:00
ibuler
886cf6ed1f perf: 暂存 2024-02-04 16:46:33 +08:00
wangruidong
f606dd8920 perf: 增加国际电话区号选择 2024-02-04 14:52:15 +08:00
wangruidong
973df0360c fix: 控制台-仪表盘会话用户,资产排名不对 2024-02-04 11:42:58 +08:00
wangruidong
f9f1d96674 fix: 资产过期消息提示发送失败 2024-02-04 11:42:15 +08:00
ibuler
74dd6e97a2 perf: 优化翻译 2024-02-04 10:23:54 +08:00
feng
8cb74976e1 perf: 优化用户session 会话过期 2024-02-02 17:52:50 +08:00
fit2bot
46fde2f1aa perf: 整合翻译 (#12630)
* stash

* stash

* perf: 整合翻译

* perf: 整理了一遍

---------

Co-authored-by: ibuler <ibuler@qq.com>
2024-02-01 16:02:31 +08:00
wangruidong
279109c9a6 perf: 使用winrm协议批量上传文件 2024-01-30 11:12:24 +08:00
jiangweidong
8c7ba4a497 perf: 优化工单审批时间不准确问题 2024-01-29 16:40:03 +08:00
feng
9cc048267b feat: 批量测试账号可连接性 2024-01-29 16:39:24 +08:00
wangruidong
78d0e3f485 perf: 使用winrm协议执行快捷命令 2024-01-29 11:21:30 +08:00
wangruidong
8aefacd7ed perf: 安全模式返回授权的资产 2024-01-25 17:07:37 +08:00
ibuler
ef8db68db1 perf: 优化组织刷新资源 2024-01-25 14:48:15 +08:00
fit2bot
00256f86df perf: OAuth2协议获取token支持配置json或者data (#12602)
* perf: OAuth2协议获取token支持配置json或者data

* perf: 优化注释

---------

Co-authored-by: jiangweidong <weidong.jiang@fit2cloud.com>
2024-01-25 14:00:13 +08:00
ibuler
77569c554b perf: 去掉资产查询的默认排序 2024-01-25 13:49:49 +08:00
jiangweidong
7897462e32 perf: jms_storage==0.0.55 2024-01-25 13:48:34 +08:00
Bai
aee11827c4 feat: 修改 jms-storage 0.0.55 2024-01-25 11:48:16 +08:00
fit2bot
a6bf592046 perf: 翻译 (#12600)
Co-authored-by: feng <1304903146@qq.com>
2024-01-24 19:50:05 +08:00
Bryan
1dea424104 Revert "fix: 修复 OAuth2 认证时 POST 方式获取 access_token API 使用 json 传递数据" 2024-01-24 18:23:29 +08:00
Bai
1f5554d945 fix: 修复 OAuth2 认证时 POST 方式获取 access_token API 使用 json 传递数据 2024-01-24 16:53:11 +08:00
ibuler
0303408be8 perf: 优化授权树的刷新,同步解决同步异步的问题 2024-01-24 16:44:19 +08:00
fit2bot
f5802ace02 fix: oracle 用户是sysdba类型的 改密推送 验证账号可连接性失败 (#12596)
Co-authored-by: feng <1304903146@qq.com>
2024-01-24 16:39:43 +08:00
fit2bot
8bde45d9dc perf: 改密添加最后汇总信息 (#12595)
Co-authored-by: feng <1304903146@qq.com>
2024-01-24 16:20:44 +08:00
ibuler
e8bbc44647 perf: 优化授权的资产,速度快 10 倍 2024-01-24 16:00:18 +08:00
ibuler
34aa48d18c fix: 修复定时检测用户是否活跃任务无法执行的问题 2024-01-23 09:29:00 +00:00
jiangweidong
7aa6613e69 perf: 更新jms-storage版本 2024-01-23 03:42:59 +00:00
fit2bot
503034299e fix: windows 收集账号 收集失败 (#12583)
Co-authored-by: feng <1304903146@qq.com>
2024-01-23 11:07:56 +08:00
fit2bot
0c74e92bfb perf: 优化 labels 在 json field 中的筛选 (#12577)
* perf: 优化 labels 在 json field 中的筛选

* perf: 修改 labels 搜索

---------

Co-authored-by: ibuler <ibuler@qq.com>
2024-01-21 23:36:18 -04:00
wangruidong
3853d0bcc6 fix:绑定的端点Default下载RDP文件中的地址是空的 2024-01-19 10:38:52 +00:00
feng
cd0348cca1 perf: 优化任务列表执行时间 性能快了10倍 2024-01-19 10:33:41 +00:00
Eric
ce94348d45 perf: ignore some err 2024-01-19 12:56:46 +08:00
Eric
f74f8b7d8c perf: 优化 delay_run 执行 2024-01-19 12:56:46 +08:00
Bai
dc79346bdc perf: 修复 Count 时没有去重的问题 2024-01-19 12:54:14 +08:00
wangruidong
37a0d831da perf:ldap sync add no user msg 2024-01-18 10:31:53 +00:00
feng
e509568fe5 fix: redis 密码有特殊字符celery beat启动失败 2024-01-18 10:30:00 +00:00
fit2bot
2c2c3eb21a perf: 翻译 (#12564)
Co-authored-by: feng <1304903146@qq.com>
2024-01-17 19:18:00 +08:00
fit2bot
18681d1f50 perf: 连接k8s 添加错误处理 (#12563)
Co-authored-by: feng <1304903146@qq.com>
2024-01-17 18:41:29 +08:00
feng
86ef984c02 perf: 查看授权用户 不展示组件用户 2024-01-17 03:13:39 -07:00
feng
e4d8ce097a fix: 创建资产失败 2024-01-17 18:05:30 +08:00
Eric
ae68241812 perf: 修复录像在线播放问题 2024-01-17 00:02:00 -07:00
fit2bot
e2a3c360ea perf: 修改一次性翻译长度 (#12557)
Co-authored-by: feng <1304903146@qq.com>
2024-01-17 11:38:58 +08:00
fit2bot
9968617758 perf: 修改优化结构 (#12554)
* perf: 修改优化结构

* perf: 修改结构

---------

Co-authored-by: ibuler <ibuler@qq.com>
2024-01-17 11:08:39 +08:00
feng
13d4177531 fix: 工单批量更新没有权限 2024-01-16 20:01:36 -07:00
feng
1cec27ed70 perf: 添加进度条 2024-01-17 10:36:45 +08:00
feng
641e75a905 fix: 用户组列表 用户数量不准确 2024-01-16 02:19:36 -07:00
feng
f0dfff0625 feat: gpt translate 2024-01-16 16:19:37 +08:00
ibuler
a2d6e41816 perf: labels getter and setter for inherite model 2024-01-16 15:00:46 +08:00
wangruidong
6cd3672604 fix: sync LDAP notification error 2024-01-15 23:08:55 -07:00
Bai
3c3c1499b7 perf: Add requirement for exchangelib==5.1.0 2024-01-15 22:55:58 -07:00
fit2bot
e29e51121d perf: 优化账号版本计算策略 (#12547)
Co-authored-by: feng <1304903146@qq.com>
2024-01-16 11:33:21 +08:00
ibuler
fabee37e9e fix: user permed type tree recurse root node 2024-01-15 19:50:14 +08:00
ibuler
2994ea6f68 perf: revert asset labels api 2024-01-15 19:49:55 +08:00
fit2bot
fdaec3c959 perf: Modify i18n for settings module. (#12543)
Co-authored-by: Bai <baijiangjie@gmail.com>
2024-01-15 04:41:50 -07:00
ibuler
fcb4c6a972 perf: Add sort json script 2024-01-15 17:12:13 +08:00
ibuler
513974bbed perf: remove some category 2024-01-15 16:38:16 +08:00
halo
644eada8a1 fix: 解决openssh低版本时测试可连接失败问题 2024-01-15 10:39:34 +08:00
wangruidong
000a3038e1 fix: 终端输入错误的MFA无日志记录 2024-01-14 18:32:33 -08:00
ibuler
9c8635b230 perf: 优化授权资产 api,很多资产也不怕 2024-01-14 18:30:57 -08:00
wangruidong
e428eb351b feat: 同步ldap用户消息通知 2024-01-12 11:17:23 +05:00
fit2bot
1275087f19 perf: 添加LC_ALL环境变量C.UTF-8 解决ansible无法初始化首选语言环境问题 (#12530)
Co-authored-by: feng <1304903146@qq.com>
2024-01-12 11:21:27 +08:00
feng
311c01242b fix: 分页后排序失效 2024-01-12 10:18:05 +08:00
ibuler
bab5b67c52 fix: 修复自定义 applet 导入的 bug 2024-01-11 15:41:10 +05:00
ibuler
00d6effd69 pref: stash 2024-01-11 18:33:52 +08:00
fit2bot
3eb0b768a6 fix: 改密账号更新日期没有更新 (#12524)
Co-authored-by: feng <1304903146@qq.com>
2024-01-11 16:57:23 +07:00
ibuler
c06c68d5da perf: 统一翻译 2024-01-11 14:40:44 +08:00
fit2bot
6dcc74a388 fix: 账号备份只导出一条记录 (#12517)
Co-authored-by: wangruidong <940853815@qq.com>
2024-01-10 18:52:45 +08:00
ibuler
2b15fc5e8b perf: 兼用处理一下 tree 2024-01-10 11:23:16 +05:00
wangruidong
df655f304a fix: 登录日志不显示 2024-01-10 11:21:29 +05:00
Bai
25223719cb perf: 支持配置 RADIUS_ATTRIBUTES 属性 2024-01-09 18:36:16 +08:00
jiangweidong
814dbeb749 fix: 解决手机号加密导致忘记密码判断总是失败问题 2024-01-08 16:24:28 +05:00
jiangweidong
630bb56601 fix: 解决手机号加密导致忘记密码判断总是失败问题 2024-01-08 16:24:28 +05:00
ibuler
496b72aaee perf: 优化导入错误 2024-01-08 17:44:49 +08:00
吴小白
b57e943990 build(deps): 更新依赖版本 2024-01-08 17:03:08 +08:00
jiangweidong
b4c1dd2944 perf: slack消息解析优化-mistune升级 2024-01-08 12:35:26 +05:00
jiangweidong
9ede3670a7 perf: 邮箱支持exchange协议 2024-01-08 12:35:01 +05:00
Eric
2a29cd0e70 perf: 使用 nginx 处理静态资源 2024-01-03 17:20:14 +08:00
ibuler
15ac81a422 perf: 优化标签绑定,仅绑定到资产上 2024-01-03 17:08:15 +08:00
fit2bot
eb5a53b91b perf: 翻译 (#12487)
Co-authored-by: feng <1304903146@qq.com>
2024-01-03 11:25:45 +08:00
feng
4dd72b109f feat: 历史账号定期删除 可设置保留数量 2024-01-03 07:52:24 +05:00
fit2bot
2fcbfe9f21 perf: 优化 tree nodes 避免太慢 (#12472)
* perf: 优化 tree nodes 避免太慢

perf: 优化大量资产上的资产数生成比较慢

perf: 优化节点树

perf: 修改 tree nooooooooodes

perf: 优化一些 api 比较大的问题

perf: 优化平台 api

perf: 分页返回同步树

perf: 优化节点树

perf: 深度优化节点树

* perf: remove unused config

---------

Co-authored-by: ibuler <ibuler@qq.com>
2024-01-02 16:11:56 +08:00
wangruidong
e80a0e41ba fix: 同步LDAP用户时,用户组只移除LDAP同步过来的 2024-01-02 12:04:25 +05:00
吴小白
7cdba3ef38 build(deps): bump pyfreerdp from 0.0.1 to 0.0.2 2024-01-02 08:13:28 +05:00
feng
2d6e815b3d fix: 如 Redis密码信息包含特殊字符时,服务启动失败 2024-01-02 08:11:12 +05:00
Bryan
38642024be Update README.md (#12463) 2023-12-29 16:23:02 +08:00
faming.zhou
257ee205ac fix: UNION 的类型 character varying 和 uuid 不匹配 2023-12-29 12:14:31 +05:00
feng
4b961a626b perf: 用户组列表中的用户添加 is_service_account 属性 2023-12-29 11:11:19 +05:00
wangruidong
653a6752b6 fix: 用户组删除用户权限问题 2023-12-29 13:36:39 +08:00
wangruidong
32255c6077 fix: 更新用户组权限问题 2023-12-29 07:42:10 +05:00
feng626
7a708156ee Revert "fix: 特定key paramiko 测试可连接性失败"
This reverts commit a4d0e3fd17.
2023-12-28 14:34:42 +05:00
Bai
b72a446bbd fix: 修复label关联用户时不显示服务账号 2023-12-28 14:21:38 +05:00
feng
219fad9b62 fix: 账号备份密码如 t08\x08fIE 备份失败 2023-12-28 13:53:57 +05:00
Bai
6c1c8b241e perf: 优化资产管理中的标签权限位不显示 2023-12-28 15:27:20 +08:00
feng
a4d0e3fd17 fix: 特定key paramiko 测试可连接性失败 2023-12-27 13:13:03 +05:00
fit2bot
af44ffab0a fix: 资产账号不存在时 同步删除资产账号任务报错 (#12437)
Co-authored-by: feng <1304903146@qq.com>
2023-12-27 14:39:11 +08:00
fit2bot
a09b7b29e2 fix: 【账号收集】账号收集任务,关闭同步到资产时,只收集了一个资产的账号,其他资产的账号未收集 (#12428)
Co-authored-by: feng <1304903146@qq.com>
2023-12-26 16:05:28 +08:00
wangruidong
8f67922c80 perf: 资产登录提醒和用户登录提醒能显示用户名称 2023-12-26 12:54:28 +05:00
feng
f1db5d6f44 perf: 重写GenericForeignKey 2023-12-26 12:51:09 +05:00
fit2bot
33ea5eb41f perf: 资产可以通过address 排序 (#12427)
Co-authored-by: feng <1304903146@qq.com>
2023-12-26 14:23:04 +08:00
fit2bot
48bcbc6c53 perf: 翻译 (#12426)
Co-authored-by: feng <1304903146@qq.com>
2023-12-26 14:16:11 +08:00
Bai
3e090eb701 fix: 修复 连接远程应用时标签匹配失败的问题 2023-12-25 16:20:38 +05:00
Bai
6ac956c626 fix: 修复 api/docs 报错问题 2023-12-25 19:04:44 +08:00
wangruidong
edb2d1bd7b fix: 我的资产列表标签信息没有显示 2023-12-25 16:02:16 +05:00
feng
81b4909016 fix: 【用户登录会话失效问题】SESSION_COOKIE_AGE 配置不生效的问题 2023-12-25 13:10:58 +05:00
wangruidong
f6f1be423c perf: 统计任务执行结果 2023-12-22 14:18:25 +05:00
Bryan
fae5392a03 Update README.md 2023-12-22 12:30:11 +05:00
Bryan
d5224968bc Update README.md 2023-12-22 12:30:11 +05:00
feng
6565f8c0a8 perf: 在 ansible 中切换用户时 添加超时操作 2023-12-22 12:23:19 +05:00
ibuler
bc5494bbb0 perf: 优化 label choice 2023-12-21 16:51:36 +08:00
fit2bot
febf08629a fix: 翻译 (#12400)
Co-authored-by: feng <1304903146@qq.com>
2023-12-21 16:15:20 +08:00
fit2bot
b6774aa749 perf: 更新全局组织名字 添加唯一性校验 (#12399)
Co-authored-by: feng <1304903146@qq.com>
2023-12-21 16:07:11 +08:00
fit2bot
bc668f3e9f fix: applet 压缩包名字(1).zip时 上传失败} (#12397)
Co-authored-by: feng <1304903146@qq.com>
2023-12-21 15:42:09 +08:00
fit2bot
dc56b019b1 perf: 权限树翻译 (#12396)
Co-authored-by: feng <1304903146@qq.com>
2023-12-21 15:00:46 +08:00
ibuler
a38624d198 perf: 修改同名账号登录报错 2023-12-21 14:04:09 +08:00
ibuler
ca026040fe perf: 优化导入账号报错 2023-12-21 12:40:59 +08:00
ibuler
88b9a4d693 perf: 修改搜索 2023-12-20 17:50:40 +05:00
ibuler
4d15e46ceb perf: 修改搜索 2023-12-20 17:50:40 +05:00
fit2bot
55575e9f7f perf: 用户账号导出去除is_service_account (#12388)
Co-authored-by: feng <1304903146@qq.com>
2023-12-20 19:24:09 +08:00
wangruidong
98c9cddcbf fix: es命令记录可以看到其他资产执行的命令 2023-12-20 16:00:35 +05:00
fit2bot
9f67ba573c perf: dockerfile 添加 freerdp2-dev 依赖 (#12386)
Co-authored-by: feng <1304903146@qq.com>
2023-12-20 18:48:37 +08:00
fit2bot
533f13c634 perf: 优化创建账号密码校验逻辑 (#12383)
Co-authored-by: feng <1304903146@qq.com>
2023-12-20 16:35:36 +08:00
fit2bot
c66b1db784 fix: 自动化任务网关连接数 自定义ansible rdp 测试可连接性端口错误 (#12373)
Co-authored-by: feng <1304903146@qq.com>
2023-12-20 16:02:13 +08:00
Eric
d03ba7c391 perf: 页面配置是否启用 Vitual App 2023-12-20 13:01:50 +05:00
fit2bot
6544f8ade8 perf: 修改 labels 搜索 (#12379)
* perf: 修改标签的搜索

* perf: 修改 labels 搜索

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-12-20 14:31:03 +08:00
ibuler
ac5991fc43 perf: 修改标签的搜索 2023-12-20 10:57:58 +05:00
wangruidong
9b2b71dddc fix: 工单列表类型没有翻译 2023-12-20 10:57:29 +05:00
fit2bot
e18e019460 fix: 账号列表,添加账号模版 500 (#12375)
Co-authored-by: feng <1304903146@qq.com>
2023-12-20 11:05:42 +08:00
fit2bot
ef1875d9b5 perf: 优化工单显示 (#12368)
Co-authored-by: wangruidong <940853815@qq.com>
2023-12-19 19:06:39 +08:00
ibuler
0b7552a6ee perf: 修改 labels 绑定引起的问题 2023-12-19 16:06:05 +05:00
fit2bot
45425b11d2 perf: 优化 labels 支持多个搜索 (#12367)
Co-authored-by: ibuler <ibuler@qq.com>
2023-12-19 18:46:02 +08:00
jiangweidong
fda3e6ec9b perf: model_to_dict无法转换不可编辑字段,导致消息中有的值为None 2023-12-19 14:30:13 +05:00
huailei
2b41486f2a Merge pull request #12369 from jumpserver/pr@dev@chat_ai_test
fix: chatAI代理配置错误,服务器报错500
2023-12-19 15:42:06 +08:00
feng
59d9a3d4ec fix: chatAI代理配置错误,服务器报错500 2023-12-19 15:39:22 +08:00
wangruidong
3c7ba029dd perf: 工单显示优化 2023-12-19 12:10:34 +05:00
huailei
1335556272 Merge pull request #12366 from jumpserver/pr@dev@command
fix: 命令组模糊搜索,500
2023-12-19 15:07:50 +08:00
feng
8eab87f40d fix: 命令组模糊搜索,500 2023-12-19 15:05:35 +08:00
huailei
c441e5bb92 Merge pull request #12365 from jumpserver/pr@dev@ansible
fix: 修复ansible 任务 {{123}} 这样的密码失败问题
2023-12-19 14:59:23 +08:00
feng
da8d78f384 fix: 修复ansible 任务 {{123}} 这样的密码失败问题 2023-12-19 14:57:51 +08:00
jiangweidong
83b91cb739 perf: 优化命令禁止发送消息时,slack消息会包含html标签内容 2023-12-19 11:40:18 +05:00
fit2bot
1afad40dd3 perf: 优化 labels 绑定资源 (#12361)
* perf: 优化 labels 绑定资源

* perf: 优化 labels list 显示

* perf: add migrations

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-12-19 10:20:11 +08:00
ibuler
1358cf532f perf: 修改 labels 和 role 搜索 2023-12-18 18:23:06 +05:00
huailei
1e7f268f0c Merge pull request #12360 from jumpserver/pr@dev@translate
perf: 翻译
2023-12-18 18:38:21 +08:00
feng
d6b5590505 perf: 翻译 2023-12-18 18:36:44 +08:00
huailei
79b3b31492 Merge pull request #12358 from jumpserver/pr@dev@makemigrations
perf: 迁移文件
2023-12-18 17:46:23 +08:00
feng
4f2b3fbb43 perf: 迁移文件 2023-12-18 17:44:59 +08:00
fit2bot
1f2db65dba fix: ansible 密码支持 {{ }} {% %} (#12354)
Co-authored-by: feng <1304903146@qq.com>
2023-12-18 17:31:35 +08:00
halo
006faac326 perf: 配置xpack后logo没有修改 2023-12-18 14:51:28 +08:00
ibuler
f7fee0f430 perf: 修复标签搜索 2023-12-15 18:34:44 +08:00
fit2bot
714c44fbf4 perf: 授权创建时 通过模版创建账号 给账号添加来源 (#12345)
Co-authored-by: feng <1304903146@qq.com>
2023-12-15 18:28:48 +08:00
fit2bot
84b316e2c1 fix: 修复自动禁用用户默认排除 admin 用户 (#12346)
Co-authored-by: Bai <baijiangjie@gmail.com>
2023-12-15 18:28:24 +08:00
wangruidong
6955a3db11 perf: ldap测试登录提示优化&上产文件名长度限制 2023-12-15 18:06:47 +08:00
huailei
d92736e624 Merge pull request #12343 from jumpserver/pr@dev@perf_password_rules
perf: 优化校验密码规则 特殊字符校验
2023-12-15 17:16:04 +08:00
feng
9d0da64ea1 perf: 优化校验密码规则 特殊字符校验 2023-12-15 17:14:34 +08:00
wangruidong
b9e1d6093e perf: 翻译 2023-12-15 15:21:52 +08:00
Bai
c3820b30b8 fix: 修复远程应用连接 labels 过滤问题 2023-12-15 13:26:01 +08:00
huailei
6955fc1734 Merge pull request #12337 from jumpserver/pr@dev@prompt
perf: 修改默认prompt顺序
2023-12-15 10:57:18 +08:00
feng
32178b2344 perf: 修改默认prompt顺序 2023-12-15 10:48:04 +08:00
fit2bot
e3c0518cfb perf: 上传目标目录指定在/tmp下 (#12334)
Co-authored-by: wangruidong <940853815@qq.com>
2023-12-14 19:44:53 +08:00
jiangweidong
438e9dee2a fix: 解决第三方登录一个不存在的本地用户时,改密日志会增加的问题 2023-12-14 19:36:06 +08:00
Bai
3c9239eb09 fix: 修复 Release 应用账号的逻辑,解决首次连接远程应用可能出现没有可用账号的问题 2023-12-14 19:35:05 +08:00
Eric
81fb080c67 perf: 调整搜索字段 2023-12-14 18:28:55 +08:00
feng
6cf05435bf feat: chat prompt 2023-12-14 17:39:15 +08:00
wangruidong
65718c5a84 perf: 接口返回上传文件大小限制 2023-12-14 11:26:44 +08:00
wangruidong
27daebbe1b perf: 上传文件大小限制 2023-12-14 10:34:58 +08:00
huailei
dce1079fdc Merge pull request #12324 from jumpserver/pr@dev@perm_label
perf: 修改下线用户会话的权限位label
2023-12-13 17:39:15 +08:00
feng
d07db68426 perf: 修改下线用户会话的权限位label 2023-12-13 17:28:57 +08:00
huailei
6d37300a30 Merge pull request #12323 from jumpserver/pr@dev@gather_account
fix: 收集账号过滤asset_id 失败
2023-12-13 16:35:17 +08:00
feng
0c96af32c2 fix: 手机账号过滤asset_id 失败 2023-12-13 16:33:50 +08:00
huailei
1c6b1b0625 Merge pull request #12321 from jumpserver/pr@dev@translate
perf: 翻译
2023-12-13 16:16:50 +08:00
feng
4f7b4842f6 perf: 翻译 2023-12-13 16:15:34 +08:00
fit2bot
c4fef5899c perf: 连接 RDP 协议会话时,高级选项支持 session bpp:i 参数配置;默认 32; (#12319)
Co-authored-by: feng <1304903146@qq.com>
2023-12-13 15:51:22 +08:00
wangruidong
5b51a8231c fix: 点击备案号未跳转到指定链接 2023-12-13 11:22:41 +08:00
huailei
54417dd6d3 Merge pull request #12312 from jumpserver/pr@dev@chat_setting
fix: chat ai测试可连接性时失败
2023-12-12 19:15:26 +08:00
feng
2c7ad90524 fix: chat ai测试可连接性时失败 2023-12-12 19:14:13 +08:00
ibuler
01fcdad489 perf: 优化用户不活跃检测 2023-12-12 17:19:19 +08:00
feng
8801003461 perf: 支持 西班牙 Keyboard Layout 2023-12-12 17:16:55 +08:00
huailei
696397fdb0 Merge pull request #12306 from jumpserver/pr@dev@translate
perf: 翻译
2023-12-12 15:37:37 +08:00
feng
87a24991f1 perf: 翻译 2023-12-12 15:34:13 +08:00
Eric
3ec93b8f04 perf: 添加录像不支持 2023-12-12 14:56:45 +08:00
ibuler
4f1826d3ed perf: get request ip, only using x-forwarded-for 2023-12-12 14:44:57 +08:00
ibuler
9260f26c99 perf: 优化 db constrains 2023-12-12 14:44:11 +08:00
fit2bot
93da3e58f2 perf: 【优化系统任务】支持显示 执行周期、下次开始时间 字段 (#12298)
Co-authored-by: feng <1304903146@qq.com>
2023-12-12 14:18:26 +08:00
wangruidong
1eff33f3f7 perf: 优化获取同名文件列表 2023-12-12 10:39:23 +08:00
wangruidong
8e89d42343 perf: 同名文件处理 2023-12-12 10:39:23 +08:00
wangruidong
d0b0c87d3c feat: 支持批量发送文件 2023-12-12 10:39:23 +08:00
ibuler
e3ac26e377 perf: 修改 rbac labels node 2023-12-11 14:43:15 +08:00
Eric
4ea20a9103 perf: 优化迁移文件 verbose_name 2023-12-11 14:40:21 +08:00
fit2bot
dd57b14562 feat: 增加 sqlserver 支持 (#12288)
* feat: 增加 sqlserver 支持

* feat: 删除一些  migrations

---------

Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-12-11 13:57:35 +08:00
wangruidong
c312cdb625 perf: 优化资产授权过期提示信息 2023-12-11 11:41:52 +08:00
huailei
85fedf0704 Merge pull request #12287 from jumpserver/pr@dev@public_api
perf: PublicSetting API 添加GPT参数
2023-12-08 17:54:06 +08:00
feng
8b05260a6c perf: PublicSetting API 添加GPT参数 2023-12-08 17:46:40 +08:00
Bai
47cb6b1ec0 perf: 优化资产列表支持通过 创建日期 进行排序 2023-12-08 16:39:13 +08:00
huailei
79b5dff210 Merge pull request #12286 from jumpserver/pr@dev@password_rule
fix: 改密计划创建更新失败
2023-12-08 16:36:04 +08:00
feng
b08e1f6a47 fix: 改密计划创建更新失败 2023-12-08 16:34:46 +08:00
Bai
2e3184cbd6 fix: 修复 Endpoint 获取错误问题 2023-12-08 16:33:27 +08:00
huailei
fb903e53a4 Merge pull request #12284 from jumpserver/pr@dev@translate
perf: 翻译
2023-12-08 16:18:36 +08:00
feng
cc7220a4ad perf: 翻译 2023-12-08 16:17:20 +08:00
fit2bot
81de527e32 perf: 解决Slack解绑用户404问题 (#12283)
Co-authored-by: jiangweidong <weidong.jiang@fit2cloud.com>
2023-12-08 15:11:49 +08:00
huailei
7ad2abe104 Merge pull request #12280 from jumpserver/pr@dev@migrate
perf: 修改迁移文件
2023-12-08 14:22:55 +08:00
feng
9a2da98bd4 perf: 修改迁移文件 2023-12-08 14:21:10 +08:00
feng
eca50874f0 feat: 同步删除远程机器账号 2023-12-08 14:13:55 +08:00
fit2bot
8f82ca9856 perf: 优化操作日志 (#12249)
* perf: 优化操作日志

* perf: 修改migrations中关于Nodes的verbose_name

* perf: 优化代码逻辑

* perf: 优化日志详情展示逻辑

* perf: 代码优雅一下

---------

Co-authored-by: jiangweidong <weidong.jiang@fit2cloud.com>
2023-12-05 17:26:47 +08:00
Eric
e193d7a942 perf: 完善 yaml 加载 2023-12-05 17:25:25 +08:00
fit2bot
d2429f7883 feat: 支持 virtual app (#12199)
* feat: 支持 virtual app

* perf: 增加 virtual host

* perf: 新增 virtual app 上传接口

* perf: 更名为 app provider

* perf: 优化代码

---------

Co-authored-by: Eric <xplzv@126.com>
2023-12-05 16:52:11 +08:00
ibuler
a43bb25b5a perf: 优化 applet 账号选择 2023-12-05 16:19:56 +08:00
ibuler
ffe3e8a70c perf: 优化 for tidb 2023-12-05 16:13:16 +08:00
ibuler
0e7e499a1e perf: 修改 labels 创建 2023-12-05 15:22:47 +08:00
ibuler
e812e3ff89 fix: 优化 endpoint 的 ipv6 支持 2023-12-05 14:56:05 +08:00
halo
d2eacad97b perf: 更新客户端 v2.1.0 2023-12-05 14:02:33 +08:00
fit2bot
8291a81efd perf: 支持全局的 labels (#12043)
* perf: 支持全局的 labels

* perf: stash

* stash

* stash

* stash

* stash

* perf: 优化 labels

* stash

* perf: add debug sql

* perf: 修改 labels

* perf: 优化提交

* perf: 优化提交 labels

* perf: 基本完成

* perf: 完成 labels 搜索

* perf: 优化 labels

* perf: 去掉不用 debug

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-12-05 11:16:34 +08:00
fit2bot
a91cb1afd5 feat: 系统设置可配置gpt (#12207)
* feat: 系统设置可配置gpt

* perf: 添加gpt的terminal config

---------

Co-authored-by: feng <1304903146@qq.com>
2023-12-05 10:58:19 +08:00
wangruidong
2cad97065f feat: 资产详情页面添加历史执行命令列表页面 2023-12-04 16:38:28 +08:00
fit2bot
cf18300360 fix: 添加Slack认证发送消息格式包 (#12229)
Co-authored-by: jiangweidong <weidong.jiang@fit2cloud.com>
2023-11-30 14:38:43 +08:00
wangruidong
3cd22f05d2 perf: 优化工单处理提示消息页面 2023-11-30 10:15:26 +08:00
吴小白
eee41008cc perf: 优化 celery health 判断 2023-11-30 10:09:42 +08:00
fit2bot
0fdae00722 perf: 支持slack通知和认证 (#12193)
* perf: 支持slack通知和认证

* perf: 生成迁移文件

* perf: 优化获取access_token逻辑

---------

Co-authored-by: jiangweidong <weidong.jiang@fit2cloud.com>
2023-11-29 17:45:44 +08:00
吴小白
575562c416 Merge pull request #12216 from jumpserver/pr@dev@patch_greenlet
build(deps): bump github.com/python-greenlet/greenlet from 2.0.2 to 3.0.1
2023-11-28 16:26:25 +08:00
吴小白
e2b7f67fdc build(deps): bump github.com/python-greenlet/greenlet from 2.0.2 to 3.0.1
Signed-off-by: 吴小白 <296015668@qq.com>
2023-11-28 16:14:48 +08:00
fit2bot
d2498c0d53 fix: sftp不能设置为默认存储 (#12213)
Co-authored-by: wangruidong <940853815@qq.com>
2023-11-28 15:21:40 +08:00
huailei
01e40fd238 Merge pull request #12211 from jumpserver/pr@dev@random
perf: 随机密码生成规则添加可排除字符选项
2023-11-28 14:49:35 +08:00
feng
370ef11486 perf: 随机密码生成规则添加可排除字符选项 2023-11-28 14:46:51 +08:00
ibuler
089cadeae3 perf: 优化 queryset count 2023-11-28 12:54:04 +08:00
wangruidong
6b748e5ac5 feat: 用户详情展示所有会话 2023-11-28 12:52:11 +08:00
fit2bot
6d611bbbbd feat: 作业中心数据库支持网域命令执行 (#12117)
Co-authored-by: jiangweidong <weidong.jiang@fit2cloud.com>
2023-11-27 11:22:34 +08:00
wangruidong
18670d493e perf: 优化工单处理提示消息页面 2023-11-27 11:14:27 +08:00
ibuler
ba38852354 perf: 优化跳转页 2023-11-24 17:00:39 +08:00
wangruidong
64f3509c8c feat: 支持备案配置 2023-11-24 13:55:47 +08:00
huailei
805c78c0de Merge pull request #12188 from jumpserver/pr@dev@perf_ldap_user_websocket
perf: ldap接口请求换成websocket连接
2023-11-23 15:09:15 +08:00
huailei
11accf8854 Merge pull request #12189 from jumpserver/pr@dev@translate
perf: 国际化翻译
2023-11-22 18:33:06 +08:00
feng
18f6ffe0ce perf: 国际化翻译 2023-11-22 18:30:56 +08:00
wangruidong
6b7119ea74 perf: ldap接口请求换成websocket连接 2023-11-22 16:56:31 +08:00
huailei
efc7ca1164 Merge pull request #12182 from jumpserver/pr@dev@translate
perf: 修改翻译
2023-11-22 11:12:45 +08:00
feng
a6de9bdde6 perf: 修改翻译 2023-11-22 11:09:16 +08:00
feng
6e7074ba40 fix: mysql 开始ssl后 再关闭测试失败 2023-11-20 15:38:53 +08:00
feng
2edcb2f2d3 fix: mysql 开启ssl 再关闭 测试可连接性失败 2023-11-20 10:52:23 +08:00
ibuler
07e1918fa1 perf: 优化延迟运行
fix: 延迟执行设置超时

perf: 修改 delay run

perf: 优化 delay_run 执行

perf: 修改 delay run
2023-11-20 10:29:51 +08:00
feng
452b383278 fix: redis 开启 ssl websocket连接失败 2023-11-20 10:23:21 +08:00
ibuler
ed92f10208 fix: 修复自动禁用非活跃用户任务 2023-11-17 15:41:16 +08:00
Chenyang Shen
e8331ca708 Merge pull request #12148 from jumpserver/pr@dev@fix_delete_debug_info
fix: 删除debug信息
2023-11-17 11:33:52 +08:00
Aaron3S
814130204a fix: 删除debug信息 2023-11-17 10:45:44 +08:00
吴小白
e7dc9a2f6f perf: 优化 Dockerfile 2023-11-17 10:39:17 +08:00
ibuler
ded1b4bba1 perf: 优化 api key 认证记录用户的时间 2023-11-16 18:17:22 +08:00
fit2bot
2630ea39a1 perf: windows 改密推送添加新的方式 最后测试可连接性的时候采用rdp的方式测试 (#12141)
Co-authored-by: feng <1304903146@qq.com>
2023-11-16 18:12:22 +08:00
Bryan
9e10029bdd Revert "fix: 修复平台自动化翻译 (#12078)" (#12138)
This reverts commit 69c0eb2f50.
2023-11-16 16:35:08 +08:00
Aaron3S
d1391cb5d5 fix: 修复 sqlserver 命令执行问题 2023-11-16 16:24:39 +08:00
Aaron3S
44f029774d fix: 修复playbook部分不可执行问题 2023-11-16 16:07:31 +08:00
fit2bot
23fce9e426 perf: 翻译 (#12135)
Co-authored-by: feng <1304903146@qq.com>
2023-11-16 15:35:34 +08:00
fit2bot
0778a39894 perf: 在线会话添加活跃状态过滤 (#12134)
Co-authored-by: feng <1304903146@qq.com>
2023-11-16 14:41:35 +08:00
fit2bot
9cc6d6a9af perf: dockerfile add libx11-dev (#12133)
Co-authored-by: feng <1304903146@qq.com>
2023-11-16 13:21:16 +08:00
fit2bot
8f309dee92 fix: 资产测试可连接性选错账号 (#12130)
Co-authored-by: feng <1304903146@qq.com>
2023-11-16 11:26:05 +08:00
Bai
d166b26252 perf: 优化处理telnet协议资产端点的端口问题 2023-11-16 11:13:37 +08:00
fit2bot
1ef51563b5 perf: account 迁移文件 (#12128)
Co-authored-by: feng <1304903146@qq.com>
2023-11-16 10:18:54 +08:00
老广
3e7b4682e4 Merge pull request #12124 from jumpserver/pr@dev@perf_device_icon
perf: 修改 tree 硬件设备的 icon
2023-11-15 17:02:05 +08:00
ibuler
994b42aa93 perf: 修改 tree 硬件设备的 icon 2023-11-15 17:00:12 +08:00
fit2bot
d6aea54722 fix: 账号收集未同步资产时 变更数据错误 (#12123)
Co-authored-by: feng <1304903146@qq.com>
2023-11-15 16:44:35 +08:00
ibuler
88afabdd1d perf: 设置 winrm 用户端不可以连接 2023-11-15 15:34:38 +08:00
fit2bot
b2327c0c5a fix: 账号改密 root密钥无法替换 (#12121)
Co-authored-by: feng <1304903146@qq.com>
2023-11-15 15:33:10 +08:00
Aaron3S
7610f64433 perf: 优化获取当前 python 执行路径的方式 2023-11-15 15:21:56 +08:00
fit2bot
b15c314384 fix: 资产多协议时 计算协议端口错误 (#12120)
Co-authored-by: feng <1304903146@qq.com>
2023-11-15 14:59:40 +08:00
wangruidong
7a5cffac91 fix: 对象存储下拉无法自动加载 2023-11-15 14:58:33 +08:00
feng
8667943443 fix: celery事物 数据库未保存 2023-11-14 19:42:21 +08:00
Aaron3S
7c51d90a3d fix: 修复快捷命令找不到mssql module 的问题 2023-11-14 19:28:46 +08:00
wangruidong
9996b200f9 fix: 作业执行历史日志未按配置天数清理 2023-11-14 19:22:14 +08:00
wangruidong
ae364ac373 fix: 录像存储下载报错 2023-11-14 19:21:33 +08:00
wangruidong
fef4a97931 fix: 作业日志筛选用户出错 2023-11-14 19:20:52 +08:00
fit2bot
d63c4d6cc4 fix: mysql 测试可连接性失败 (#12104)
Co-authored-by: feng <1304903146@qq.com>
2023-11-14 17:03:20 +08:00
fit2bot
4e5a44bd98 fix: 账号收集通知 同步资产时 计算新增账号错误 (#12101)
Co-authored-by: feng <1304903146@qq.com>
2023-11-14 14:50:33 +08:00
fit2bot
fcce03f7bd fix: 改密记录搜索失败 (#12098)
Co-authored-by: feng <1304903146@qq.com>
2023-11-14 12:48:02 +08:00
fit2bot
5f121934a7 perf: 交换机切换至卡住 (#12096)
Co-authored-by: feng <1304903146@qq.com>
2023-11-14 10:58:57 +08:00
fit2bot
521c1f0dfa perf: 修改授权动作翻译 (#12095)
Co-authored-by: feng <1304903146@qq.com>
2023-11-14 10:41:00 +08:00
ibuler
5673698a57 perf: 修改账号选择 2023-11-14 10:18:24 +08:00
fit2bot
d6b75ac700 perf: 修改默认 ansible_python_interpreter (#12093)
Co-authored-by: feng <1304903146@qq.com>
2023-11-13 18:09:09 +08:00
fit2bot
0ee14e6d85 perf: 修改翻译 (#12092)
Co-authored-by: feng <1304903146@qq.com>
2023-11-13 17:50:10 +08:00
wangruidong
9babe977d8 fix: 修改sftp账号备份文件名及任务日志提示 2023-11-13 17:05:21 +08:00
fit2bot
0f9223331c perf: 修改 m2m json filter (#12087)
* perf: 修改 m2m json filter

* perf: 修复 json 过滤问题

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-11-13 15:04:27 +08:00
fit2bot
f8a4a0e108 fix: 修复UserOtpDisableView 视图函数获取模版错误 (#12084)
Co-authored-by: feng <1304903146@qq.com>
2023-11-10 17:59:28 +08:00
ibuler
ba76f30af9 perf: 修改 applet option 2023-11-10 17:18:40 +08:00
Eric_Lee
e5e0c841a2 Revert "perf: 调整 secret 长度为32位"
This reverts commit c41fdf1786.
2023-11-10 15:27:57 +08:00
Eric
c41fdf1786 perf: 调整 secret 长度为32位 2023-11-10 15:03:51 +08:00
fit2bot
69c0eb2f50 fix: 修复平台自动化翻译 (#12078)
Co-authored-by: feng <1304903146@qq.com>
2023-11-09 17:25:32 +08:00
Bryan
e077afe2cc Update README.md 2023-11-09 14:53:49 +08:00
wangruidong
c1f572df05 fix: 【账号备份】创建账号备份存储,选择SFTP,发送服务器为空。修改执行任务的日志提示 2023-11-09 14:22:04 +08:00
fit2bot
d60fe464ca fix:修复es6.8查询不到数据问题 (#12069)
Co-authored-by: feng <1304903146@qq.com>
2023-11-09 14:18:49 +08:00
fit2bot
f47895b8a8 perf: 优化仪表盘查询sftp数量sql (#12075)
Co-authored-by: feng <1304903146@qq.com>
2023-11-09 14:16:41 +08:00
Eric
3eb1583c69 perf: 增加分享权限位 2023-11-08 19:05:51 +08:00
feng
5ab8ff4fde perf: 在线用户根据websocket添加用户是否活跃状态 2023-11-08 17:02:47 +08:00
feng
7746491e19 perf: 在线用户添加是否活跃的属性 2023-11-08 17:02:47 +08:00
Eric
5e54792d94 perf: 优化发布机终端名称 2023-11-08 13:53:24 +08:00
Eric
621c7a31fe fix: 修复发布机名称因含特殊字符部署失败的问题 2023-11-08 13:26:04 +08:00
fit2bot
75bab70ccf fix: 账号迁移文件 (#12059)
Co-authored-by: feng <1304903146@qq.com>
2023-11-08 10:33:49 +08:00
halo
30683ed859 perf: 优化连接信息超长,客户端拉起无响应问题 2023-11-07 15:47:22 +08:00
Bai
7c52cec5fb perf: Upgrade requements jms-storage-sdk==0.0.53 2023-11-07 15:46:48 +08:00
fit2bot
f01bfc44b8 perf: 账号备份增加sftp方式 (#12032)
* perf: 添加sftp支持

* perf: 账号备份增加sftp方式

---------

Co-authored-by: wangruidong <940853815@qq.com>
Co-authored-by: Bryan <jiangjie.bai@fit2cloud.com>
2023-11-07 15:10:46 +08:00
fit2bot
54b89f6fee feat: 账号收集添加资产账号信息变化通知 (#12009)
Co-authored-by: feng <1304903146@qq.com>
2023-11-07 13:00:09 +08:00
Bai
c0de0b0d8e fix: Remove repetition code 2023-11-07 11:30:53 +08:00
huailei
06275a09ac Merge pull request #12042 from jumpserver/pr@dev@ansible
perf: 密码中支持特殊字符比如"
2023-11-06 18:19:34 +08:00
feng
7b86938b58 perf: 密码中支持特殊字符比如" 2023-11-06 17:53:18 +08:00
fit2bot
44624d0ce0 feat: 工作台支持配置显示系统工具 (#12013)
Co-authored-by: halo <wuyihuangw@gmail.com>
2023-11-03 17:33:44 +08:00
wangruidong
9b8c817a16 perf: 修改字段翻译 2023-11-03 10:45:17 +08:00
ibuler
927fe1f128 perf: 修改资产协议 xpack 2023-11-03 10:43:34 +08:00
fit2bot
eee119eba1 feat: 个人设置 rdp smart size可配置 (#12021)
Co-authored-by: feng <1304903146@qq.com>
2023-11-02 18:51:17 +08:00
老广
53d8f716eb Merge pull request #12007 from jumpserver/pr@dev@json_field_support_m2m_all
perf: JSONManyToMany 中的 m2m 方式支持包含所有
2023-11-02 10:35:28 +08:00
吴小白
f48aec2bcb Merge pull request #12011 from jumpserver/pr@dev@perf_tinker_chrome
perf: 更新 chrome 和 chromedriver
2023-11-01 20:34:53 +08:00
吴小白
78e9f51786 perf: 移除旧版本 Chrome 文件 2023-11-01 18:49:38 +08:00
吴小白
af33ad6631 perf: 移除 python3 环境变量 2023-11-01 18:35:10 +08:00
吴小白
864da49ae6 perf: 更新 chrome 和 chromedriver 2023-11-01 18:10:03 +08:00
huailei
e6b8b3982d Merge pull request #12010 from jumpserver/pr@dev@perf_mobile_login
perf: 优化登录页样式
2023-11-01 17:02:28 +08:00
“huailei000”
49b3df218e perf: 优化登录页样式 2023-11-01 17:01:14 +08:00
ibuler
0858d67098 fix: 修改可能迁移的问题 2023-11-01 03:11:47 -05:00
ibuler
ffa242e635 perf: JSONManyToMany 中的 m2m 方式支持包含所有 2023-11-01 15:38:03 +08:00
wangruidong
4021b1955e fix: 组件启动失败 2023-10-31 19:18:35 +08:00
Bryan
204258f058 Update README.md 2023-10-31 18:20:01 +08:00
wangruidong
dc841650cf perf: AKSK添加访问IP控制 2023-10-31 02:43:33 -05:00
feng
bc54685a31 feat: 改密记录 推送记录可单独执行 2023-10-31 00:57:47 -05:00
ibuler
ee586954f8 feat: 发布机支持使用同名账号连接 2023-10-31 10:18:30 +08:00
ibuler
e56a37afd2 fix: 优化选择发布机 2023-10-30 16:07:02 +08:00
老广
7669744312 Merge pull request #11981 from jumpserver/pr@dev@feat_perm_add_protocols
perf: 资产授权添加协议
2023-10-30 10:12:45 +08:00
ibuler
ad8aba88a3 perf: 资产授权添加协议 2023-10-30 10:11:36 +08:00
wangruidong
7659846df4 perf: 兼容SERVER_NAME值多种情况 2023-10-27 16:45:42 +08:00
ibuler
f93979eb2d perf: 资产授权添加协议 2023-10-27 16:15:59 +08:00
fit2bot
badf83c560 perf: 命令存储为本地数据库时 搜索资产时支持模糊搜索 (#11978)
Co-authored-by: feng <1304903146@qq.com>
2023-10-26 17:10:27 +08:00
halo
f6466a3a20 fix: 修复DB2平台已经存在的问题 2023-10-26 01:25:47 -05:00
ibuler
996394ba29 perf: 优化 profile field 2023-10-25 05:09:15 -05:00
fit2bot
09f8470d34 fix: 改密校验可连接性失败 (#11964)
Co-authored-by: feng <1304903146@qq.com>
2023-10-25 16:21:45 +08:00
Bai
fdb3f6409c fix: 修复登录日志和在线用户会话的 IP 地址获取方式 2023-10-25 01:40:16 -05:00
ibuler
73b0b23910 perf: 修改rsa key 默认长度 2023-10-25 10:05:58 +08:00
ibuler
c1185e989a perf: 修复资产类型的 bug 2023-10-24 16:19:08 +08:00
fit2bot
1239082649 fix: change secret perm 没有生成 (#11948)
Co-authored-by: feng <1304903146@qq.com>
2023-10-24 14:07:07 +08:00
fit2bot
ff073185f1 fix: 改密切换至检测可连接性 失败 (#11946)
Co-authored-by: feng <1304903146@qq.com>
2023-10-24 11:30:26 +08:00
老广
d7a682b462 Merge pull request #11945 from jumpserver/pr@dev@perf_oauth2_access_token_content_type
perf: 优化OAuth2.0获取Access_token的content_type
2023-10-24 11:29:10 +08:00
Eric_Lee
4df2bdd9b6 Merge pull request #11944 from jumpserver/pr@dev@upgrade_tinker_python
perf: 更新 tinker python 版本
2023-10-24 10:39:36 +08:00
吴小白
2437072768 perf: 清理旧版本 chromedriver PATH 2023-10-24 10:29:14 +08:00
jiangweidong
08a2d96213 perf: 优化OAuth2.0获取Access_token的content_type 2023-10-24 10:26:38 +08:00
吴小白
de7d7b41c0 perf: 更新 tinker python 版本 2023-10-24 08:46:17 +08:00
jiangweidong
b04c7f022f perf: 使用scan命令扫描在线用户 2023-10-23 04:34:12 -05:00
feng
bf0d9f4b80 fix: 删除错误的改密权限 2023-10-23 04:32:00 -05:00
wangruidong
314257f790 perf: 作业中心执行历史增加保留天数配置 2023-10-23 04:13:35 -05:00
ibuler
6d2a62e413 fix: 优化替换 DOMAINS 中端口 的问题 2023-10-22 22:32:04 -05:00
老广
1734ddc2bd Merge pull request #11926 from jumpserver/pr@dev@database_list
fix: 资产数据库 不分页时list接口错误
2023-10-20 03:51:07 -05:00
feng
7c796e8201 fix: 资产数据库 不分页时list接口错误 2023-10-20 16:35:39 +08:00
老广
62a74418ea Merge pull request #11852 from jumpserver/pr@dev@perf_core
perf: 按照需求添加 core-ce 镜像
2023-10-19 21:35:23 -05:00
fit2bot
32461078fe perf: ticket 迁移文件 (#11920)
Co-authored-by: feng <1304903146@qq.com>
2023-10-19 20:00:47 +08:00
Bai
939b517e34 fix: 修复账号改密密码规则提交不生效的问题 2023-10-19 04:30:49 -05:00
jiangweidong
66eac762ff fix: 可以清空云同步中的策略 2023-10-19 03:57:00 -05:00
fit2bot
db9ee71ab3 perf: 翻译 (#11913)
Co-authored-by: feng <1304903146@qq.com>
2023-10-19 16:24:25 +08:00
fit2bot
db2331521d fix: 修复工单复合通知无账号信息 (#11912)
Co-authored-by: feng <1304903146@qq.com>
2023-10-19 15:56:14 +08:00
fit2bot
4aa4c6854b perf: 更新ops ticket announcement settings 权限 (#11911)
Co-authored-by: feng <1304903146@qq.com>
2023-10-19 15:15:02 +08:00
fit2bot
26a18a1f5c perf: 批量创建资产 账号格式错误提醒 (#11909)
Co-authored-by: feng <1304903146@qq.com>
2023-10-19 13:44:24 +08:00
fit2bot
6870df6d75 fix: cas ldap 登录失败 (#11908)
Co-authored-by: feng <1304903146@qq.com>
2023-10-19 12:24:56 +08:00
jiangweidong
03d1a187df perf: 工单直接审批者访问链接无认证跳转到登录页面 (#11902)
* perf: 工单直接审批者访问链接无认证跳转到登录页面

* perf: 修改重定向登录地址

* perf: 跳转字段标识更新
2023-10-18 22:21:08 -05:00
Eric_Lee
ca0dca26c7 Merge pull request #11900 from jumpserver/pr@dev@perf_task
perf: 完善僵尸会话清理
2023-10-18 19:17:04 +08:00
Eric
25a1989157 perf: 完善僵尸会话清理 2023-10-18 19:13:42 +08:00
ibuler
fef26c38fe perf: 去掉创建记录报错 2023-10-18 06:06:50 -05:00
fit2bot
a2fcc47436 fix: cas oidc 登录失败 (#11899)
Co-authored-by: feng <1304903146@qq.com>
2023-10-18 18:51:28 +08:00
fit2bot
00450121bc perf: 命令组加命令过滤搜索 (#11898)
Co-authored-by: feng <1304903146@qq.com>
2023-10-18 18:46:49 +08:00
ibuler
bdd885069f perf: 优化登录时创建 activity 的问题 2023-10-18 04:10:20 -05:00
老广
25d0c021e1 Merge pull request #11894 from jumpserver/pr@dev@perf_window_default_verify_account_by_rdp
perf: 修改windows校验账号的默认方式
2023-10-18 03:46:08 -05:00
ibuler
095c23ea4f perf: 修改windows校验账号的默认方式 2023-10-18 16:44:38 +08:00
fit2bot
3c3c112b07 perf: 更新appletpublication applethostdeployment 权限位 (#11893)
Co-authored-by: feng <1304903146@qq.com>
2023-10-18 16:35:08 +08:00
老广
d95a44fe44 Merge pull request #11892 from jumpserver/pr@dev@perf_bind_wecom_logout
perf: 企业微信绑定后退出
2023-10-18 03:10:41 -05:00
ibuler
e713bdab0b perf: 企业微信绑定后退出 2023-10-18 16:09:17 +08:00
fit2bot
78f1b2b002 perf: user session 表去掉过期时间字段 (#11890)
Co-authored-by: feng <1304903146@qq.com>
2023-10-18 16:04:02 +08:00
fit2bot
e0762573ae perf: 在线用户动态过期时间 (#11889)
Co-authored-by: feng <1304903146@qq.com>
2023-10-18 15:50:38 +08:00
老广
16e8c7faba Merge pull request #11888 from jumpserver/pr@dev@perf_protocols_lose
perf: 修复协议丢失的问题
2023-10-18 02:42:12 -05:00
ibuler
9b019e45ae perf: 修复协议丢失的问题 2023-10-18 15:40:52 +08:00
fit2bot
71d70501d6 perf: 优化数据库必填 (#11887)
Co-authored-by: ibuler <ibuler@qq.com>
2023-10-18 02:22:17 -05:00
老广
5cd44ebfce Merge pull request #11865 from jumpserver/pr@dev@fix_corntab
fix: 修复crontab语义
2023-10-18 01:13:15 -05:00
老广
03c27ab5b8 Merge pull request #11875 from jumpserver/pr@dev@perf_update_clients_version
perf: 更新clients版本
2023-10-18 01:12:36 -05:00
fit2bot
d3a283232f perf: 优化 xpack license 检查 (#11885)
Co-authored-by: ibuler <ibuler@qq.com>
2023-10-18 01:10:24 -05:00
fit2bot
f088bbce12 perf: 连接方式,动作去掉: 通知 (#11878)
Co-authored-by: feng <1304903146@qq.com>
2023-10-17 19:21:59 +08:00
fit2bot
b313598227 fix: 修复账号批量添加模版账号时name没同步过来,资产创建时使用模版账号没有切换自,资产克隆时生成的账号没有切换自 (#11877)
Co-authored-by: feng <1304903146@qq.com>
2023-10-17 19:15:46 +08:00
halo
3a118b6753 perf: 更新clients版本 2023-10-17 17:13:30 +08:00
Eric_Lee
578c2af57c Merge pull request #11870 from jumpserver/pr@dev@perf_acl_ip
perf: 增加针对 ip 的获取
2023-10-17 16:25:24 +08:00
Eric
b5ef239c6c perf: 增加针对 ip 的获取 2023-10-17 15:57:15 +08:00
fit2bot
e88e4438ba fix: acl 记录操作日志 账号信息为空 (#11869)
Co-authored-by: feng <1304903146@qq.com>
2023-10-17 15:01:21 +08:00
fit2bot
73b75df524 perf: 资产acl拒绝后没记录操作日志 (#11868)
Co-authored-by: feng <1304903146@qq.com>
2023-10-17 14:28:19 +08:00
Bai
772684d24c fix: 修复crontab语义 2023-10-17 11:19:13 +08:00
fit2bot
741705b85b perf: 修改定期清理日志默认时间180天 (#11864)
Co-authored-by: feng <1304903146@qq.com>
2023-10-17 11:11:55 +08:00
fit2bot
f5176bcc6f perf: 修改迁移文件 (#11863)
Co-authored-by: feng <1304903146@qq.com>
2023-10-17 11:04:05 +08:00
fit2bot
c917d8f346 fix: 系统设置 安全设置权限为错误 (#11860)
Co-authored-by: feng <1304903146@qq.com>
2023-10-16 19:33:13 +08:00
fit2bot
5c0905b3b5 fix: 操作日志全局组织数量不对 (#11859)
Co-authored-by: feng <1304903146@qq.com>
2023-10-16 18:51:26 +08:00
fit2bot
bda23b3d2a fix: 调API创建与父节点同名的子节点报错:同级别节点名称不能重复 (#11858)
Co-authored-by: feng <1304903146@qq.com>
2023-10-16 18:15:53 +08:00
fit2bot
8b6526211c perf: 工单动作添加操作日志 (#11857)
Co-authored-by: feng <1304903146@qq.com>
2023-10-16 16:40:21 +08:00
fit2bot
86e8f3a80b fix: 组织管理员不能创建用户 (#11856)
Co-authored-by: feng <1304903146@qq.com>
2023-10-16 15:06:47 +08:00
fit2bot
70661242c1 fix: 在线用户 下线权限错误 导致审计员无权限下线用户 (#11853)
Co-authored-by: feng <1304903146@qq.com>
2023-10-16 14:22:20 +08:00
吴小白
6f4082f800 fix: 修正 actions 测试构建任务 2023-10-16 14:00:40 +08:00
吴小白
edd65f965b perf: 按照需求添加 core-ce 镜像 2023-10-16 13:30:51 +08:00
fit2bot
7dcae1e05a perf: 命令过滤中 去掉通知动作 (#11851)
Co-authored-by: feng <1304903146@qq.com>
2023-10-16 13:27:37 +08:00
fit2bot
0a28c5650c perf: 三方用户登录通知 (#11846)
Co-authored-by: feng <1304903146@qq.com>
2023-10-16 11:28:53 +08:00
fit2bot
f55c84ce3b fix: 发布机500 (#11841)
Co-authored-by: feng <1304903146@qq.com>
2023-10-13 17:19:05 +08:00
fit2bot
ac11790192 perf: 替换iphone mfa 二维码图片 (#11839)
Co-authored-by: feng <1304903146@qq.com>
2023-10-13 16:51:34 +08:00
老广
f80ff279d0 perf: 用户确认和access key
Merge branch 'dev' of github.com:jumpserver/jumpserver into dev
2023-10-13 16:37:45 +08:00
ibuler
d7ac08f6d9 perf: 去掉 debug 2023-10-13 16:36:23 +08:00
ibuler
b5714f7e14 Merge branch 'pr@dev@perf_user_confirm' into pr@dev@perf_change_access_key_create 2023-10-13 16:34:19 +08:00
ibuler
d6b450f32a perf: 修改 ak 2023-10-13 16:33:25 +08:00
ibuler
1daf1acaf3 perf: 修改 access key 2023-10-13 16:31:05 +08:00
fit2bot
ea0e852412 fix: rdp 测试可连接性失败 (#11837)
Co-authored-by: feng <1304903146@qq.com>
2023-10-13 16:21:20 +08:00
ibuler
ce976f215f Merge branch 'dev' of github.com:jumpserver/jumpserver into dev 2023-10-13 16:10:40 +08:00
fit2bot
ffc057f844 fix: 账号改密-执行列表-详情-任务记录:模糊搜索500 (#11835)
Co-authored-by: feng <1304903146@qq.com>
2023-10-13 15:33:35 +08:00
fit2bot
588723a76c perf: 优化资产登录通知信息 (#11834)
Co-authored-by: feng <1304903146@qq.com>
2023-10-13 15:08:56 +08:00
ibuler
1ca912373f perf: 修改用户确认 2023-10-13 14:59:58 +08:00
ibuler
452ee1224c perf: 修改用户确认 2023-10-13 14:40:40 +08:00
fit2bot
7eb497f9d3 fix: 资产登录被限制,没有记录到当前组织的操作日志,而是记录到全局组织 (#11827)
Co-authored-by: feng <1304903146@qq.com>
2023-10-12 20:13:21 +08:00
fit2bot
58fd578ddd perf: 资产登录提示添加账号信息 (#11826)
Co-authored-by: feng <1304903146@qq.com>
2023-10-12 20:04:28 +08:00
fit2bot
e1278360af fix: 资产创建失败 (#11824)
Co-authored-by: feng <1304903146@qq.com>
2023-10-12 19:46:04 +08:00
fit2bot
c0de27ff7a perf: 资产批量更新平台字段,根据平台约束协议自动生效 (#11818)
Co-authored-by: feng <1304903146@qq.com>
2023-10-12 18:11:51 +08:00
ibuler
116d0ba5c6 perf: 优化任务记录 activity 2023-10-12 17:06:12 +08:00
fit2bot
9f042cfa04 Merge branch 'dev' into pr@dev@change_import (#11815)
* perf: 修改获取 ip

* perf: 修改导入

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-10-12 03:17:32 -05:00
Eric_Lee
ce63ea7528 Merge pull request #11812 from jumpserver/pr@dev@fix_get_real_ip
perf: 修改获取 ip
2023-10-12 16:13:57 +08:00
ibuler
8b3fd2c117 perf: 修改获取 ip 2023-10-12 16:09:22 +08:00
ibuler
23ccd6df8c perf: mysql mariadb 数据库不再必填 2023-10-12 14:50:09 +08:00
Bai
614e019f14 fix: 修改迁移文件choices和翻译文件 2023-10-11 21:15:47 -05:00
ibuler
38aa828eb8 perf: passkey 只允许本地用户开启 2023-10-11 04:52:54 -05:00
Bai
7cd2736e82 perf: 优化用户传递的 phone 处理 2023-10-11 04:50:45 -05:00
ibuler
443f6d25e8 perf: Windows 默认使用 rdping 测试 2023-10-11 04:22:08 -05:00
Eric
e8652af054 perf: 更新格式 2023-10-11 04:21:00 -05:00
Eric
fd6a8dd807 perf: 增加错误类型 2023-10-11 04:21:00 -05:00
Eric
499eedd83e perf: 会话新增 error_reason 字段 2023-10-11 04:21:00 -05:00
feng
ca7d164034 perf: 账号模版信息同步到所关联的账号 2023-10-11 04:20:11 -05:00
Bai
3ef8e9603a perf: 优化 otp windows 最小支持设置 0 2023-10-11 04:06:17 -05:00
Bai
09f71d80eb perf: 优化LDAP用户导入列表时任务状态设置 2023-10-11 04:05:51 -05:00
jiangweidong
73db1bf50c feat: 支持LDAP用户组变更时,JS同步变更 2023-10-10 06:37:28 -05:00
fit2bot
6017f804a6 perf: 用户 phone wechat 加密 (#11789)
Co-authored-by: feng <1304903146@qq.com>
2023-10-10 19:11:08 +08:00
ibuler
affa562384 perf: 优化禁用用户 2023-10-10 19:00:00 +08:00
fit2bot
0d101bc5ad perf: 不活跃了用户默认90天检测一下 (#11790)
Co-authored-by: feng <1304903146@qq.com>
2023-10-10 18:48:35 +08:00
jiangweidong
70f0f55ddb feat: 支持自定义短信认证(文件) (#11784)
* feat: 支持自定义短信认证(文件)

* perf: 翻译

* perf: 还原注释
2023-10-10 05:23:54 -05:00
fit2bot
333746e7c4 perf: 优化用户 access key 的使用和创建 (#11776)
* perf: 优化用户 access key 的使用和创建

* perf: 优化 access key api

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-10-10 04:52:52 -05:00
fit2bot
30b19d31eb fix: 账号批量更新失败 (#11785)
Co-authored-by: feng <1304903146@qq.com>
2023-10-10 17:24:56 +08:00
Eric
a844ce23e4 perf: 调整格式 2023-10-10 07:40:48 +05:00
Eric
d6c0139fef perf: 支持持久化设置个人终端主题 2023-10-10 07:40:48 +05:00
jiangweidong
11157563ba perf: 优化跳转接口参数 2023-10-09 16:00:36 +05:00
jiangweidong
95e7bde5d7 perf: 优化翻译 2023-10-09 16:00:36 +05:00
jiangweidong
814350ab80 perf: 翻译 2023-10-09 16:00:36 +05:00
jiangweidong
3ac35eec68 perf: 优化OIDC用户未激活时,会循环跳转登录页面 2023-10-09 16:00:36 +05:00
fit2bot
3d27986c96 perf: asset login 消息通知添加操作日志记录 (#11774)
Co-authored-by: feng <1304903146@qq.com>
2023-10-09 17:16:38 +08:00
fit2bot
c981e9cd9f perf: 主机名包含/ 可以执行ansible任务 (#11772)
Co-authored-by: feng <1304903146@qq.com>
2023-10-09 16:05:42 +08:00
Bai
e00c804a5a perf: 优化校验登录城市名1 2023-10-09 14:43:48 +08:00
fit2bot
ef2b7b464e perf: ansible 用户切换至 (#11766)
Co-authored-by: feng <1304903146@qq.com>
2023-10-09 14:35:21 +08:00
feng
ae5d4257ad fix: 修复账号批量更新失败问题 2023-10-09 10:05:50 +08:00
halo
b42014d58e feat: 支持DB2数据库 2023-10-09 10:04:14 +08:00
feng
e71e8cd595 perf: 优化清除日志天数系统配置校验逻辑 2023-10-08 07:39:19 +05:00
fit2bot
dd50044b89 perf: 翻译 (#11748)
Co-authored-by: feng <1304903146@qq.com>
2023-10-07 17:58:42 +08:00
fit2bot
68707085fa perf: 日志保存时间不少于6个月 (#11742)
Co-authored-by: feng <1304903146@qq.com>
2023-10-07 17:41:45 +08:00
fit2bot
60399fae29 feat: 登录资产消息提醒 (#11747)
Co-authored-by: feng <1304903146@qq.com>
2023-10-07 17:41:20 +08:00
ibuler
f206d963a0 perf: 优化会话 api 2023-10-07 15:57:15 +08:00
fit2bot
42b4e7697d feat: 资产登录acl动作增加操作日志 (#11741)
Co-authored-by: feng <1304903146@qq.com>
2023-10-07 15:50:28 +08:00
fit2bot
0c1f4d99f8 fix: 修复工单引入html错误问题 (#11744)
Co-authored-by: feng <1304903146@qq.com>
2023-10-07 15:28:40 +08:00
ibuler
2aed3fcaea perf: 修改随机数生成,避免使用 random 库 2023-10-07 11:30:45 +05:00
ibuler
28196573bb perf: 修改随机使用secrets 2023-10-07 11:30:45 +05:00
ibuler
27c505853b perf: 优化忘记密码 2023-10-07 11:18:55 +05:00
jiangweidong
896d42c53e perf: 更新jms-storage版本 2023-09-28 18:08:39 +05:00
feng
f79084c2df fix: 账号授权过滤指定账号api 失效问题 2023-09-27 13:11:48 +05:00
ibuler
15a5dda9e0 perf: 修改默认的邮箱地址 2023-09-27 15:15:15 +08:00
ibuler
2069fee795 perf: 优化发送邮件 2023-09-27 08:27:12 +05:00
feng
56a26481a4 perf: 账号模版 生成随机密码密钥及账号批量更新500 2023-09-26 12:55:54 +08:00
ibuler
cbe3d66b39 fix: pubkey auth require svc sign 2023-09-25 23:29:42 +08:00
Bryan
7c67d882aa Revert "fix: pubkey auth require svc sign"
This reverts commit 9bde2ff6e1.
2023-09-25 23:24:52 +08:00
ibuler
9bde2ff6e1 fix: pubkey auth require svc sign 2023-09-25 23:08:55 +08:00
Bai
1f00c00183 fix: 修复验证码校验逻辑和报错信息 2023-09-25 23:03:32 +08:00
ibuler
c369b5478c fix: 修复暴力校验验证码 2023-09-25 22:06:57 +08:00
fit2bot
10363dcc5b fix: 修复用户username 中文 登录失败问题 (#11692)
Co-authored-by: feng <1304903146@qq.com>
2023-09-25 21:39:16 +08:00
jiangweidong
42bdb2cf14 perf: 优化找回密码时区号带加号无法匹配的问题 2023-09-25 16:42:30 +08:00
fit2bot
d64e77db30 perf: 去掉print (#11687)
Co-authored-by: feng <1304903146@qq.com>
2023-09-25 16:37:00 +08:00
fit2bot
4065baf785 feat: 用户登录堡垒机时通知管理员 (#11686)
Co-authored-by: feng <1304903146@qq.com>
2023-09-25 16:25:44 +08:00
Bai
0f3ddc3bf1 fix: 修复系统用户同步同时包含pwd/ssh-key导致创建账号id冲突报错的问题 2023-09-25 16:22:47 +08:00
吴小白
138adeff76 perf: 添加 ping 命令 2023-09-25 10:50:53 +08:00
ibuler
0cf17310e1 fix: 修复 DOMAINS 添加 80和443 不生效的问题 2023-09-22 17:47:43 +08:00
吴小白
43dbb4c226 perf: 添加 patch 命令 2023-09-22 15:20:49 +08:00
Bai
cefd9f4ab2 fix: 解决节点资产数量方法计算不准确的问题 2023-09-22 15:18:22 +08:00
fit2bot
7128593502 perf: CeleryTaskExecution 添加默认排序 (#11663)
Co-authored-by: feng <1304903146@qq.com>
2023-09-22 15:06:58 +08:00
maninhill
5d4fa22058 chore: 优化 README 文案 2023-09-22 10:24:21 +08:00
fit2bot
91dce82b38 fix: 安全设置开启仅已存在用户登录,企业微信等扫描登录,如果用户不存在,还是会自动创建用户登录成功。 (#11651)
Co-authored-by: feng <1304903146@qq.com>
2023-09-21 17:01:03 +08:00
Bryan
d102db7a7b Merge pull request #11650 from jumpserver/pr@dev@dev_master
fix: 解决 master 冲突
2023-09-21 16:53:09 +08:00
Bai
1de7af4984 fix: 解决 master 冲突 2023-09-21 16:51:54 +08:00
Aaron3S
9892ff7dd6 feat: 代码片段支持 oracle 和 mariadb 2023-09-21 16:37:16 +08:00
老广
4cb499953c Revert "perf: 修复事务中任务执行"
This reverts commit cdbe5d31e9.
2023-09-21 15:40:39 +08:00
老广
0397bdeb46 Revert "perf: 修复 task id 不对的问题"
This reverts commit 1d6d92c160.
2023-09-21 15:39:29 +08:00
ibuler
1d6d92c160 perf: 修复 task id 不对的问题 2023-09-21 15:20:16 +08:00
ibuler
cdbe5d31e9 perf: 修复事务中任务执行 2023-09-21 15:04:58 +08:00
fit2bot
b023ca0c69 fix: saml 用户没现在记录 (#11641)
Co-authored-by: feng <1304903146@qq.com>
2023-09-21 14:02:09 +08:00
ibuler
803d590096 perf: 修改生成 applet accounts 2023-09-21 13:06:02 +08:00
ibuler
e11367088a perf: 修改 acl 登录限制问题 2023-09-21 11:33:28 +08:00
jiangweidong
1c74dd00ba fix: 解决sqlserver无法推送和改密的问题 (#11637) 2023-09-20 21:45:21 +08:00
Aaron3S
ed832af631 fix: 修复运行job 组织切换问题 2023-09-20 18:26:47 +08:00
fit2bot
948c499d9e fix: 修复仪表板图表时间范围不准 (#11633)
Co-authored-by: feng <1304903146@qq.com>
2023-09-20 17:41:35 +08:00
fit2bot
a51549cf1c perf: ansible任务 未激活的时候关闭定时任务 (#11631)
Co-authored-by: feng <1304903146@qq.com>
2023-09-20 15:30:29 +08:00
fit2bot
39baf88055 fix: ansible postgresql (#11629)
Co-authored-by: feng <1304903146@qq.com>
2023-09-20 14:29:53 +08:00
fit2bot
90131db55a perf: 修改任务检查 (#11609)
* perf: 修改任务检查

* perf: 修改翻译

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-09-20 11:12:15 +08:00
“huailei000”
ea3ff1ebcb perf: 优化登录页面移动端布局 2023-09-19 20:20:28 +08:00
Aaron3S
f3ca45aa74 perf: 优化 Playbook 文件创建逻辑 2023-09-19 18:49:16 +08:00
老广
74cc174d7a Merge pull request #11622 from jumpserver/pr@dev@perf_random_error
fix: 修复 random error
2023-09-19 18:15:50 +08:00
ibuler
0eba6d2175 fix: 修复 random error 2023-09-19 18:11:27 +08:00
fit2bot
58592a13e3 fix: 解锁ip失败问题 (#11611)
Co-authored-by: feng <1304903146@qq.com>
2023-09-19 17:38:46 +08:00
fit2bot
b8fb23a0a0 perf: user setting (#11610)
Co-authored-by: feng <1304903146@qq.com>
2023-09-19 16:30:48 +08:00
Bai
f5c43488fd perf: 优化 es host 中包含 # 字符时提示错误 2023-09-19 15:31:02 +08:00
Eric
19c76ba01c perf: 删除发布机执行的任务目录 2023-09-19 15:02:02 +08:00
Eric
68c4cd5928 perf: 修复发布机安装应用的报错 2023-09-19 15:01:37 +08:00
fit2bot
e5bfa29c7b fix: 创建用户推送失败问题 (#11606)
Co-authored-by: feng <1304903146@qq.com>
2023-09-19 14:53:43 +08:00
fit2bot
cbb772def7 fix: 修复connection token 获取user错误 (#11603)
Co-authored-by: feng <1304903146@qq.com>
2023-09-19 11:09:58 +08:00
fit2bot
e6fe7c489e perf: 修改账号生成 (#11591)
* perf: 修改账号生成

* perf: 修改账号模版支持策略

* perf: 修改特殊字符数量

* perf: 修改 model 继承

* perf: 修改顺序

* perf: 修改 requirements

* perf: 修改翻译

* perf: 修改随机生成密码

* perf: 修改密钥生成

* perf: 修复 bug

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-09-19 10:59:33 +08:00
fit2bot
0b30f5cf88 perf: 翻译 (#11602)
Co-authored-by: feng <1304903146@qq.com>
2023-09-19 10:36:03 +08:00
fit2bot
018f1a0e8d perf: 删除管理用户错误提醒 (#11596)
Co-authored-by: feng <1304903146@qq.com>
2023-09-18 18:42:02 +08:00
fit2bot
24ed57b98a fix: 三方登录用户无法下线 (#11592)
Co-authored-by: feng <1304903146@qq.com>
2023-09-18 16:20:55 +08:00
ibuler
04a790c4ee perf: 优化 account template platform required 2023-09-18 14:29:41 +08:00
ibuler
2d9a3ef7d4 perf: 修改 migrations,不生成新的迁移文件 2023-09-18 14:29:24 +08:00
ibuler
0d2adeccf2 perf: 优化 applet account delete 2023-09-18 14:18:24 +08:00
Eric
886f977311 perf: 修复 chrome 部分元素定位失败的问题 2023-09-18 14:10:24 +08:00
fit2bot
9367e79bcf perf: 翻译 (#11583)
Co-authored-by: feng <1304903146@qq.com>
2023-09-18 11:11:12 +08:00
fit2bot
af733ecbad fix: 修改平台id序列化属性 改为非只读 (#11581)
Co-authored-by: feng <1304903146@qq.com>
2023-09-17 16:07:05 +08:00
fit2bot
09f9775eab fix: 平台无category type 过滤 (#11580)
Co-authored-by: feng <1304903146@qq.com>
2023-09-17 12:50:31 +08:00
feng
1c2a362beb perf: 修改usersession 模块位置 2023-09-15 17:25:06 +08:00
Eric_Lee
bb1e674367 Merge pull request #11578 from jumpserver/pr@dev@perf_host_deploy_log
perf: 修复发布机历史执行任务日志无法查看的问题
2023-09-15 17:18:45 +08:00
Eric
a75677ab08 perf: 修复发布机历史执行任务日志无法查看的问题 2023-09-15 17:15:12 +08:00
fit2bot
b1daa4d357 fix: 修改不常登录用户锁定逻辑 (#11576)
Co-authored-by: feng <1304903146@qq.com>
2023-09-15 16:39:49 +08:00
fit2bot
c32271ec6f fix: mysql 没配置ssl ansible 连接失败问题 (#11574)
Co-authored-by: feng <1304903146@qq.com>
2023-09-15 16:16:04 +08:00
Aaron3S
beb4f14be9 perf: 优化 jobexecution 创建 2023-09-15 14:39:16 +08:00
fit2bot
e719904874 fix: 修复工单回复报500 (#11571)
Co-authored-by: feng <1304903146@qq.com>
2023-09-15 11:26:13 +08:00
Eric_Lee
664bc2a4d9 Merge pull request #11568 from jumpserver/pr@dev@perf_deplay_task
perf: 优化推送部署任务,事务提交后再执行
2023-09-14 18:30:16 +08:00
ibuler
b91db8c146 perf: 优化推送部署任务,事务提交后再执行 2023-09-14 18:17:22 +08:00
fit2bot
500aeeb77f perf: 升级flower (#11567)
Co-authored-by: feng <1304903146@qq.com>
2023-09-14 18:15:25 +08:00
feng
3abc8bddfa feat: 用户在线session控制 2023-09-14 16:21:57 +08:00
老广
5cbbf9e737 Merge pull request #11561 from jumpserver/pr@dev@perf_i18n
perf: 优化翻译
2023-09-14 14:30:53 +08:00
ibuler
7204a86f87 perf: 优化翻译 2023-09-14 14:26:17 +08:00
老广
829194420a Merge pull request #11559 from jumpserver/pr@dev@limit_super_privilege
feat: 限制超级权限
2023-09-14 13:54:20 +08:00
老广
61dc95d9ae Merge pull request #11560 from jumpserver/pr@dev@perf_i18n
perf: 优化翻译
2023-09-14 11:29:28 +08:00
ibuler
a9f60a9117 perf: 优化翻译 2023-09-14 11:26:12 +08:00
ibuler
82f96d6ed2 feat: 限制超级权限 2023-09-14 10:42:16 +08:00
feng
f6c56d4979 perf: 网络设备 ansible enables true 2023-09-13 19:29:01 +08:00
老广
54d0a1b871 Merge pull request #11554 from jumpserver/pr@dev@perf_add_tip
perf: 添加tips
2023-09-13 17:44:45 +08:00
老广
5b4a267ccd Merge pull request #11553 from jumpserver/pr@dev@feat_support_ansbile_raw
feat: 作业中心支持 raw (网络设备使用)
2023-09-13 17:44:10 +08:00
ibuler
a6d78834e7 perf: 添加tips 2023-09-13 17:43:29 +08:00
Aaron3S
07da98e438 feat: 作业中心支持 raw (网络设备使用) 2023-09-13 17:25:42 +08:00
老广
7c973616cd Merge pull request #11552 from jumpserver/pr@dev@add_api_check_for_unauth
perf: 添加 check api,检测所有 api
2023-09-13 17:24:40 +08:00
ibuler
b9997b07db perf: 去掉不用的 backend 2023-09-13 17:22:50 +08:00
ibuler
bcda879f3b perf: 修改 ticket 认证的 2023-09-13 17:19:13 +08:00
ibuler
d0f79c2df2 perf: 添加 check api 避免未认证 2023-09-13 17:05:01 +08:00
ibuler
1249935bab perf: 优化设置项名称 2023-09-13 10:09:56 +08:00
ibuler
5fa1ae9ee5 perf: 修改说明 2023-09-12 15:59:25 +08:00
Bai
d0755c4719 fix: 修复系统任务支持通过 id、name 进行搜索 2023-09-12 15:35:11 +08:00
fit2bot
72b215ed03 feat: 支持 passkey 登录 (#11519)
* perf: 基本完成功能

* perf: 优化 passkey

* perf: 优化 passkey

* perf: 完成 passkey

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-09-11 18:15:03 +08:00
fit2bot
d7ca1a09d4 perf: connectiontoken 添加 connect_options file_name_conflict_resolution参数 给koko处理冲冲突文件名 (#11535)
Co-authored-by: feng <1304903146@qq.com>
2023-09-11 16:22:11 +08:00
fit2bot
04e341a1bb perf: 翻译 (#11534)
Co-authored-by: feng <1304903146@qq.com>
2023-09-11 15:26:50 +08:00
fit2bot
a41909ec8d feat: 个人设置 (#11494)
Co-authored-by: feng <1304903146@qq.com>
2023-09-11 14:38:07 +08:00
ibuler
f9d6de9c39 fix: 修复 private storage permission 2023-09-11 11:20:12 +08:00
halo
816b284a51 perf: 支持windows客户端msi格式 2023-09-11 11:15:17 +08:00
Eric
d4c5dcf069 perf: 修改变更时间 2023-09-07 19:30:59 +08:00
Eric
73037c21e8 perf: chrome 代填进度条最大 30s 超时 2023-09-07 19:30:59 +08:00
halo
c7f9259a2e perf: 更新客户端 v2.0.1 2023-09-07 19:30:25 +08:00
feng
8632bd2480 fix: 修复ip被锁定列表展示数据不准问题 2023-09-07 19:28:11 +08:00
ibuler
23723f4eda perf: 优化 ftp log 索引 2023-09-07 19:27:49 +08:00
Bai
38601a84c2 perf: 优化 GitHub Labels 2023-09-06 16:42:42 +08:00
fit2bot
e50189e284 fix: 修复工单审计员切换其他资产,原资产未删除问题 (#11511)
Co-authored-by: feng <1304903146@qq.com>
2023-09-06 15:13:02 +08:00
jiangweidong
da9bd11db5 feat: 系统工具支持traceroute (#11474) 2023-09-06 10:30:55 +08:00
Bai
9acb7d6183 perf: 优化 GitHub 默认 Assignees 2023-09-04 14:43:18 +05:00
Bai
dbd9a9fdac perf: 优化 GitHub 默认 Assignees 2023-09-04 12:03:16 +05:00
fit2bot
25301aa396 perf: 修改 sftp 的说明文案 (#11490)
* perf: 修改 sftp 的说明文案

* perf: 修改翻译问题

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-09-04 13:48:53 +08:00
老广
8cc1ca2770 Merge pull request #11483 from jumpserver/pr@dev@perf_db_cli
perf: 修改数据库 cli 连接方式的支持
2023-08-31 19:03:20 +08:00
Eric
bad01aefa2 perf: 修改数据库 cli 连接方式的支持 2023-08-31 18:23:30 +08:00
老广
56a989bfb9 Merge pull request #11481 from jumpserver/pr@dev@perf_online_num
perf: 修改在线数量
2023-08-31 17:44:25 +08:00
fit2bot
578f66d5e2 fix: 账号推送定时任务不执行 (#11482)
Co-authored-by: feng <1304903146@qq.com>
2023-08-31 17:43:52 +08:00
ibuler
8d6083bfb2 perf: 修改在线数量 2023-08-31 17:42:21 +08:00
fit2bot
1138cd3334 perf: 添加 session 在线数量 (#11464)
* perf: 添加 session 在线数量

* perf: 优化会话数量

* perf: 优化会话数量

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-08-31 17:00:03 +08:00
fit2bot
db0b43ee84 perf: 优化 dashboard api (#11478)
Co-authored-by: feng <1304903146@qq.com>
2023-08-31 15:05:05 +08:00
Bai
40a460870a fix: 优化 db_port 日志显示 2023-08-31 10:52:41 +05:00
fit2bot
51910ea2c1 fix: 修复历史会话为负数的情况 (#11472)
Co-authored-by: feng <1304903146@qq.com>
2023-08-30 18:18:08 +08:00
fit2bot
266a360a97 feat: 可查看全局被限制的ip 并且可以解锁 (#11394)
Co-authored-by: feng <1304903146@qq.com>
2023-08-30 17:31:59 +08:00
fit2bot
24194b4e4d perf: 翻译 (#11468)
Co-authored-by: feng <1304903146@qq.com>
2023-08-30 16:01:16 +08:00
fit2bot
992e34d652 feat: mysql 证书 (#11465)
Co-authored-by: feng <1304903146@qq.com>
2023-08-30 15:15:49 +08:00
老广
894249a3d1 Merge pull request #11452 from jumpserver/pr@dev@feat_audit_view_download_replay
feat: 查看/下载录像记录在操作及活动日志中
2023-08-30 13:48:53 +08:00
老广
21c6fe19a1 Merge pull request #11459 from jumpserver/pr@dev@metics
perf: dashboard date metrics
2023-08-30 13:26:31 +08:00
老广
e4e4f82143 Merge pull request #11461 from jumpserver/pr@dev@fix_cas_login_failed
fix: 解决CAS无法登陆问题
2023-08-30 13:25:30 +08:00
jiangweidong
2a5c635dc5 fix: 修改日志内容 2023-08-30 11:32:54 +08:00
jiangweidong
7dbaa28539 fix: 解决CAS无法登陆问题 2023-08-30 11:28:17 +08:00
feng
5bae4cde58 perf: dashboard date metrics 2023-08-29 22:04:08 +08:00
老广
35c0d7be35 Merge pull request #11455 from jumpserver/pr@dev@feat_settings_tool_ping_telnet_multi
feat: telnet、ping支持批量测试
2023-08-29 19:05:56 +08:00
jiangweidong
1f2a4b0fb5 feat: telnet、ping支持批量测试 2023-08-29 17:02:51 +08:00
jiangweidong
7c3a3d599b perf: 参数修改 2023-08-29 15:18:51 +08:00
jiangweidong
d70770775a perf: 翻译 2023-08-29 15:16:02 +08:00
jiangweidong
bc217e1bad Merge branch 'dev' of https://github.com/jumpserver/jumpserver into pr@dev@feat_audit_view_download_replay 2023-08-29 14:21:11 +08:00
jiangweidong
d4469aeaf7 feat: 查看/下载录像被记录在活动日志中 2023-08-29 14:21:06 +08:00
老广
904406c5c1 Merge pull request #11442 from jumpserver/pr@dev@fix_migrate_sftp
fix: 修复迁移的 sftp 数量不对
2023-08-28 19:03:28 +08:00
ibuler
09db2ad3e1 fix: 修复迁移的 sftp 数量不对 2023-08-28 16:48:22 +08:00
fit2bot
859268f7f3 perf: 优化账号创建 (#11440)
* feat: 支持账号模版自动推送
* perf: 修改模版
* perf: 优化账号创建

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-08-28 15:43:45 +08:00
老广
72bb5a4037 Merge pull request #11439 from jumpserver/pr@dev@change_tips
perf: 修改同名账号的提示
2023-08-28 11:25:55 +08:00
ibuler
6f3871d5fe perf: 修改同名账号的提示 2023-08-28 11:24:54 +08:00
“huailei000”
2f0c346365 perf: 优化不能生成MFA二维码问题 2023-08-25 12:01:51 +05:00
老广
e9c090f656 Merge pull request #11410 from hoilc/hoilc-patch-1
perf: 通过网域连接k8s时支持默认端口
2023-08-24 18:25:14 +08:00
老广
7b0b07cf52 Merge pull request #11415 from jumpserver/pr@dev@perf_select_host
perf: 优化 applet 发布机选择
2023-08-24 18:14:08 +08:00
ibuler
bebb90f688 perf: 优化 applet 发布机选择 2023-08-24 18:00:19 +08:00
hoilc
ac14a70c51 perf: 通过网域连接k8s时支持默认端口 2023-08-24 16:10:29 +08:00
jiangweidong
642f92c0a3 fix: saml2无法登陆问题 2023-08-24 11:05:50 +05:00
fit2bot
04f4ecb3d1 perf: 优化文案 (#11405)
Co-authored-by: ibuler <ibuler@qq.com>
2023-08-24 10:58:27 +08:00
老广
60703c920c Merge pull request #11381 from jumpserver/pr@dev@sqlserver_add_version
perf: sql server 添加驱动标识
2023-08-24 10:55:48 +08:00
ibuler
9634f397df perf: 不允许修改自己的角色 2023-08-23 16:11:05 +05:00
ibuler
f9a7a95191 fix: 修复 Host name 中包含 [ 导致 ansible 错误的问题 2023-08-23 16:07:58 +05:00
ibuler
bced33fd93 perf: sql server 添加驱动标识 2023-08-22 13:40:41 +08:00
老广
1044ff004b Merge pull request #11372 from jumpserver/pr@dev@device_add_sftp
perf: 网络设备支持 sftp
2023-08-21 15:40:30 +08:00
ibuler
e11c7a264e perf: 网络设备支持 sftp 2023-08-21 15:20:58 +08:00
老广
3c497aa81e Merge pull request #11361 from jumpserver/pr@dev@perf_login_csrf
perf: 修改 csrf 登录时判断
2023-08-18 20:44:25 +08:00
ibuler
c8a1f4b092 perf: 修改 csrf 登录时判断 2023-08-18 20:36:58 +08:00
老广
9dd2dc8907 Merge pull request #11358 from jumpserver/pr@dev@perf_csrf_token_error
perf: 修改 csrf token 提示
2023-08-18 18:42:50 +08:00
ibuler
56285d906f perf: 修改 csrf token 提示 2023-08-18 18:41:10 +08:00
ibuler
44b536a23b perf: 去掉 migrate 提示 2023-08-18 15:17:41 +05:00
老广
a97003a03a Merge pull request #11353 from jumpserver/pr@dev@perf_login_info
perf: 优化登录页面提示判断,可能没有端口
2023-08-18 18:00:26 +08:00
ibuler
4315cbe6d0 perf: 优化登录页面提示判断,可能没有端口
perf: 修改 login 检测
2023-08-18 17:59:13 +08:00
老广
b2d9670721 Merge pull request #11349 from jumpserver/pr@dev@perf_info
perf: 修改说明
2023-08-18 17:01:31 +08:00
ibuler
78f66c46e8 perf: 修改说明 2023-08-18 16:59:07 +08:00
老广
f3af9c3108 Merge pull request #11346 from jumpserver/pr@dev@fix_sessionshare
fix: 修复创建会话分享不填写用户报错的问题
2023-08-18 16:52:07 +08:00
ibuler
822a124dbc perf: 优化登录提示 2023-08-18 13:51:27 +05:00
Bai
20799ece93 fix: 修复创建会话分享不填写用户报错的问题 2023-08-18 08:46:14 +00:00
老广
4e2c7d7aab Merge pull request #11343 from jumpserver/pr@dev@allow_hosts_to_all
perf: 修改 allowed hosts
2023-08-18 16:17:25 +08:00
ibuler
75e4895314 perf: 修改 allowed hosts 2023-08-18 16:15:25 +08:00
Bai
ea7b409a7f fix: 修复资产树子节点创建后没有获取到的问题 2023-08-18 13:03:54 +05:00
老广
01d10a25e9 Merge pull request #11337 from jumpserver/pr@dev@perf_change_depends
perf: 修改依赖
2023-08-18 15:27:57 +08:00
ibuler
61ce39b4ba perf: 修改依赖 2023-08-18 15:19:26 +08:00
feng
7506c7ea43 fix: 修复密钥校验ansible不支持{% 2023-08-17 16:16:34 +05:00
老广
f6f162ec3a Merge pull request #11324 from jumpserver/pr@master@perf_django_ca_version
perf: 修改 django cas version
2023-08-17 17:43:23 +08:00
老广
2e840e3b05 Merge pull request #11323 from jumpserver/pr@dev@perf_django_ca_version
perf: 修改 django cas version
2023-08-17 17:43:04 +08:00
ibuler
ff4560c2a7 perf: 修改 django cas version 2023-08-17 09:42:27 +00:00
ibuler
deeb8da226 perf: 修改 django cas version 2023-08-17 17:39:58 +08:00
Bryan
03273b2ec4 Merge pull request #11322 from jumpserver/dev
v3.6.0
2023-08-17 13:56:25 +05:00
老广
737cae8d03 Merge pull request #11320 from jumpserver/pr@dev@fix_operatelog_not_record_component
fix: 操作日志判断is_service_account为匿名用户会报错
2023-08-17 16:29:04 +08:00
jiangweidong
cf6ce0fa2e fix: 操作日志判断is_service_account为匿名用户会报错 2023-08-17 16:21:30 +08:00
fit2bot
7dd6ee5f1a perf: translate (#11319)
Co-authored-by: feng <1304903146@qq.com>
2023-08-17 15:34:50 +08:00
老广
91432f0e8f Merge pull request #11318 from jumpserver/pr@dev@update_poetry_lock
perf: 更新 poetry lock
2023-08-17 15:28:51 +08:00
ibuler
6c36b5be92 perf: 更新 poetry lock 2023-08-17 15:25:44 +08:00
Bai
7b89055fbf fix: 账号备份参数控制 2023-08-17 11:50:17 +05:00
jiangweidong
c0f3769f9f perf: 优化组件的操作行为不记录到操作日志中 2023-08-17 11:49:57 +05:00
fit2bot
b20abb494f perf: 优化 vault 配置 (#11313)
Co-authored-by: feng <1304903146@qq.com>
2023-08-17 12:12:58 +08:00
老广
a084bc9962 Merge pull request #11310 from jumpserver/pr@dev@perf_applet_deploy
perf: 优化发布机的注册名称,避免重复
2023-08-17 10:59:53 +08:00
老广
cbb615e2ce Merge pull request #11311 from jumpserver/pr@dev@perf_applet_enterprise
perf: applet 上传检查版本
2023-08-17 10:57:53 +08:00
ibuler
769d5fbd96 perf: applet 上传检查版本 2023-08-17 10:54:35 +08:00
Eric
bbd36fea03 perf: 优化发布机的注册名称,避免重复 2023-08-17 10:33:59 +08:00
老广
9317d9e35e Merge pull request #11307 from jumpserver/pr@dev@perf_add_xframe_option
perf: add iframe option
2023-08-17 10:21:53 +08:00
ibuler
f697033252 perf: add iframe option 2023-08-17 10:18:27 +08:00
老广
eb8d80d417 Merge pull request #11302 from jumpserver/pr@dev@fix_ops_shell_run_failed
fix: 修复 shell 批量命令无法执行的问题
2023-08-16 18:43:35 +08:00
老广
d5ac8b16f1 Merge pull request #11305 from jumpserver/pr@dev@perf_task_err
perf: 修复发布机任务执行失败的问题
2023-08-16 18:43:02 +08:00
老广
ed54cc8507 Merge pull request #11306 from jumpserver/pr@dev@perf_chrome_ext
fix: 修复 chrome 插件不生效的问题
2023-08-16 18:33:14 +08:00
ibuler
40248077cd fix: 修复 chrome 插件不生效的问题 2023-08-16 18:30:29 +08:00
Eric
45e1723aa9 perf: 修复发布机任务执行失败的问题 2023-08-16 18:17:32 +08:00
Aaron3S
af9f7060be fix: 修复 shell 批量命令无法执行的问题 2023-08-16 17:01:35 +08:00
Eric
8f10b84e94 perf: 修复 Chrome 执行脚本失败,页面卡在进度条界面的问题 2023-08-16 13:48:00 +05:00
halo
d02cbcc3a3 perf: linux客户端文件后缀 2023-08-16 13:47:30 +05:00
ibuler
689fd12141 perf: windows 可以添加 sftp 2023-08-16 12:24:56 +05:00
Eric
3c9c494979 perf: 修复发布机因同名账号创建造成的部署异常 2023-08-16 12:15:02 +05:00
老广
16ceb79427 Merge pull request #11292 from jumpserver/pr@dev@k8s_add_icon
perf: 修改 k8s icon
2023-08-16 13:44:51 +08:00
老广
cd5e53e3dc Merge pull request #11293 from jumpserver/pr@dev@oracledb_thin_mode
perf: python-oracledb Thin Mode
2023-08-16 13:44:26 +08:00
吴小白
df1aa73723 perf: python-oracledb Thin Mode 2023-08-16 13:11:48 +08:00
ibuler
ceee2e1633 perf: 修改 k8s icon 2023-08-16 11:42:36 +08:00
吴小白
91867fa01d Merge pull request #11291 from jumpserver/pr@dev@perf_Dockerfile
perf: 优化构建企业版本镜像
2023-08-16 11:24:18 +08:00
吴小白
dfde9258c7 perf: 优化构建企业版本镜像 2023-08-16 11:17:53 +08:00
fit2bot
fc595bc4e4 perf: 启动 ssh 隧道错误处理优化 (#11287)
Co-authored-by: feng <1304903146@qq.com>
2023-08-15 18:50:48 +08:00
老广
48aa48e7a3 Merge pull request #11262 from jumpserver/pr@dev@revert_dockerfile
revert: 还原构建
2023-08-15 18:37:56 +08:00
老广
479378aa46 Merge branch 'dev' into pr@dev@revert_dockerfile 2023-08-15 18:37:38 +08:00
fit2bot
362c2a9509 perf: 修改翻译 账号模版批量添加 config配置文件 (#11286)
Co-authored-by: feng <1304903146@qq.com>
2023-08-15 18:24:01 +08:00
老广
a423d241a5 Merge pull request #11285 from jumpserver/pr@dev@perf_settings
perf: 再次修改 setting
2023-08-15 17:00:14 +08:00
ibuler
9e6221443e perf: 再次修改 setting 2023-08-15 16:58:41 +08:00
fit2bot
12744a08af perf: vault 日志 (#11282)
Co-authored-by: feng <1304903146@qq.com>
2023-08-15 15:09:25 +08:00
老广
5e29c7e7bf Merge pull request #11275 from jumpserver/pr@dev@perf_setting
perf: 优化设置布局
2023-08-15 13:52:54 +08:00
ibuler
02f38fe37a perf: merge with dev 2023-08-15 13:51:59 +08:00
ibuler
663ccbca6f perf: 修改翻译 2023-08-15 13:49:56 +08:00
ibuler
c4528612d5 perf: 修改完成 2023-08-15 13:45:44 +08:00
Bai
7707101379 perf: 优化飞书信息通知文案 2023-08-15 08:17:24 +05:00
BoringCat
873e6d1ab9 修复飞书markdown信息渲染问题 2023-08-15 07:47:21 +05:00
fit2bot
7ba261c4f0 perf: vault 同步日志 (#11278)
Co-authored-by: feng <1304903146@qq.com>
2023-08-15 10:32:03 +08:00
fit2bot
1f8428ac1c perf: vault 同步速度问题 (#11277)
Co-authored-by: feng <1304903146@qq.com>
2023-08-14 22:32:53 +08:00
ibuler
8e0c04c84c perf: 优化设置布局 2023-08-14 19:40:21 +08:00
Bai
a6e49b730b fix: 修复忘记密码不包含左侧 + 字符 2023-08-14 15:42:32 +05:00
fit2bot
c11ba16e4e perf: oidc 替换原有的is_ajax方法,优化accountbackupexecution 迁移文件 (#11274)
Co-authored-by: feng <1304903146@qq.com>
2023-08-14 18:37:28 +08:00
Eric
efe57b3ebe perf: 修复手动登陆账号密码无法赋值问题 2023-08-14 14:46:51 +05:00
Eric
4899f6bb69 fix: 修复发布机网关选择 2023-08-14 14:45:37 +05:00
jiangweidong
ef0c2f41ac perf: 翻译 2023-08-14 14:38:47 +05:00
jiangweidong
98b4f51cbb fix: 修复云同步策略权限位置显示不正常问 2023-08-14 14:38:47 +05:00
fit2bot
da52180976 perf: 组织角色添加connectiontoken权限 (#11268)
Co-authored-by: feng <1304903146@qq.com>
2023-08-14 16:37:56 +08:00
fit2bot
bd642a0281 perf: 翻译 (#11266)
Co-authored-by: feng <1304903146@qq.com>
2023-08-14 14:47:51 +08:00
吴小白
dc88e4f420 fix: 添加 nmap 包 2023-08-14 14:25:08 +08:00
老广
7a3a0b2d8e Merge pull request #11264 from jumpserver/pr@dev@fix_recursive_expansion
fix: 解决类型树展开全部时,根节点无限递归展开问题
2023-08-14 11:26:59 +08:00
老广
eac1b287e4 Merge pull request #11265 from jumpserver/pr@dev@perf_jms-storage
perf: jms-storage==0.0.51
2023-08-14 11:25:54 +08:00
Bai
d2f7396689 perf: jms-storage==0.0.51 2023-08-14 11:20:58 +08:00
jiangweidong
db4f05afbe fix: 解决类型树展开全部时,根节点无限递归展开问题 2023-08-14 11:07:28 +08:00
吴小白
339fe1b73b revert: 还原构建 2023-08-14 11:06:04 +08:00
fit2bot
237c71f921 perf: vault 同步日志优化 (#11261)
Co-authored-by: feng <1304903146@qq.com>
2023-08-14 10:57:59 +08:00
吴小白
bd7c5f8e65 revert: 还原构建 2023-08-14 10:57:40 +08:00
“huailei000”
c3ea5300a3 perf: 优化任务日志页面时间显示兼容问题 2023-08-14 07:11:11 +05:00
fit2bot
e2de744398 perf: 优化vault 配置 (#11254)
Co-authored-by: feng <1304903146@qq.com>
2023-08-11 16:01:05 +08:00
Bai
a890a8d535 perf: 发布机获取账号API移除日志 2023-08-11 12:17:01 +05:00
老广
c39e134834 Merge pull request #11250 from jumpserver/pr@dev@perf_applet_gen_private_account
perf: 账号生成时,排除 [ 开头的
2023-08-10 18:28:36 +08:00
ibuler
e9e5fbb4c2 perf: 账号生成时,排除 [ 开头的 2023-08-10 18:23:53 +08:00
Bai
3203c298e5 perf: 发布机获取账号API增加日志 2023-08-10 14:57:50 +05:00
老广
e416a5d5d7 Merge pull request #11247 from jumpserver/pr@dev@perf_change_edition
perf: 修改翻译
2023-08-10 17:32:06 +08:00
ibuler
7ea61c0f22 perf: 修改翻译 2023-08-10 17:30:04 +08:00
老广
b2108ec624 Merge pull request #11245 from jumpserver/pr@dev@perf_account_perm
perf: 修复账号权限问题
2023-08-10 16:03:22 +08:00
ibuler
433324ec8c perf: 修复账号权限问题 2023-08-10 15:56:31 +08:00
老广
ac20bfe024 Merge pull request #11243 from jumpserver/pr@dev@perf_update_clients_version
perf: 更新clients版本
2023-08-10 15:18:09 +08:00
老广
a116c7db39 Merge pull request #11244 from jumpserver/pr@dev@perf_merge_migrate
perf: 合并 migrations
2023-08-10 15:13:48 +08:00
ibuler
71e69782b7 perf: 合并 migrations 2023-08-10 15:11:52 +08:00
老广
7611d4e7ce Merge pull request #11242 from jumpserver/pr@dev@perf_applet_enterprise
perf: 修改 applet 企业版
2023-08-10 14:42:52 +08:00
ibuler
a778a40b21 perf: 修改 applet 企业版 2023-08-10 14:41:43 +08:00
老广
4e254493bc Merge pull request #11241 from jumpserver/pr@dev@perf_core_host
perf: 优化 CORE_HOST
2023-08-10 13:07:14 +08:00
ibuler
07530bc56b perf: 优化 CORE_HOST 2023-08-10 12:23:40 +08:00
老广
259daaab38 Merge pull request #11240 from jumpserver/pr@dev@perf_i18n
perf: 修改翻译
2023-08-10 12:22:31 +08:00
老广
c769c06202 Merge pull request #11239 from jumpserver/pr@dev@default_add_core
perf: 修改默认添加 core 到 allow hosts
2023-08-10 11:24:31 +08:00
ibuler
e0463420fa perf: 修改默认添加 core 到 allow hosts 2023-08-10 11:23:42 +08:00
ibuler
1944e80418 perf: 修改翻译 2023-08-10 11:19:17 +08:00
fit2bot
4b72099053 perf: 连接方式新增 guide 模式 (#11237)
Co-authored-by: ibuler <ibuler@qq.com>
2023-08-09 19:59:53 +05:00
Aaron3S
dcf113b87c feat: 增加作业中心 sql 支持 2023-08-09 17:32:35 +08:00
Bai
ab6d0d2484 perf: 优化账号 API 支持 comment 模糊搜索 2023-08-09 17:05:21 +08:00
Eric
7bef4b07ff feat: 增加会话最大连接时长设置 2023-08-09 10:37:38 +08:00
fit2bot
f486c843bf feat: 支持拉起本地客户端 (#10865)
* perf: 拉起本地客户端应用接口提供更多数据

* fix: rdp客户端拉起后窗口标题中文乱码

* perf: ssh客户端连接选项显示优化

* feat: 增加本地sftp客户端选项

* perf: 合并支持sftp协议

* perf: sftp与ssh使用相同端口

---------

Co-authored-by: halo <wuyihuangw@gmail.com>
2023-08-09 10:36:54 +08:00
halo
90038e41f9 perf: 更新clients版本 2023-08-08 19:09:24 +08:00
fit2bot
33ee84633f perf: 修改terminal metrics接口 加入terminal name (#11228)
Co-authored-by: feng <1304903146@qq.com>
2023-08-08 18:45:10 +08:00
ibuler
419806aa57 perf: 去掉 requirements.txt 2023-08-08 17:52:44 +08:00
fit2bot
8ea3c3288b perf: 改密替换校验可连接性方法 (#11224)
Co-authored-by: feng <1304903146@qq.com>
2023-08-08 17:26:29 +08:00
老广
99ce2bc946 Merge pull request #11222 from jumpserver/pr@dev@perf_change_help_text
perf: 优化 applet 选择账号调度
2023-08-08 16:50:17 +08:00
ibuler
9bf76ae07a perf: 优化 applet 选择账号调度 2023-08-08 16:15:44 +08:00
ibuler
a33540710e perf: 优化 applet 选择账号调度 2023-08-08 15:58:24 +08:00
ibuler
680d31dad2 perf: 优化 applet 账号选择 2023-08-08 15:58:24 +08:00
Bai
a297355a0d fix: 修复 accounts 迁移文件编号冲突 2023-08-08 14:07:08 +08:00
ibuler
e891283925 perf: System 组织不允许删除 2023-08-08 10:33:28 +08:00
ibuler
c72ec5ea78 perf: 组织属性添加 internal 2023-08-08 10:33:28 +08:00
fit2bot
b764827003 perf: 虚拟账号增加密码选项 (#11201)
* perf: 修改账号配置

* perf: 修改 account

* perf: 修改 virtual account

* perf: 虚拟账号增加密码选项

* perf: 修改获取虚拟账号

* perf: 修改 virtual account

* perf: 修改一些写法

* perf: 添加说明

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-08-08 10:16:23 +08:00
Eric
a261b2de3c perf: 优化用户个人 ssh 公钥校验 2023-08-07 18:52:45 +08:00
Eric
e939776da0 chore: 更新 poetry.lock 2023-08-07 18:48:38 +08:00
fit2bot
0a9726d845 feat: 账号备份密钥拆分 (#11199)
Co-authored-by: feng <1304903146@qq.com>
2023-08-07 15:50:09 +08:00
fit2bot
c21fcacf70 perf: 检测不常用账号 (#11205)
Co-authored-by: feng <1304903146@qq.com>
2023-08-07 14:55:17 +08:00
jiangweidong
f588a112fb perf: 修改nmap位置 2023-08-07 14:01:58 +08:00
jiangweidong
ecca64ef42 perf: Dockerfile中安装nmap工具 2023-08-07 14:01:58 +08:00
吴小白
56a657827a Merge pull request #11210 from jumpserver/pr@dev@fix_huaweicloud_sdk
fix: 添加华为云依赖包
2023-08-07 12:18:59 +08:00
jiangweidong
38803518fc perf: 类型树右击可以获取节点下所有的资产 2023-08-07 12:15:50 +08:00
jiangweidong
c2f1e4f4f6 fix: 添加华为云依赖包 2023-08-07 11:07:28 +08:00
Eric
49662b308d feat: Chrome 应用通过平台的安全模式动态加载扩展 2023-08-07 11:03:18 +08:00
jiangweidong
7636255533 feat: 系统工具改为异步,增加tcpdump工具 2023-08-07 10:18:51 +08:00
吴小白
8accd296b8 Merge pull request #11202 from jumpserver/pr@dev@perf_dockerfile
perf: 优化 Dockerfile
2023-08-05 14:34:42 +08:00
吴小白
e424e3c311 perf: 优化 Dockerfile 2023-08-05 14:18:27 +08:00
老广
e38dd96d6f Merge pull request #11191 from jumpserver/pr@dev@perf_http_support_unsafe_mode
perf: 修改 safe mode
2023-08-04 14:02:42 +08:00
吴小白
170f1e40d6 Merge pull request #11190 from jumpserver/pr@dev@perf_dockerfile
perf: 优化构建
2023-08-03 20:29:20 +08:00
Bai
2aacb07b15 fix: 修复 MAX_LIMIT_PER_PAGE, 默认值以及数据类型转换 2023-08-03 18:38:58 +08:00
ibuler
6b9f40d5c1 perf: 修改 safe mode 2023-08-03 16:52:21 +08:00
ibuler
27c4e1d895 perf: web 平台增加高级选项,可以控制是否安全模式 2023-08-03 16:09:54 +08:00
吴小白
65916a469c perf: 优化构建 2023-08-03 14:33:22 +08:00
jiangweidong
ff2aace569 feat: ssh_ping及custom_command支持sudo及su切换用户 (#11180) 2023-08-03 14:09:13 +08:00
fit2bot
8cfec07faa fix: 修复 在AWS公有云环境中,rds等资产的域名解析长度超过JumpServer资产限制的128字节导致连接失败问题 (#11188)
Co-authored-by: feng <1304903146@qq.com>
2023-08-03 11:21:30 +08:00
老广
4dc6bd3660 Merge pull request #11186 from jumpserver/pr@dev@perf_merge_migrations
perf: 合并 migrations
2023-08-03 10:53:25 +08:00
ibuler
ee874f3ddc perf: 合并 migrations 2023-08-03 10:52:13 +08:00
老广
9691125c7a Merge pull request #11182 from jumpserver/pr@dev@perf_telnet_prompt
perf: 修改 telnet 平台 setting
2023-08-02 18:27:10 +08:00
ibuler
41fa1d65ff perf: 修改 telnet 平台 setting 2023-08-02 17:54:11 +08:00
fit2bot
6d2e7cf7f4 perf: 任务添加过滤项 (#11181)
Co-authored-by: feng <1304903146@qq.com>
2023-08-02 17:51:58 +08:00
ibuler
4ef05a1cd4 perf: 修改 telnet 平台,支持自定义 prompt 2023-08-02 16:53:47 +08:00
老广
207d015497 Merge pull request #11177 from jumpserver/pr@dev@perf_del_remote
perf: 不能 remove
2023-08-02 15:49:53 +08:00
ibuler
85058f8599 perf: 不能 remove 2023-08-02 15:45:13 +08:00
老广
55dad53934 Merge pull request #11175 from jumpserver/pr@dev@no_virtual_env
perf: 不创建 venv
2023-08-02 15:40:43 +08:00
ibuler
958290529a perf: 不创建 venv 2023-08-02 15:37:30 +08:00
老广
ba128e99f9 perf: 添加清华源 (#11174) 2023-08-02 15:30:20 +08:00
fit2bot
89c4a8d5c4 perf: 去掉 lock 中的 source (#11173)
* perf: 去掉 lock 中的 source

* perf: 去掉格式化

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-08-02 15:17:21 +08:00
fit2bot
6d758bdb59 fix: k8s 支持网关 (#11171)
Co-authored-by: feng <1304903146@qq.com>
2023-08-02 15:07:22 +08:00
老广
eb8e7c5f8a Merge pull request #11170 from jumpserver/pr@dev@add_mirror
perf: using mirror
2023-08-02 14:54:56 +08:00
ibuler
ef4f1ddb74 perf: using mirror 2023-08-02 14:52:12 +08:00
老广
e14e5b523a Merge pull request #11166 from jumpserver/pr@dev@using_poetry_requirements
perf: 使用 poetry 管理依赖
2023-08-02 13:51:35 +08:00
ibuler
99ae0066ae perf: 使用 poetry 管理依赖 2023-08-02 13:45:15 +08:00
fit2bot
d486dfc7f7 fix: 修复因vault 改密500 问题 (#11168)
Co-authored-by: feng <1304903146@qq.com>
2023-08-02 13:11:46 +08:00
fit2bot
93ba4443dd perf: windows ssh 协议 默认开启 (#11158)
Co-authored-by: feng <1304903146@qq.com>
2023-08-01 19:48:32 +08:00
fit2bot
d182d14e26 perf: 账号备份日志优化 (#11151)
Co-authored-by: feng <1304903146@qq.com>
2023-08-01 18:17:02 +08:00
fit2bot
8ed823d587 feat: 批量不是发布机 (#11150)
Co-authored-by: feng <1304903146@qq.com>
2023-08-01 17:42:16 +08:00
fit2bot
44397caad4 perf: 支持在线会话暂停操作 (#11146)
* perf: 支持在线会话暂停操作

* perf: 优化代码

---------

Co-authored-by: Eric <xplzv@126.com>
2023-08-01 16:40:38 +08:00
fit2bot
d17e2cde06 feat: 终端会话增加字段: cmd_amount(命令数量) (#11136)
* feat: 终端会话增加字段: command_amount(命令数量)

* perf: 优化已产生会话的命令数量计算方式

* Update 0065_session_command_amount.py

* Update session.py

* Update session.py

* perf: 优化会话命令数量的计算逻辑

* perf: 优化命令数量获取

---------

Co-authored-by: fangfang.dong <fangfang.dong@fit2cloud.com>
Co-authored-by: Bai <baijiangjie@gmail.com>
2023-08-01 16:14:40 +08:00
feng
681988f450 fix: ansible task 500 2023-08-01 16:07:07 +08:00
ibuler
6b333adc05 perf: 修改 ansible version 2023-08-01 10:50:54 +08:00
ibuler
5207b99696 perf: 修改 inventory 2023-08-01 10:49:40 +08:00
fangfang.dong
b93b64255b perf: 统一用户名称的label显示 2023-07-31 20:11:44 +08:00
Aaron3S
f9c9c9d525 fix: 禁止一些 ansible 变量 2023-07-31 19:46:33 +08:00
fit2bot
1ad0a20627 fix: 启动500 (#11133)
Co-authored-by: feng <1304903146@qq.com>
2023-07-31 18:31:11 +08:00
老广
0ed929a3b2 Merge pull request #11129 from jumpserver/pr@dev@fix_common_elasticsearch
fix: 修复es7创建index的错误
2023-07-31 17:54:13 +08:00
nut
2ffadcb9bc Update es.py 2023-07-31 17:53:08 +08:00
fit2bot
3b615719fe feat: 账号密钥用vault储存 (#10830)
* feat: 账号密钥用vault储存

* perf: 优化 Vault

* perf: 重构 Vault Backend 设计架构 (未完成)

* perf: 重构 Vault Backend 设计架构 (未完成2)

* perf: 重构 Vault Backend 设计架构 (未完成3)

* perf: 重构 Vault Backend 设计架构 (未完成4)

* perf: 重构 Vault Backend 设计架构 (未完成5)

* perf: 重构 Vault Backend 设计架构 (已完成)

* perf: 重构 Vault Backend 设计架构 (已完成)

* perf: 重构 Vault Backend 设计架构 (已完成)

* perf: 小优化

* perf: 优化

---------

Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: Bai <baijiangjie@gmail.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
2023-07-31 17:39:30 +08:00
ibuler
7776158279 perf: 修改 django_cas_ng 的版本 2023-07-31 17:25:32 +08:00
fangfang.dong
47dd73eb4c fix: 修复es7创建index的错误 2023-07-31 14:54:35 +08:00
老广
bf30be2084 Merge pull request #11122 from jumpserver/pr@dev@fix_rdpfilemultimon
feat: rdp file 支持设置多屏显示 (multimon)
2023-07-31 09:22:40 +08:00
老广
39d651dd9b Merge pull request #11123 from jumpserver/pr@dev@fix_rdpfile
feat: rdp file 支持设置多屏显示
2023-07-31 09:22:27 +08:00
Bai
07f4fdd92d feat: rdp file 支持设置多屏显示 2023-07-28 18:06:38 +08:00
Bai
53c8c2d9ea feat: rdp file 支持设置多屏显示 (multimon) 2023-07-28 17:45:20 +08:00
fit2bot
c201914bc8 perf: change secret perf (#11120)
Co-authored-by: feng <1304903146@qq.com>
2023-07-28 17:00:55 +08:00
老广
83917cb440 Merge pull request #11118 from jumpserver/pr@dev@perf_filter_and_default_group
perf: 添加到默认组织中
2023-07-28 16:52:00 +08:00
ibuler
b55eb1236f perf: 添加到默认组织中 2023-07-28 16:15:12 +08:00
fit2bot
38cee8eaa4 fix: 修复migrations文件错误 (#11116)
Co-authored-by: fangfang.dong <fangfang.dong@fit2cloud.com>
2023-07-28 15:14:49 +08:00
jiangweidong
e339a56042 feat: 云同步增加同步策略 (#11001) 2023-07-28 14:34:38 +08:00
fit2bot
384b639dd3 perf: 优化隐藏 Chrome 的代填操作 (#11114)
Co-authored-by: Eric <xplzv@126.com>
2023-07-28 14:33:09 +08:00
jiangweidong
c86b28a305 feat: 支持批量审批工单 (#11014) 2023-07-28 14:32:31 +08:00
老广
dbfb9db5c5 Merge pull request #11113 from jumpserver/pr@dev@perf_account_select
perf: 修改发布机账号选择
2023-07-28 11:17:02 +08:00
ibuler
93350faa08 perf: 修改账号选择 2023-07-28 11:15:24 +08:00
ibuler
107fda0f99 perf: 修改发布机账号选择 2023-07-28 11:13:48 +08:00
老广
58124af1ce Merge pull request #11111 from jumpserver/pr@dev@perf_applet_host_account_create
perf: 修改应用发布机账号创建
2023-07-28 11:07:18 +08:00
ibuler
1a4c5dca33 perf: 修改翻译 2023-07-28 11:06:01 +08:00
ibuler
5380dc0c2d perf: 修改翻译 2023-07-28 11:02:21 +08:00
ibuler
2c22396093 perf: 修改去掉冲突 2023-07-28 10:49:33 +08:00
ibuler
31da139eb3 merge: with dev 2023-07-28 10:46:34 +08:00
ibuler
962354c50d perf: 修改应用发布机账号创建 2023-07-28 10:41:37 +08:00
jiangweidong
1907c795c3 feat: 系统工具增加服务器时间及nmap工具 (#11078) 2023-07-28 10:40:48 +08:00
fangfang.dong
1239ffd4c8 perf: 优化会话分享url的构造 2023-07-28 10:22:47 +08:00
nut
7a37f91964 Update sharing.py 2023-07-28 10:22:47 +08:00
fangfang.dong
2741d7cbdc feat: 终端会话分享增加消息通知功能 2023-07-28 10:22:47 +08:00
fit2bot
99adb6ab7a perf: 改造username_suggestions api 改为post请求 (#11110)
Co-authored-by: feng <1304903146@qq.com>
2023-07-27 14:04:29 +08:00
Bai
665c833479 fix: 修复创建 ES 存储 get_mapping index 使用位置参数 2023-07-27 10:43:21 +08:00
Bai
77944cc91b fix: 修复创建资产 is_valid 使用kw参数 2023-07-27 10:21:22 +08:00
ibuler
b5fc865cc6 perf: Oracle 支持 2023-07-26 19:27:34 +08:00
ibuler
3b6c2fc0c0 perf: 修改 sftp 的一些处理 2023-07-26 19:25:39 +08:00
Bai
114645732a perf: 用户授权账号 API 返回 id 字段 2023-07-26 19:24:58 +08:00
老广
1b338a9cd3 Merge pull request #11093 from jumpserver/pr@dev@fix_user_account
fix: 修复同名账号用户名代填问题
2023-07-26 19:16:45 +08:00
老广
59f12a3c14 Merge pull request #11091 from jumpserver/pr@dev@ssh_to_sftp
perf: 修改 sftp 协议
2023-07-26 18:21:45 +08:00
Eric
3fc52cbb68 fix: 修复同名账号用户名代填问题 2023-07-26 17:13:38 +08:00
ibuler
b0b6d19bc0 perf: 修改 sftp 协议 2023-07-26 15:31:02 +08:00
老广
9deb48b16b Merge pull request #11080 from jumpserver/pr@dev@fix_bulk_update_asset_error
perf: 修复批量更新资产导致的错误
2023-07-26 09:51:45 +08:00
ibuler
48510e98a2 merge: with dev 2023-07-25 17:13:38 +08:00
ibuler
c135837372 perf: 修改 connect method 2023-07-25 17:12:06 +08:00
老广
92ed189453 Merge pull request #11083 from jumpserver/pr@dev@perf_koko_support
perf: 移除 Koko 的部分数据库支持
2023-07-25 16:33:58 +08:00
Eric
418ac5a5ba perf: 移除 Koko 的部分数据库支持 2023-07-25 15:45:48 +08:00
fit2bot
539a6161e6 perf: 翻译 (#11082)
Co-authored-by: feng <1304903146@qq.com>
2023-07-25 15:40:57 +08:00
ibuler
806baeb136 perf: 修复批量更新资产导致的错误 2023-07-25 14:45:24 +08:00
老广
ae0daddbea Merge pull request #11077 from jumpserver/pr@dev@change_ansible_pkg
perf: 使用瘦身后的 ansible
2023-07-25 11:22:29 +08:00
ibuler
76903977eb perf: 使用瘦身后的 ansible 2023-07-25 11:21:01 +08:00
老广
c9fffa50a8 Merge pull request #11076 from jumpserver/pr@dev@perf_django_version
perf: 降级 Django 版本
2023-07-25 10:57:53 +08:00
ibuler
6478727cd2 perf: 修改依赖包 2023-07-25 10:53:14 +08:00
ibuler
a20b210514 perf: 降级 Django 版本 2023-07-25 10:41:16 +08:00
老广
04a34e8456 Merge pull request #11075 from jumpserver/pr@dev@perf_domains_get
perf: 优化 domains 获取
2023-07-25 10:23:35 +08:00
ibuler
4d2c4a9602 perf: 优化 domains 获取 2023-07-25 10:11:57 +08:00
老广
2a24fcc1bb Merge pull request #11073 from jumpserver/pr@dev@perf_req
perf: 修改 uvicon  的版本
2023-07-24 23:28:33 +08:00
ibuler
366693783c perf: 修改 uvicon 的版本 2023-07-24 23:27:25 +08:00
老广
0a611a4ce9 Merge pull request #11072 from jumpserver/pr@dev@perf_ws_asgi
perf: 优化 asgi 的位置
2023-07-24 23:23:36 +08:00
ibuler
5fedb5440c perf: 设置 application 到 __all__ 2023-07-24 23:23:04 +08:00
ibuler
160c99a01a perf: 修改 requirements 2023-07-24 23:21:30 +08:00
ibuler
089d769eb0 perf: 优化 asgi 的位置 2023-07-24 23:20:05 +08:00
老广
9195d4c43d Merge pull request #11071 from jumpserver/pr@dev@remove_unuse_app
perf: 去掉不用的 app
2023-07-24 22:54:08 +08:00
ibuler
f1d984898b perf: 去掉不用的 app 2023-07-24 22:53:10 +08:00
老广
ecfd9449f2 Merge pull request #11070 from jumpserver/pr@dev@remove_loong64
perf: 拆分 loong64 架构
2023-07-24 21:22:53 +08:00
吴小白
94d40efcad perf: 预构建 ansible-core 2023-07-24 21:17:53 +08:00
吴小白
d5461fe66f perf: 拆分 loong64 架构 2023-07-24 21:09:02 +08:00
老广
00f4ae97ed Merge pull request #11068 from jumpserver/pr@dev@perf_deps
perf: 修改版本以来
2023-07-24 19:31:34 +08:00
ibuler
554c1da38b perf: 修改版本以来 2023-07-24 19:30:27 +08:00
老广
f1a68ebd70 Merge pull request #11064 from jumpserver/pr@dev@change_python_version
perf: 修改 Python 的版本
2023-07-24 18:23:52 +08:00
ibuler
b443a89cb5 perf: 修改 Python 的版本 2023-07-24 18:22:48 +08:00
老广
5b1ae46153 Merge pull request #11062 from jumpserver/pr@dev@for_django4
perf: 修改写法
2023-07-24 18:10:04 +08:00
ibuler
98fd209498 perf: 修改为 Domain 2023-07-24 18:09:10 +08:00
ibuler
7af769f7d3 perf: es 修改导入 2023-07-24 18:05:28 +08:00
老广
89ec01003c Merge pull request #11057 from jumpserver/pr@dev@for_django4
perf: 修改支持 Django4
2023-07-24 17:59:30 +08:00
ibuler
148bf3b894 perf: 修改写法 2023-07-24 17:55:17 +08:00
ibuler
38e8e8734d perf: 添加 DEBUG 日志 2023-07-24 17:49:32 +08:00
ibuler
d8d487f770 perf: 修改 ALLOW_HOSTS 2023-07-24 15:32:30 +08:00
ibuler
e3aaba4798 perf: 去掉不用的 2023-07-24 14:57:49 +08:00
ibuler
95e92a45d5 perf: 修改 xpack requirements 2023-07-24 14:46:48 +08:00
ibuler
86a17b9955 perf: 支持 ws 2023-07-24 14:32:13 +08:00
ibuler
7ae52eb941 perf: 修改 gettext 2023-07-24 14:09:22 +08:00
ibuler
b4b9c805ff perf: 修改支持 Django4 2023-07-24 11:52:25 +08:00
老广
16660575b7 Merge pull request #11054 from jumpserver/pr@dev@change_req_version
perf: 修改 mssql
2023-07-24 10:16:01 +08:00
老广
e9c2351f83 Merge pull request #11048 from huiserwang/dev_huiserwang
fix a latent bug when field_type belongs to int, bool and list.
2023-07-24 10:15:28 +08:00
ibuler
ed49216625 perf: 修改 mssql 2023-07-24 10:14:26 +08:00
ibuler
2417a0930f perf: 修改依赖库版本 2023-07-24 10:07:32 +08:00
老广
c9ba3f4f05 Merge pull request #11045 from jumpserver/pr@dev@feat_python_v3.11
feat: python 支持使用 3.11 版本
2023-07-24 10:07:03 +08:00
Huiser WANG
78d8e410db fix a latent bug when field_type belongs to int, bool and list. 2023-07-22 14:04:21 +08:00
feng
1f25eaf413 perf: update requirements.txt 2023-07-21 19:58:01 +08:00
Eric
54e6200ffe feat: python 支持使用 3.11 版本 2023-07-21 18:21:24 +08:00
老广
bad8400e77 Merge pull request #11042 from jumpserver/pr@dev@chrome_change_readme
chore: 修改 README
2023-07-21 14:11:19 +08:00
ibuler
0fb01bd7fb chore: 还原 requirements 2023-07-21 14:10:21 +08:00
ibuler
34e7671f65 chore: 修改 README 2023-07-21 14:04:34 +08:00
老广
2d99fddaf8 Merge pull request #10842 from jumpserver/pr@dev@perf_support_tidb
perf: 修改支持 tidb
2023-07-21 10:25:36 +08:00
老广
5df4efa5a8 Merge pull request #11037 from jumpserver/pr@dev@chore_change_readme
chore: 修改 readme
2023-07-20 19:43:04 +08:00
ibuler
e2207cf8f1 chore: 修改 readme 2023-07-20 19:41:42 +08:00
Bryan
e90e61e8dd Merge pull request #11035 from jumpserver/dev
v3.5.0
2023-07-20 19:03:31 +08:00
fit2bot
4c48204e16 perf: translate (#11036)
Co-authored-by: feng <1304903146@qq.com>
2023-07-20 18:46:34 +08:00
老广
bddcd8475d Merge pull request #11034 from jumpserver/pr@dev@chore_change_readme
perf: 修改 README, 添加 GPT
2023-07-20 18:11:10 +08:00
ibuler
5f8d84df66 perf: 修改图标 2023-07-20 18:10:28 +08:00
ibuler
cee87ae4d7 perf: 修改 README, 添加 GPT 2023-07-20 17:59:58 +08:00
老广
79a2d4e039 Merge pull request #11033 from jumpserver/pr@dev@fix_create_serializer_default
perf: 优化动态创建 serializer
2023-07-20 15:48:11 +08:00
ibuler
4f5e360991 perf: 优化动态创建 serializer 2023-07-20 15:44:52 +08:00
Eric
8e86173cb8 perf: 修复手动输入的同名账号问题 2023-07-20 15:38:51 +08:00
ibuler
08bc3d14aa fix: 修复 json m2m field 中正则有问题匹配不正确 2023-07-20 15:38:04 +08:00
fit2bot
19b91a6c1f perf: 修复资产导入账号模版失败问题 导入文件不区分大小写 (#11031)
Co-authored-by: feng <1304903146@qq.com>
2023-07-20 14:57:51 +08:00
Bai
c50330e055 fix: 修复删除Oracle数据库时报错提示问题 2023-07-20 11:56:49 +08:00
Bai
f5d9dedae1 fix: 修复 Endpoint 获取 Oracle port 的逻辑 2023-07-20 11:51:02 +08:00
Bai
ffb400d70d fix: 修复创建 Oracle 数据库端口超过范围后报错 500 并且不回滚的问题; 2023-07-20 11:23:57 +08:00
Bai
2291cfeaae fix: 修复 ConnectionToken 默认值类型没有转化的问题 2023-07-20 10:42:23 +08:00
老广
400d37ffca Merge pull request #11024 from jumpserver/pr@dev@fix_perm_accounts_only_one
fix: 修复授权的账号,用户名相同的,只有一个的情况
2023-07-19 21:24:45 +08:00
ibuler
14efd9afc1 perf: 修复可能导致的问题 2023-07-19 20:27:06 +08:00
ibuler
cfca519158 fix: 修复授权的账号,用户名相同的,只有一个的情况 2023-07-19 20:16:40 +08:00
Bai
23361fdba9 fix: 修复资产平台导入失败的问题(ID没有返回) 2023-07-19 19:56:18 +08:00
fit2bot
1b0d23fbf4 fix: playbook 批量删除 500 (#11022)
Co-authored-by: feng <1304903146@qq.com>
2023-07-19 19:37:55 +08:00
fit2bot
de4ef7d1b5 perf: GPT资产修改节点导致资产协议变多 (#11021)
Co-authored-by: feng <1304903146@qq.com>
2023-07-19 19:00:15 +08:00
ibuler
046342ceee perf: 平台创建自动化设置默认值 2023-07-19 18:23:18 +08:00
Bai
47195e2c44 fix: 修复客户端方式访问资产 Endpoint 标签匹配策略不生效的问题 2023-07-19 18:14:30 +08:00
老广
947c9e6216 Merge pull request #11018 from jumpserver/pr@dev@perf_coreworker
perf: 优化 Core Worker 数量
2023-07-19 17:17:07 +08:00
Bai
e1af380ad5 perf: 优化 Core Worker 数量 2023-07-19 17:12:44 +08:00
fit2bot
9e8579d5b4 perf: proxy 添加校验 修改翻译 (#11017)
Co-authored-by: feng <1304903146@qq.com>
2023-07-19 17:05:42 +08:00
老广
b8397e7db9 Merge pull request #11012 from jumpserver/pr@dev@perf_change_ui_route
perf: 优化 url
2023-07-19 11:37:51 +08:00
ibuler
8ed8d6f01c perf: 优化 url 2023-07-19 11:36:42 +08:00
Bai
ea607c6177 fix: 优化命令告警,不增加跳转链接 2023-07-19 08:27:34 +05:00
Bai
fa52e2bf5e perf: 优化批量命令告警问题 2023-07-19 08:09:45 +05:00
fangfang.dong
02fc9a730b feat: 快速命令新增告警级别: Warning 2023-07-19 08:09:45 +05:00
Bai
aa744c0fec fix: 修复账号模版切换时报错的问题 2023-07-19 07:34:55 +05:00
fit2bot
02d0c7e4e7 perf: ansible 错误信息优化 (#11005)
Co-authored-by: feng <1304903146@qq.com>
2023-07-18 18:55:18 +08:00
老广
0c34a41381 Merge pull request #11003 from jumpserver/pr@dev@fix_ansiblejobrunerror
fix: 修复批量执行命令时资产名称包含 [ 特殊字符执行报错的问题(issue: 10986)
2023-07-18 18:14:32 +08:00
Bai
8ed3da85f2 fix: 修复批量执行命令时资产名称包含 [ 特殊字符执行报错的问题(issue: 10986) 2023-07-18 10:06:40 +00:00
feng
de5b501ebf fix: 工单时区错乱问题 2023-07-18 16:56:22 +08:00
Bai
ea5a54f9c7 fix: 修复命令告警的问题 2023-07-18 15:21:40 +08:00
halo
6338ecc6fe perf: 优化邮件参数 2023-07-18 15:21:18 +08:00
Bai
be17fe6c31 perf: 邮件同步发送 2023-07-18 15:21:18 +08:00
halo
a18c97aec0 perf: 异步发送 2023-07-18 15:21:18 +08:00
halo
27c10fcae1 fix: 邮件主题前缀设置不生效的问题 2023-07-18 15:21:18 +08:00
fangfang.dong
539babcc97 fix: 修复参数取值错误 2023-07-18 15:17:34 +08:00
fit2bot
0436487bdb fix: 替换ssh key 生成密钥方法 (#10995)
Co-authored-by: feng <1304903146@qq.com>
2023-07-18 15:01:47 +08:00
Bai
f466904a1c perf: 优化 LDAP 用户导入/同步时支持 is_active 为 -1 的情况 2023-07-18 11:03:32 +08:00
老广
1d6bdc9b6b Merge pull request #10990 from jumpserver/pr@dev@perf_gunicorn_max_request
perf: gunicon添加重启参数
2023-07-18 11:02:58 +08:00
ibuler
d965ac0781 perf: 修改参数值 2023-07-18 11:00:43 +08:00
ibuler
6035241efb perf: gunicon添加重启参数 2023-07-18 10:44:12 +08:00
fit2bot
0771b804d1 refactor: 重构危险命令告警类型: Warning (#10970)
* refactor: 重构危险命令告警类型: Warning

* Update _msg_command_warning.html

* Update _msg_command_warning.html

* Update command.py

* Update django.po

* perf: 优化 command acl warning 的代码逻辑

* perf: 优化 command acl warning 的代码逻辑

* perf: 优化 CommandWarningMessage 逻辑

---------

Co-authored-by: fangfang.dong <fangfang.dong@fit2cloud.com>
Co-authored-by: Bai <baijiangjie@gmail.com>
2023-07-17 20:52:54 +08:00
老广
a2c6e5f3fb Merge pull request #10985 from jumpserver/pr@dev@feat_db_mariadb_web_db_support
feat: mariadb 支持 webdb
2023-07-17 18:02:42 +08:00
Aaron3S
c39041fe7b feat: mariadb 支持 webdb 2023-07-17 17:55:05 +08:00
ibuler
22588c52a9 fix: 修复 json field value 可能为 None 导致的问题 2023-07-17 17:25:44 +08:00
ibuler
daef154622 perf: 优化 host api 和 gunicorn 参数 2023-07-17 17:16:18 +08:00
Bai
7b9c4b300d perf: 优化控制 ACL Action Choices 的选项 2023-07-17 16:02:27 +08:00
Bai
819853eae4 feat: 增加 DEBUG_ANSIBLE 配置项支持打印 Ansible 详细日志 2023-07-17 14:11:09 +08:00
老广
f686f9f107 Merge pull request #10978 from jumpserver/pr@dev@fix_platform_setting
perf: 优化平台创建时,协议 setting 必填
2023-07-17 14:02:24 +08:00
ibuler
8a89ee7ac0 perf: 优化平台创建时,协议 setting 必填 2023-07-17 13:53:27 +08:00
老广
696295cf0d Merge pull request #10973 from jumpserver/pr@dev@fix_reset_password_bug
fix: 忘记密码token失效发送验证码报错的问题
2023-07-17 10:54:21 +08:00
老广
d99a3455cd Merge pull request #10966 from jumpserver/pr@dev@perf_chrome_plugins
perf: 优化 chrome 插件
2023-07-17 10:48:22 +08:00
老广
7f5b0618c6 Merge pull request #10969 from jumpserver/pr@dev@fix_ansibletesterror
fix: 修复 Ansible 测试资产可连接性报错的问题(Connection to UNKNOWN port 65535 timed out)
2023-07-17 10:27:48 +08:00
halo
0f1d9bc3eb fix: 忘记密码token失效发送验证码报错的问题 2023-07-15 16:30:45 +08:00
fit2bot
8f6b8b5a11 perf: settings logo (#10971)
Co-authored-by: feng <1304903146@qq.com>
2023-07-14 23:01:48 +08:00
Bai
4da0fadcc4 fix: 修复 Ansible 测试资产可连接性报错的问题(Connection to UNKNOWN port 65535 timed out) 2023-07-14 11:19:31 +00:00
fit2bot
f504413d7f feat: 添加logo api (#10965)
Co-authored-by: feng <1304903146@qq.com>
2023-07-14 16:54:42 +08:00
ibuler
9b5803f2a2 perf: 修改版本号 2023-07-13 20:02:28 +08:00
ibuler
d95e7c2e24 perf: 优化 chrome 插件 2023-07-13 20:01:06 +08:00
ibuler
a1ded0c737 perf: 优化一些 rbac 权限位,着重 connection token 的 2023-07-13 19:57:26 +08:00
老广
bedc83bd3a Merge pull request #10961 from jumpserver/pr@dev@perf_readme
perf: 修改 readme
2023-07-13 14:34:15 +08:00
ibuler
c9f3e4b28d perf: 修改 readme 2023-07-13 14:29:47 +08:00
老广
05bbd22c44 Merge pull request #10959 from jumpserver/pr@dev@perf_add_url
perf: 修改 log 的位置
2023-07-13 14:13:24 +08:00
老广
d00ef2b051 Merge pull request #10960 from maninhill/patch-10
chore: 更新 README
2023-07-13 12:51:19 +08:00
maninhill
efc538a569 chore: 更新 README 2023-07-13 11:55:12 +08:00
ibuler
c1de9151b8 perf: 修改地址 2023-07-13 11:46:47 +08:00
ibuler
2898d25bf8 perf: 修改 log 的位置 2023-07-13 11:45:15 +08:00
jiangweidong
68e2de81d8 perf: windows winrm使用ntlm认证 2023-07-12 20:22:44 +08:00
fit2bot
dd5802316d perf: 修改 connect methods 支持 (#10945)
Co-authored-by: ibuler <ibuler@qq.com>
2023-07-11 19:29:56 +08:00
老广
6f1ab1e09a Merge pull request #10944 from jumpserver/pr@dev@perf_add_protocol_support
perf: 修改 protocols 默认值
2023-07-11 18:00:23 +08:00
ibuler
6096ccc30a perf: 修改 protocols 默认值 2023-07-11 17:59:18 +08:00
老广
ddbd142ea3 Merge pull request #10943 from jumpserver/pr@dev@perf_connect_method
perf: 修改组件支持
2023-07-11 17:29:05 +08:00
ibuler
61d8328337 perf: 修改 protocol 定义 2023-07-11 17:27:47 +08:00
ibuler
4caa704abe perf: 修改组件支持 2023-07-11 17:04:43 +08:00
fit2bot
b75d69de5d feat: 新增危险命令告警类型: Warning (#10929)
* feat: 新增危险命令告警类型: Warning

* feat: 新增危险命令告警类型: Warning

* feat: 新增危险命令告警类型: Warning

* feat: 新增危险命令告警类型: Warning

* feat: 新增危险命令告警类型: Warning

* perf: 优化命令告警 View 处理逻辑

---------

Co-authored-by: fangfang.dong <fangfang.dong@fit2cloud.com>
Co-authored-by: Bai <baijiangjie@gmail.com>
2023-07-11 12:06:11 +08:00
fangfang.dong
10fa122e2f perf: 清理无用代码 2023-07-11 11:59:02 +08:00
老广
00ff1644cb Merge pull request #10941 from jumpserver/pr@dev@add_help_text
perf: 修改 api mode 和 i18n
2023-07-11 11:47:06 +08:00
ibuler
2b51a7590e perf: 修改 api mode 和 i18n 2023-07-11 11:28:09 +08:00
老广
30d07820c7 Merge pull request #10914 from jumpserver/dependabot/pip/requirements/django-3.2.20
build(deps): bump django from 3.2.19 to 3.2.20 in /requirements
2023-07-11 10:55:54 +08:00
老广
c51ebd62df Merge pull request #10936 from jumpserver/pr@dev@fix_beat-task-repeated
fix: 修复 beat 定时任务重复执行的问题
2023-07-11 10:47:41 +08:00
老广
593e28d7fa Merge pull request #10938 from jumpserver/pr@dev@perf_add_kael
perf: 添加 kael terminal 类型
2023-07-11 10:38:32 +08:00
ibuler
89f1a1653d perf: 添加 kael terminal 类型 2023-07-11 10:31:36 +08:00
Bai
ad311c15ca fix: 增加 TypeError 捕获 2023-07-11 10:19:31 +08:00
老广
b10623c970 Merge pull request #10879 from jumpserver/pr@dev@feat_chatgpt_support
feat: 支持 chatgpt 资产
2023-07-11 09:59:04 +08:00
Bai
7d17c1a450 fix: 修复 beat 定时任务重复执行的问题 2023-07-10 19:28:19 +08:00
老广
100b1553b6 Merge pull request #10931 from jumpserver/pr@dev@perf_change_platform
perf: 修改 Platform 约束
2023-07-07 19:48:15 +08:00
ibuler
76af71bbbe perf: 修改 Platform 约束 2023-07-07 19:47:12 +08:00
fit2bot
9607ab5164 perf: 修改支持 AD (#10926)
* stash

* perf: 修改支持 AD

* perf: 优化 default

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-07-07 16:15:32 +08:00
Eric
61078ee2ed perf: 更新 Chrome 的 ChangeLog 路径 2023-07-06 19:41:11 +08:00
Eric
6a720cde0a perf: 更新 chrome 支持匿名账号 2023-07-06 19:41:11 +08:00
老广
a2a5d5e08b Merge pull request #10925 from jumpserver/pr@dev@wechat
perf: 去除readme 中的微信
2023-07-06 18:27:03 +08:00
feng
9c2cc65ce8 perf: 去除readme 中的微信 2023-07-06 18:26:05 +08:00
feng
ee3cdcd9e4 fix: 有默认值 required 为false 2023-07-06 10:33:36 +08:00
feng
89492410aa fix: 推送账号 不填写home 推送失败 2023-07-06 10:33:36 +08:00
dependabot[bot]
b324c6cc8a build(deps): bump django from 3.2.19 to 3.2.20 in /requirements
Bumps [django](https://github.com/django/django) from 3.2.19 to 3.2.20.
- [Commits](https://github.com/django/django/compare/3.2.19...3.2.20)

---
updated-dependencies:
- dependency-name: django
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-05 23:26:55 +00:00
Bai
6b189e6162 fix: 修复导入LDAP数据库超时导致 Lock wait timeout 的问题 2023-07-05 18:49:01 +08:00
吴小白
a07cab9ae7 Merge pull request #10910 from jumpserver/pr@dev@perf_chrome
perf: 修正 Chrome driver 路径
2023-07-05 18:38:18 +08:00
Eric
751bd35349 perf: 修正 Chrome driver 路径 2023-07-05 18:28:31 +08:00
Bai
d6aaf23abb fix: 修复用户导入时手机号为dict类型报错的问题 2023-07-05 16:49:52 +08:00
Eric
f096014d03 perf: 移除针对端点 host 的校验 2023-07-05 15:39:54 +08:00
Eric
7f03639c34 perf: 更新翻译 2023-07-04 19:14:53 +08:00
Eric
3963881226 perf: 日文翻译更正 2023-07-04 19:14:53 +08:00
Eric
fb279dbc39 perf: 新增 SFTP 会话类型 2023-07-04 19:14:53 +08:00
fangfang.dong
785e4cc3e4 perf: 接口sql优化 /api/v1/perms/asset-permissions/<uuid:pk>/assets/all/ 2023-07-04 19:14:21 +08:00
jiangweidong
dd846d4183 feat: 云同步支持公有云 2023-07-04 18:48:07 +08:00
Eric_Lee
9169f3546a Revert "perf: rdp7 可使用 web gui方式连接" 2023-07-04 18:09:33 +08:00
Eric_Lee
7e2c0d0a2d Merge pull request #10896 from jumpserver/revert-10880-pr@dev@perf_xrdp_rdp7
Revert "perf: add xrdp rdp7 port 3390"
2023-07-04 17:57:33 +08:00
老广
66c60ef5be Revert "perf: add xrdp rdp7 port 3390" 2023-07-04 17:35:58 +08:00
fit2bot
f095998096 perf: 改密与推送保持一致 (#10812)
* perf: 改密与推送保持一致

* perf: 增加 i18n

---------

Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: Bai <baijiangjie@gmail.com>
2023-07-04 17:34:31 +08:00
老广
d06e5d0001 Merge pull request #10826 from jumpserver/pr@dev@perf_account_template
perf: 接口sql优化 /api/v1/accounts/account-templates/su-from-account-templates/
2023-07-04 13:42:04 +08:00
老广
c8f420f62d Merge pull request #10893 from jumpserver/pr@dev@perf_rdp7_web
perf: rdp7 可使用 web gui方式连接
2023-07-04 13:39:28 +08:00
Eric
02550b38f8 perf: rdp7 可使用 web gui方式连接 2023-07-04 12:52:36 +08:00
老广
50531d3b97 Merge pull request #10829 from jumpserver/pr@dev@perf_support_anonymous_account
perf: web 和 自定义类型资产支持匿名账号
2023-07-04 11:46:24 +08:00
ibuler
db7ad81103 merge: 合并 dev 2023-07-04 11:45:20 +08:00
ibuler
d72ec653f4 merge: 合并 dev 2023-07-04 11:43:33 +08:00
老广
7950718582 Merge pull request #10825 from jumpserver/pr@dev@perf_asset_node
perf: 接口sql优化 /api/v1/assets/nodes/children/tree/
2023-07-04 11:28:45 +08:00
老广
998321f090 Merge pull request #10882 from jumpserver/pr@dev@perf_dockerfile
feat: 合并 Dockerfile
2023-07-04 11:26:23 +08:00
老广
1fa258da3e Merge pull request #10889 from jumpserver/pr@dev@perf_connectiontoken
perf: 修复 ConnectionToken 中 account id 的问题
2023-07-04 11:18:25 +08:00
ibuler
8dbe61100b perf: 优化协议,支持 port from addr 2023-07-04 10:29:27 +08:00
Eric
d7f9f3b670 perf: 修复 ConnectionToken 中 account id 的问题 2023-07-03 19:19:25 +08:00
老广
8b18f46613 Merge pull request #10880 from jumpserver/pr@dev@perf_xrdp_rdp7
perf: add xrdp rdp7 port 3390
2023-07-03 16:29:06 +08:00
吴小白
eb49beaf46 fix: 修正 oracle 路径 2023-07-03 10:37:42 +08:00
吴小白
3971fce561 feat: 合并 Dockerfile 2023-07-03 10:28:25 +08:00
Eric
2f81196874 perf: 更新 rdp7 protocol 设置 2023-07-03 10:22:49 +08:00
Eric
411102ed85 perf: 完善 protocol 匹配 2023-07-03 10:14:39 +08:00
Eric
125dc2adf5 perf: 针对 rdp7 端口特殊处理 2023-07-03 10:14:39 +08:00
Eric
6001175629 perf: add xrdp rdp7 port 3390 2023-07-03 10:14:39 +08:00
ibuler
41e39c9614 perf: 修改 chatgpt 协议 2023-06-30 18:33:18 +08:00
ibuler
19de79fadf feat: 支持 chatgpt 资产 2023-06-30 17:35:49 +08:00
老广
6b7df10d50 Merge pull request #10877 from jumpserver/pr@dev@perf_applet_chrome
perf: 更新 Python
2023-06-30 16:01:18 +08:00
吴小白
ce269e315a perf: 更新 Python 2023-06-30 15:58:20 +08:00
老广
dfc8654d96 Merge pull request #10876 from jumpserver/pr@dev@perf_applet_chrome
perf: 更新 Chrome
2023-06-30 15:58:18 +08:00
吴小白
ea07f9e56a perf: 更新 Chrome 2023-06-30 15:55:32 +08:00
fit2bot
bbbd011cc2 perf: 修改 protocol setting (#10875)
* feat: 新增账号配置

* perf: 修改 platform protocol define

* perf: 修改 account config

* perf: 修改协议设置

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-06-30 15:54:06 +08:00
老广
6962430e6a Merge pull request #10874 from jumpserver/pr@dev@perf_accountsearch
perf: 账号搜索支持通过 secret_type 过滤
2023-06-30 15:22:14 +08:00
Bai
ca1b82330e perf: 账号搜索支持通过 secret_type 过滤 2023-06-30 11:12:23 +08:00
fit2bot
f4bd06b970 feat: 优化 Issue GitHub Actions,当研发团队成员评论后再移除 待处理 标签(12) (#10870)
Co-authored-by: Bai <baijiangjie@gmail.com>
Co-authored-by: Bryan <jiangjie.bai@fit2cloud.com>
2023-06-29 17:15:19 +08:00
Bai
d0bf5b46f6 feat: 优化 Issue GitHub Actions,当研发团队成员评论后再移除 待处理 标签(11) 2023-06-29 17:12:21 +08:00
Bai
3c707996e0 feat: 优化 Issue GitHub Actions,当研发团队成员评论后再移除 待处理 标签(10) 2023-06-29 17:05:38 +08:00
Bai
ac0a673818 feat: 优化 Issue GitHub Actions,当研发团队成员评论后再移除 待处理 标签(9) 2023-06-29 17:00:36 +08:00
Bai
1ed6c7e01d feat: 优化 Issue GitHub Actions,当研发团队成员评论后再移除 待处理 标签(8) 2023-06-29 16:54:28 +08:00
Bai
adcabf69ed feat: 优化 Issue GitHub Actions,当研发团队成员评论后再移除 待处理 标签(7) 2023-06-29 16:43:00 +08:00
Bai
0b92e43e20 feat: 优化 Issue GitHub Actions,当研发团队成员评论后再移除 待处理 标签(6) 2023-06-29 16:43:00 +08:00
Bai
9c1a6b8565 feat: 优化 Issue GitHub Actions,当研发团队成员评论后再移除 待处理 标签(5) 2023-06-29 16:07:04 +08:00
Bai
fc8d226005 feat: 优化 Issue GitHub Actions,当研发团队成员评论后再移除 待处理 标签(4) 2023-06-29 15:42:14 +08:00
Bai
f3955a47f6 feat: 优化 Issue GitHub Actions,当研发团队成员评论后再移除 待处理 标签(3) 2023-06-29 15:25:08 +08:00
Bai
0020fe7be0 feat: 优化 Issue GitHub Actions,当研发团队成员评论后再移除 待处理 标签(2) 2023-06-29 15:18:54 +08:00
Bai
cea56a2f7e feat: 优化 Issue GitHub Actions,当研发团队成员评论后再移除 待处理 标签(1) 2023-06-29 14:50:27 +08:00
Bai
e3cf6cc476 feat: 优化 Issue GitHub Actions,当研发团队成员评论后再移除 待处理 标签 2023-06-29 14:28:38 +08:00
Bai
57fccc9baf feat: 优化 Issue GitHub Actions,当研发团队成员评论后再移除 待处理 标签 2023-06-29 14:18:23 +08:00
Aaron3S
fbcb0da349 feat: 支持sqlserver 通过chen 链接 2023-06-29 11:41:06 +08:00
Bai
877a053717 feat: 优化 Issue GitHub Actions,当研发团队成员评论后再移除 待处理 标签 2023-06-29 11:40:43 +08:00
Bai
d293a03649 feat: 优化 Issue GitHub Actions,当研发团队成员评论后再移除 待处理 标签 2023-06-29 11:30:04 +08:00
Bai
08e0c5fdf5 feat: 优化 Issue GitHub Actions,当研发团队成员评论后再移除 待处理 标签 2023-06-29 11:17:37 +08:00
nut
ac906a5d52 Update api.py 2023-06-28 17:52:23 +08:00
fangfang.dong
9ad8e53743 perf: 接口sql优化 /api/v1/index/ 2023-06-28 17:52:23 +08:00
ibuler
bf29158be9 perf: 修改支持 tidb 2023-06-28 15:01:25 +08:00
ibuler
a67ee976b4 perf: 修改翻译 2023-06-27 16:03:19 +08:00
ibuler
dfa12239d6 perf: 修改翻译 2023-06-27 16:00:45 +08:00
ibuler
4737e2cf4a perf: 优化 匿名账号 2023-06-27 15:22:18 +08:00
ibuler
d3d8fcbbb3 perf: 修改经常遇到的登录超时 2023-06-27 14:50:04 +08:00
Eric
a64aa89b3f fix: 修复自定义远程应用的连接问题 2023-06-27 14:43:00 +08:00
ibuler
a22f36a06a perf: 去掉 debug 2023-06-27 14:31:20 +08:00
Bryan
17fa139bc9 feat: Update ----.md 2023-06-27 14:24:27 +08:00
ibuler
77bcb05d80 perf: web 和 自定义类型资产支持匿名账号 2023-06-27 11:23:56 +08:00
fangfang.dong
4e9012cc07 perf: 接口sql优化 /api/v1/accounts/account-templates/su-from-account-templates/ 2023-06-27 10:45:50 +08:00
fangfang.dong
b3dce27309 perf: 接口sql优化 /api/v1/assets/nodes/children/tree/ 2023-06-27 10:24:47 +08:00
老广
bccf3a0340 Merge pull request #10819 from jumpserver/pr@dev@perf_asset_asset
perf: 接口sql优化 /api/v1/assets/assets/
2023-06-27 09:55:11 +08:00
nut
358b3a1891 Update asset.py 2023-06-26 23:51:59 +08:00
feng
5a2f6bdfc9 perf: ldap sync任务开始时 先检查可连接性 2023-06-25 18:25:15 +08:00
feng
768eb033eb fix: 修复自动化任务原子性error 导致整个任务失败问题 2023-06-25 18:20:49 +08:00
fangfang.dong
d7d554daf5 perf: 接口sql优化 /api/v1/assets/assets/ 2023-06-25 18:08:59 +08:00
jiangweidong
780b1104de perf: 优化飞书接收到的工单审批的连接无法点击的问题 2023-06-25 11:08:14 +08:00
老广
eeba0a4bfc Merge pull request #10806 from jumpserver/pr@dev@feat_terminal_endpointrule
feat: 系统设置 - 终端设置 - 端点规则: 新增字段is_active控制是否启用
2023-06-21 18:36:37 +08:00
fangfang.dong
b2ee8c8216 feat: 系统设置 - 终端设置 - 端点规则: 新增字段is_active控制是否启用 2023-06-21 18:33:58 +08:00
ibuler
26edd2f040 perf: 修改去掉一些 debug 2023-06-21 17:49:16 +08:00
ibuler
270ed5e2f8 perf: 修改 logging 避免冲突 2023-06-21 17:49:16 +08:00
Eric
b2bff22387 fix: 修复远程应用会话无法监控的问题 2023-06-21 14:48:18 +08:00
ibuler
1ca71f78ed perf: 优化一下,去掉 rbac 引起的 sql查询 2023-06-21 14:46:59 +08:00
ibuler
fa24a8e2f3 perf: 添加 sql debug 2023-06-21 12:02:56 +08:00
Bai
b9c1a89f51 fix: 修复迁移文件时触发信号记录操作日志导致迁移失败的问题 2023-06-21 11:02:42 +08:00
ibuler
a2bbf11f9d perf: 添加 migrate debug msg 2023-06-21 11:01:21 +08:00
ibuler
1d084311c5 perf: 统一 connect token 配置名称 2023-06-20 16:40:21 +08:00
ibuler
cb0fd937c8 perf: 资产连接可以指定 AppletHost 2023-06-20 16:37:54 +08:00
ibuler
13fc2aa73c perf: 优化rbac 迁移 2023-06-20 16:35:01 +08:00
Eric
5d9979ec03 perf: 修复 terminal 显示问题 2023-06-20 16:34:03 +08:00
Eric
e4f21b8a5f perf: 移除 omnidb 2023-06-19 18:31:59 +08:00
feng
9403b76333 fix: 修改 push_account_params 数据迁移逻辑,不在导入公共方法生成数据 2023-06-19 18:23:57 +08:00
fit2bot
666df6ffef perf: 接口 /api/v1/tickets/tickets/ sql优化 (#10762)
* perf: 接口 /api/v1/tickets/tickets/ sql优化

* Update general.py

* Update general.py

* Update general.py

---------

Co-authored-by: fangfang.dong <fangfang.dong@fit2cloud.com>
Co-authored-by: nut <evicwork@gmail.com>
2023-06-19 18:19:52 +08:00
Chenyang Shen
9cc3942b3d Merge pull request #10779 from jumpserver/pr@dev@perf_terminal_chen
perf: 新增 chen 终端类型
2023-06-19 18:18:12 +08:00
Eric
42852c368c perf: 新增 chen 终端类型 2023-06-19 18:06:23 +08:00
ibuler
4d4644dddd fix: 修改原来 platform 为 device 时,导致的 asset 类型不对 2023-06-19 17:54:42 +08:00
cui fliter
471411a1aa fix some typos
Signed-off-by: cui fliter <imcusg@gmail.com>
2023-06-19 15:19:41 +08:00
老广
db12bc07e8 Merge pull request #10760 from jumpserver/pr@dev@perf_assets_domain
perf: 接口 /api/v1/assets/domains/ sql优化
2023-06-19 10:25:20 +08:00
老广
618ee0b2f9 Merge pull request #10761 from jumpserver/pr@dev@perf_assets_label
perf: 接口 /api/v1/assets/label/ sql优化
2023-06-19 10:24:52 +08:00
fangfang.dong
39ba52e4de perf: 接口 /api/v1/assets/label/ sql优化 2023-06-18 20:26:19 +08:00
fangfang.dong
a8ef405939 perf: 接口 /api/v1/assets/domains/ sql优化 2023-06-18 20:24:14 +08:00
老广
09f7ddd28a Merge pull request #10756 from jumpserver/pr@dev@fix_custom_asset_detail_error
perf: 修复自定义资产详情没有 auto_config 的问题
2023-06-16 18:48:24 +08:00
ibuler
da4337168f perf: 修复自定义资产详情没有 auto_config 的问题 2023-06-16 18:44:13 +08:00
老广
f13966e061 Merge pull request #10754 from jumpserver/pr@dev@fix_permed_asset_duplicate
fix: 修复授权资产根据协议搜索重复的问题
2023-06-16 16:53:43 +08:00
ibuler
f4b5a302a1 fix: 修复授权资产根据协议搜索重复的问题 2023-06-16 16:44:05 +08:00
老广
dd955530f1 Merge pull request #10746 from jumpserver/pr@dev@perf_category_api_sql
perf: 修改 category 引起的 sql 查询过多
2023-06-16 15:55:27 +08:00
ibuler
50b64f6cf5 perf: 修改 category 引起的 sql 查询过多
pref: stash

perf: 添加装饰器

perf: 优化 category api
2023-06-16 15:53:48 +08:00
老广
a5b21f94c2 Merge pull request #10752 from jumpserver/pr@dev@perf_custom_field_required
perf: 优化自定义 platform field
2023-06-16 15:16:58 +08:00
ibuler
9e3e183f95 perf: 优化自定义 platform field 2023-06-16 15:07:17 +08:00
ibuler
9ec3147b5f perf: 修改 login acls 迁移冲突问题
perf: 修改 login acls 迁移,避免冲突
2023-06-16 13:59:15 +08:00
老广
79fa134621 Merge pull request #10742 from jumpserver/pr@dev@windows_rdp_ping
feat: 添加自动化任务rdp ping
2023-06-15 18:34:45 +08:00
feng
ef4132d2c5 feat: 添加自动化任务rdp ping 2023-06-15 18:33:05 +08:00
老广
b31a08ed8d Merge pull request #10741 from jumpserver/pr@dev@fix_acl_migrate_not_work
perf: 修复 acl 迁移后无法使用
2023-06-15 18:32:34 +08:00
ibuler
cdd47f4bc6 perf: 修复 acl 迁移后无法使用 2023-06-15 18:13:51 +08:00
ibuler
269a5e9d52 perf: 龙芯使用 buster 镜像 2023-06-15 17:39:21 +08:00
老广
dd0d1d3592 Merge pull request #10735 from jumpserver/pr@dev@change_docker_base_image
perf: 修改基础镜像
2023-06-15 16:59:58 +08:00
ibuler
c06368d812 perf: 修改基础镜像 2023-06-15 16:53:28 +08:00
fit2bot
96ef56da67 perf: 修改翻译 (#10733)
Co-authored-by: feng <1304903146@qq.com>
2023-06-15 15:41:07 +08:00
Jiangjie.Bai
0a1b379dcd Merge pull request #10731 from jumpserver/dev
v3.4.0
2023-06-15 14:16:39 +08:00
老广
54926f7c70 Merge pull request #10729 from jumpserver/pr@dev@perf_custom_asset_support_required_field
perf: 自定义 field 支持 required
2023-06-15 13:18:06 +08:00
ibuler
a48d0046a9 perf: 自定义 field 支持 required 2023-06-15 13:14:02 +08:00
fit2bot
852435c7d5 perf: user 序列化添加is_org_admin 字段 (#10728)
Co-authored-by: feng <1304903146@qq.com>
2023-06-15 12:15:04 +08:00
老广
b19d9c8754 Merge pull request #10727 from jumpserver/pr@dev@perf_acl_ordering
perf: 优化 acl 默认排序
2023-06-15 10:49:07 +08:00
ibuler
e92c82568d perf: 优化 acl 默认排序 2023-06-15 10:45:07 +08:00
老广
c6e19a2989 Merge pull request #10726 from jumpserver/pr@dev@perf_json_field_re_error
perf: 优化 json field re 报错问题
2023-06-15 10:32:12 +08:00
ibuler
58edf02179 perf: 优化 json field re 报错问题 2023-06-15 10:27:52 +08:00
老广
3e9bafadec Merge pull request #10725 from jumpserver/pr@dev@perf_json_attr_m2m_filter
perf: 优化修改 rule vlaue
2023-06-15 10:17:36 +08:00
ibuler
70af478f66 perf: 优化修改 rule vlaue 2023-06-15 10:16:18 +08:00
ibuler
d7121296f2 perf: 优化使用 bool 2023-06-15 10:14:59 +08:00
老广
a76b243226 Merge pull request #10724 from jumpserver/pr@dev@fix_image
fix: 修正基础镜像名称
2023-06-15 10:14:03 +08:00
吴小白
5bd276b9ce fix: 修正基础镜像名称 2023-06-15 10:02:08 +08:00
老广
abd4e87bc2 Merge pull request #10723 from jumpserver/pr@dev@perf_json_attr_m2m_filter
perf: 优化 json m2m filter
2023-06-15 09:40:39 +08:00
ibuler
40d8a71bf8 perf: 优化 json m2m filter 2023-06-15 09:37:00 +08:00
老广
aad804f1af Merge pull request #10722 from jumpserver/pr@dev@perf_json_filter_m2m
perf: 优化 json m2m filter
2023-06-14 21:11:41 +08:00
ibuler
ee15f2d3d7 perf: 优化 json m2m filter 2023-06-14 21:10:35 +08:00
fit2bot
7c31b4ee30 perf: 修改翻译 (#10721)
Co-authored-by: feng <1304903146@qq.com>
2023-06-14 20:42:29 +08:00
ibuler
25e7249957 perf: 优化正则匹配 2023-06-14 20:41:14 +08:00
Aaron3S
d10db0aa62 fix: 修复任务被黑名单拦截后没有更新状态的问题 2023-06-14 20:40:40 +08:00
老广
d87ece00bd Merge pull request #10718 from jumpserver/pr@dev@perf_phone
perf: 优化 phone
2023-06-14 20:23:59 +08:00
ibuler
fca3936a79 perf: 优化 phone 2023-06-14 20:22:41 +08:00
Aaron3S
2c2334b618 perf: 优化报错内容 2023-06-14 20:16:42 +08:00
Aaron3S
9e31a5064b perf: 优化黑名单命令提示 2023-06-14 20:16:42 +08:00
Bai
954f86f8a9 fix: 修复执行任务中心报错的问题 2023-06-14 19:57:55 +08:00
老广
a3d32c901d Merge pull request #10715 from jumpserver/pr@dev@perf_filter_q_name
perf: 优化 filter name
2023-06-14 19:12:54 +08:00
ibuler
ce5ddf7873 perf: 优化 filter name 2023-06-14 19:10:34 +08:00
老广
29ebdb03e7 Merge pull request #10711 from jumpserver/pr@dev@perf_json_field_select
perf: 优化查询 acls
2023-06-14 18:19:42 +08:00
ibuler
53c3c90e2d perf: 优化查询 acls 2023-06-14 18:17:20 +08:00
nut
4bcd47df64 Update mixins.py 2023-06-14 17:10:38 +08:00
nut
d51323faef Update mixins.py 2023-06-14 17:10:38 +08:00
fangfang.dong
e8163167c5 修复: 控制台 - 账号 - 账号列表 - 查看账号详情时的500错误 2023-06-14 17:10:38 +08:00
Eric
e762a5d8ae perf: 更新发布机的单用户单会话策略 2023-06-14 16:49:37 +08:00
老广
dd85e2d74f Merge pull request #10707 from jumpserver/pr@dev@perf_connect_methods
perf: 优化连接方式
2023-06-14 15:14:45 +08:00
ibuler
96a66e555f perf: 优化连接方式 2023-06-14 14:48:50 +08:00
fit2bot
120f0dd3ad perf: asset web autofill 添加LabeledChoiceField (#10706)
Co-authored-by: feng <1304903146@qq.com>
2023-06-14 14:42:53 +08:00
Bai
de43df8370 perf: 修改 LDAP 用户导入任务名称 2023-06-14 11:07:38 +08:00
ibuler
459176550d perf: 修改 applet 是否支持并发,也依赖于 host 2023-06-13 19:44:59 +08:00
Eric
4112ad21c3 perf: 增加 terminal 显示字段 2023-06-13 19:44:39 +08:00
Eric
df8baede43 perf: 修复部分录像播放问题 2023-06-13 19:44:39 +08:00
fit2bot
5bd4a882cc fix: 平台导入无协议port (#10702)
Co-authored-by: feng <1304903146@qq.com>
2023-06-13 17:57:48 +08:00
老广
370d944396 Merge pull request #10698 from jumpserver/pr@dev@perf_applethost_options
perf: 修正发布机部署单用户单会话选项
2023-06-13 15:56:01 +08:00
fit2bot
c056cde2b7 perf: 修改翻译 (#10697)
Co-authored-by: feng <1304903146@qq.com>
2023-06-13 15:51:52 +08:00
Eric
93c0f11a5f perf: 修正发布机部署单用户单会话选项 2023-06-13 15:50:21 +08:00
老广
91ea738dcd Merge pull request #10695 from jumpserver/pr@dev@perf_acl_account_migrate
perf: 优化 acl 迁移中的 accounts
2023-06-13 14:41:02 +08:00
ibuler
0d3478c728 perf: 优化 acl 迁移中的 accounts 2023-06-13 14:38:52 +08:00
老广
c271d3276a Merge pull request #10693 from O-Jiangweidong/pr@dev@perf_ftp_log_field_same_as_session
perf: 字段含义和Session model保持一致
2023-06-13 13:59:59 +08:00
jiangweidong
dfd1ececdb perf: 删除翻译信息 2023-06-13 13:58:27 +08:00
jiangweidong
4683ae8c09 perf: 修改迁移文件中的字段信息 2023-06-13 13:54:59 +08:00
老广
db3fca0409 Merge pull request #10694 from jumpserver/pr@dev@perf_acls_filter
perf: 优化 json m2m field 正向查询
2023-06-13 13:50:31 +08:00
老广
9f4cb2e790 Merge pull request #10691 from O-Jiangweidong/pr@dev@fix_upgrade_34_error
fix: 解决migrate文件中迁移数据会触发信号导致字段不对应错误引发迁移失败问题
2023-06-13 13:49:31 +08:00
ibuler
7e9d1fc945 perf: 优化 json m2m field 正向查询 2023-06-13 13:48:32 +08:00
jiangweidong
af018ea262 perf: 字段含义和Session model保持一致 2023-06-13 13:18:50 +08:00
jiangweidong
71ccfe66ec fix: 解决migrate文件中迁移数据会触发信号导致字段不对应错误引发迁移失败问题 2023-06-13 13:14:38 +08:00
jiangweidong
a991a6c56c perf: 优化变量名 2023-06-13 11:36:32 +08:00
jiangweidong
9a29cda210 fix: 提供给luna的录像地址不能为本地local地址,应该为url 2023-06-13 11:36:32 +08:00
老广
aee20a6c05 Merge pull request #10686 from jumpserver/pr@dev@perf_applet_import
perf: 优化 applet 导入
2023-06-13 10:04:02 +08:00
老广
499c52800e Merge pull request #10689 from jumpserver/pr@dev@perf_ticket_request_login
perf: 优化登录 ticket 创建
2023-06-13 10:03:36 +08:00
ibuler
4a2f7d21f6 perf: 优化登录 ticket 创建 2023-06-13 09:54:03 +08:00
ibuler
44d92b9dec perf: 修改 acl user review 2023-06-12 19:12:11 +08:00
ibuler
1e9310bf0c perf: 优化 applet 导入 2023-06-12 19:00:59 +08:00
老广
1b750cf51d Merge pull request #10682 from jumpserver/pr@dev@allow_chrome_some_shortcut
perf: 放行快捷键 ctrl-c-v
2023-06-12 18:36:16 +08:00
ibuler
e9125d1228 perf: 修改 chrome error 2023-06-12 18:35:27 +08:00
老广
c85df4cf42 Merge pull request #10685 from jumpserver/pr@dev@fix_command_filter_acls_error
perf: 优化命令过滤 acl 获取
2023-06-12 18:28:52 +08:00
ibuler
09a5b63240 perf: 修改 acl filter 2023-06-12 18:28:04 +08:00
ibuler
f9bc7ec4aa perf: 优化命令过滤 acl 获取 2023-06-12 18:20:30 +08:00
fit2bot
d59a293bb9 perf: 修改用户组添加全部用户api的权限位 (#10683)
Co-authored-by: feng <1304903146@qq.com>
2023-06-12 18:16:09 +08:00
ibuler
cb2b8bb70b perf: 放行快捷键 ctrl-c-v 2023-06-12 16:37:12 +08:00
老广
86c81c42de Merge pull request #10681 from jumpserver/pr@dev@perf_global_acl
perf: 优化 manager 和 acl 的 组织
2023-06-12 16:02:45 +08:00
ibuler
5c2b54ad3b perf: 优化 manager 和 acl 的 组织 2023-06-12 16:00:14 +08:00
Eric
b79aaff4a0 perf: 资产根据 ssh 协议过滤是否启用 sftp 2023-06-12 15:42:24 +08:00
jiangweidong
3fd8e5755d fix: 修改变量 2023-06-12 15:41:25 +08:00
jiangweidong
3604ef4228 fix: 解决录像无法在线观看的问题 2023-06-12 15:41:25 +08:00
Bai
24272d3162 fix: 修复 Token API 获取命令过滤器失败的问题 2023-06-12 14:11:44 +08:00
ibuler
a99d22708c perf: 修改 migrations 2023-06-12 14:10:37 +08:00
ibuler
dc35a8c52b perf: 优化 acl 默认排序和manager 2023-06-12 14:10:37 +08:00
老广
fc90ced2b0 Merge pull request #10675 from jumpserver/pr@dev@json_field_add_requirement
perf: m2m json field 字段必填
2023-06-12 13:41:34 +08:00
老广
7bfe8816a3 Merge pull request #10674 from jumpserver/pr@dev@perf_config
perf: 优化配置
2023-06-12 13:36:49 +08:00
Bai
b4008338c6 perf: 优化配置 2023-06-12 11:24:12 +08:00
ibuler
6058f1bdc0 perf: m2m json field 字段必填 2023-06-12 11:03:04 +08:00
ibuler
5708e57631 perf: m2m json field 字段必填 2023-06-12 10:25:14 +08:00
老广
ba353271ad Merge pull request #10667 from jumpserver/pr@dev@fix_login_regex_error
perf: 修复 正则匹配的 bug
2023-06-09 18:35:23 +08:00
ibuler
adfc22ae85 perf: 修复 正则匹配的 bug 2023-06-09 18:32:56 +08:00
jiangweidong
ef2ecb225a fix: 资产登录规则操作日志显示优化 2023-06-09 18:25:00 +08:00
ibuler
9574d03c12 fix: 修复连接方式选择 2023-06-09 18:22:35 +08:00
Bai
00d3caf80c perf: 删除不用代码 2023-06-09 18:22:04 +08:00
fit2bot
2333a29a56 perf: 优化数据库改密原子性 (#10663)
Co-authored-by: feng <1304903146@qq.com>
2023-06-09 16:52:54 +08:00
fit2bot
b3c5674213 fix: 资产用模版创建账号无切换至 (#10662)
Co-authored-by: feng <1304903146@qq.com>
2023-06-09 16:23:44 +08:00
老广
f372f1e417 Merge pull request #10659 from jumpserver/pr@dev@perf_applet
perf: 添加 edition 字段
2023-06-09 16:05:10 +08:00
ibuler
a86378601a perf: 修改插件 2023-06-09 15:58:30 +08:00
ibuler
6a73cd6b77 perf: 添加 edition 字段 2023-06-09 15:40:41 +08:00
Eric
3022ca983c perf: Dockerfile 增加依赖 2023-06-08 22:09:37 +08:00
老广
8f8e781376 Merge pull request #10655 from jumpserver/pr@dev@fix_login_acl_uniq
perf: 优化 LoginACL 迁移,避免 uniq error
2023-06-08 18:35:23 +08:00
ibuler
998505e999 perf: 修改 acl 登录 2023-06-08 18:33:43 +08:00
ibuler
1c95b67154 perf: 优化 LoginACL 迁移,避免 uniq error 2023-06-08 18:19:32 +08:00
jiangweidong
2837dcf40e feat: 支持文件上传下载备份 (#10438)
* feat: 支持文件上传下载备份

* perf: 抽离replay和ftpfile存储代码

* perf: FTPLog增加session字段

* fix: 修改变量名
2023-06-08 18:04:07 +08:00
ibuler
271ec1bfe0 perf: 优化刚才修改导致的 acls 过滤没有过滤组织 2023-06-08 18:03:49 +08:00
老广
41e147d4b2 Revert "chore(deps): bump cryptography from 38.0.4 to 41.0.0 in /requirements"
This reverts commit 0025b2483e.
2023-06-08 14:57:34 +08:00
老广
d2f1309900 Merge pull request #10644 from jumpserver/pr@dev@perf_acls_connect_methods
perf: 优化 connect method acls 和登录 acls
2023-06-08 14:52:10 +08:00
dependabot[bot]
0025b2483e chore(deps): bump cryptography from 38.0.4 to 41.0.0 in /requirements
Bumps [cryptography](https://github.com/pyca/cryptography) from 38.0.4 to 41.0.0.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/38.0.4...41.0.0)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-08 14:19:06 +08:00
fangfang.dong
a6d586efb4 feat: 系统设置 - 短信服务 - 多平台配置测试手机号: 增加区号显示与修改功能 2023-06-08 11:01:55 +08:00
jiangweidong
f0c0ba3653 fix: 解决lina不显示json格式参数,优化DictSerializer改为JSONSerialzer, 2023-06-08 10:26:33 +08:00
ibuler
d6eb4bcbd2 perf: 优化 connect method acls 和登录 acls 2023-06-07 17:39:56 +08:00
fit2bot
bfd77aa1b0 feat: automation windows pyrdp ping (#10602)
* feat: automation windows pyrdp ping

* perf: add pyfreerdp deps

---------

Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: Eric <xplzv@126.com>
2023-06-07 17:28:35 +08:00
老广
cc57fcacce Merge pull request #10621 from jumpserver/pr@dev@fix_static_js
fix: 修复 jumpserver.js 文件中 rules_id_map_label 变量缺失引起的用户初次登录修改密码表单无法校验提示的错误
2023-06-07 10:36:25 +08:00
Eric
7d3b60232c perf: 优化翻译 2023-06-06 19:13:22 +08:00
Eric
10996f573a perf: 翻译 i18n 信息 2023-06-06 19:13:22 +08:00
老广
a7ca9ccfe9 Merge pull request #10629 from jumpserver/pr@dev@feat_connect_support_options
perf: 连接时支持连接参数
2023-06-05 18:00:44 +08:00
ibuler
c6f92a462f perf: 连接时支持连接参数 2023-06-05 17:27:44 +08:00
fit2bot
a341b55f43 perf: 一些资产没有默认节点+ (#10622)
Co-authored-by: feng <1304903146@qq.com>
2023-06-05 15:10:33 +08:00
fangfangdong
3c68b880a7 fix: 修复 jumpserver.js 文件中 rules_id_map_label 变量缺失引起的用户初次登录修改密码表单无法校验提示的错误 2023-06-05 15:00:25 +08:00
Eric
42c35b0271 perf: chrome 脚本增加 sleep 等待指令,单位秒 2023-06-02 16:14:49 +08:00
Eric
8d8f479da6 perf: dbeaver 支持使用网关连接数据库 2023-06-02 16:13:10 +08:00
fit2bot
9d8c1bb317 perf: 账号模版更新时, 优化同步更新账号逻辑 (#10611)
Co-authored-by: feng <1304903146@qq.com>
2023-06-02 10:56:00 +08:00
Bai
ed117ceac3 perf: 优化创建节点时校验同级节点名称不允许重复(API方式) 2023-06-01 16:39:44 +08:00
fit2bot
1ac9d727ef perf: 修改翻译 (#10604)
Co-authored-by: feng <1304903146@qq.com>
2023-05-31 18:19:11 +08:00
fangfangdong
a0bb25e558 feat: 系统设置-安全设置 支持配置 作业中心命令黑名单 2023-05-31 17:43:05 +08:00
Bai
51d6090fdc perf: 优化支持账号列表搜索资产名称 2023-05-31 16:50:37 +08:00
ibuler
d402de012b perf: 优化写法,避免重复 2023-05-31 16:48:50 +08:00
ibuler
2a183e34ac perf: 修改去掉 debug 2023-05-31 16:48:50 +08:00
ibuler
7d111b6efb perf: 优化自定义平台和 applet 导入 2023-05-31 16:48:50 +08:00
Bai
0ba7ca6373 perf: 升级依赖 certifi==2022.12.7 2023-05-31 14:20:59 +08:00
jiangweidong
51e5733f1c fix: 具有超级工单权限的用户申请工单可以指定给某人 (#10596) 2023-05-31 10:20:37 +08:00
fit2bot
3626bf8df6 feat: 命令及录像存储可连接性定时检查 (#10594)
Co-authored-by: feng <1304903146@qq.com>
2023-05-30 18:45:51 +08:00
ibuler
312213f1c5 perf: 允许 web 同时打开 2023-05-30 18:43:04 +08:00
ibuler
d285daa1c1 perf: 资产支持根据协议搜索 2023-05-30 17:55:34 +08:00
ibuler
f4c29a262a perf: 优化自动化任务在平台中的名称显示 2023-05-30 17:17:47 +08:00
fangfangdong
b98ccf8b3d style: 调整国际化文件中时间单位显示方式 2023-05-30 17:04:50 +08:00
Bai
ef7886b25b perf: 升级依赖 jms-storage==0.0.46 2023-05-30 15:08:04 +08:00
火星小刘
89b42ce51b 企业微信扫描登录修改为新版接口,在PC登录企业微信客户端的情况下,不再需要手机扫码。
企业微信官方api
https://developer.work.weixin.qq.com/document/path/98151
2023-05-30 14:58:58 +08:00
老广
e5c93dc50f Merge pull request #10585 from jumpserver/pr@dev@perf_chrome_extensions
perf: 优化 chrome 插件
2023-05-30 11:01:25 +08:00
ibuler
50d8389fff perf: 优化 chrome 插件 2023-05-30 10:59:16 +08:00
老广
5edacf369b Merge pull request #10583 from jumpserver/pr@dev@perf_perm_action_helptext
perf: 优化授权中动作的说明
2023-05-30 09:52:38 +08:00
ibuler
7a39552bb2 merge: with dev 2023-05-30 09:47:59 +08:00
fit2bot
e61227d694 perf: 登录资产的 ACL 支持 ip 控制 (#10581)
Co-authored-by: ibuler <ibuler@qq.com>
2023-05-29 19:45:55 +08:00
ibuler
0901b95ce0 perf: 优化授权中动作的说明 2023-05-29 18:23:26 +08:00
feng
fd7e821f11 feat: 用户组绑定所有用户 2023-05-29 16:27:51 +08:00
Eric
ac3415d95c perf: 完善远程应用 chrome 启动方式 2023-05-29 15:25:32 +08:00
Eric
b0b174bb2a perf: connection token 的 account 增加 asset 属性 2023-05-29 15:14:31 +08:00
dependabot[bot]
3c568510cf chore(deps): bump requests from 2.28.0 to 2.31.0 in /requirements
Bumps [requests](https://github.com/psf/requests) from 2.28.0 to 2.31.0.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.28.0...v2.31.0)

---
updated-dependencies:
- dependency-name: requests
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-29 11:17:18 +08:00
halo
a1ed59d116 perf: yaml文件读取使用utf-8编码 2023-05-29 11:16:29 +08:00
Bai
7708812556 perf: 优化终端端点 Host 字段帮助 2023-05-26 17:20:50 +08:00
Bai
24a98eb747 perf: 优化短信设置的字段名称显示 2023-05-26 15:19:11 +08:00
老广
60fd5a2e91 Merge pull request #10556 from jumpserver/pr@dev@fix_chrome_path
fix: 修正 Chrome 环境变量
2023-05-25 19:19:45 +08:00
ibuler
9932e7eadd perf: 资产授权支持 delete 控制 2023-05-25 19:15:48 +08:00
fit2bot
73102fceb0 fix: 修复禁用平台的账号切换功能,历史创建的切换账号依然可以正常切换 (#10560)
Co-authored-by: feng <1304903146@qq.com>
2023-05-25 18:38:14 +08:00
Bai
5e177b6ce5 fix: 修复用户登录认证 MFA 输入错误时没有记录具体错误信息的问题 2023-05-25 18:26:04 +08:00
吴小白
38b121421f fix: 修正 Chrome 环境变量 2023-05-25 17:42:19 +08:00
fit2bot
a6366a2dd4 perf: ldap 能多组织同步用户 (#10543)
Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
2023-05-25 17:35:36 +08:00
ibuler
fa21c83db3 perf: LDAP 测试 api 改为异步的 2023-05-25 16:54:22 +08:00
feng
f20a4beef3 fix: 自定义平台无自动化任务 2023-05-25 16:53:56 +08:00
ibuler
cc2e42c77a perf: chrome 添加插件 2023-05-25 14:20:05 +08:00
jiangweidong
bcb4e04200 perf: 忽略自定义短信认证请求证书校验 2023-05-25 14:13:48 +08:00
jiangweidong
848ea0cf3c perf: 修改翻译 2023-05-25 14:13:48 +08:00
jiangweidong
20cc4ea320 perf: 支持自定义短信认证 2023-05-25 14:13:48 +08:00
fit2bot
5e7d474bb7 perf: RemoteAppHost 平台支持 winrm (#10542)
Co-authored-by: ibuler <ibuler@qq.com>
2023-05-25 13:57:02 +08:00
halo
b72f8a7241 perf: 优化账号收集,使用正则处理结果 2023-05-25 13:40:25 +08:00
老广
35e9c21ec5 Merge pull request #10547 from jumpserver/pr@dev@perf_json_filter
perf: 修改 filter_q
2023-05-25 12:30:13 +08:00
ibuler
dcd35310cd perf: 修改 filter_q 2023-05-25 11:42:39 +08:00
fit2bot
32a8e150da perf: 删除全部用户错误提示 (#10546)
Co-authored-by: feng <1304903146@qq.com>
2023-05-25 11:38:20 +08:00
Bai
cabdc3ad42 fix: 修复终端端点使用资产标签匹配机制时 500 的问题 2023-05-24 17:36:51 +08:00
fit2bot
653b996d84 perf: 账号推送支持设置推送账号的 home 目录 (#10541)
Co-authored-by: feng <1304903146@qq.com>
2023-05-24 17:35:14 +08:00
老广
2262b0ecb5 Merge pull request #10327 from jumpserver/pr@dev@json_m2m_field
pref: 自定义 ORM Field,使用 JSONField 完成
2023-05-24 15:27:47 +08:00
ibuler
eccbf46300 merge: with dev 2023-05-24 15:26:59 +08:00
Eric
440cd13fcc perf: 同一个协作会话链接,限制同一用户仅可使用一次 2023-05-24 14:40:01 +08:00
feng
20c1f4a293 perf: 改密过程原子性优化 2023-05-24 14:31:27 +08:00
Bai
feb42961ef feat: 资产列表搜索支持 comment 模糊搜索 2023-05-22 18:27:07 +08:00
jiangweidong
3eaed62186 验证账号可连接性(自定义ssh)使用的key值错误 (#10523) 2023-05-22 17:29:17 +08:00
jiangweidong
a3f472137f perf: 优化命令过滤规则操作日志显示问题 2023-05-22 15:07:55 +08:00
feng
d4bb501ef9 fix: 账号导入500 2023-05-22 14:13:55 +08:00
ibuler
c4b25fbdbd fix: 修复 applet 账号选择问题 2023-05-19 17:01:29 +08:00
ibuler
197364d42d perf: 暂存一下 2023-05-19 11:30:50 +08:00
ibuler
6eb9986c75 perf: 修改过期默认值 2023-05-19 10:58:04 +08:00
老广
e40d65871b Merge pull request #10501 from jingzhaoyang/dev
fix: when request access_token is post method, http body has no json …
2023-05-19 10:43:32 +08:00
老广
a236de1eff Merge pull request #10489 from O-Jiangweidong/pr@dev@fix_mfa_bypass
fix: 修复某待审核用户返回时,登录其他用户可绕开mfa的问题
2023-05-19 10:41:19 +08:00
ibuler
a261d69cd2 perf: 修改 m2m json field 2023-05-18 21:34:19 +08:00
景朝阳
efb31d6f37 fix: when request access_token is post method, http body has no json data 2023-05-18 20:40:41 +08:00
Jiangjie.Bai
4a56875bda Merge pull request #10500 from jumpserver/dev
v3.3.0
2023-05-18 19:37:10 +08:00
Eric
48fca8f0f3 perf: 修复 rdp option 参数设置 2023-05-18 19:36:30 +08:00
Jiangjie.Bai
2f5d094abb Merge pull request #10498 from jumpserver/dev
v3.3.0
2023-05-18 19:17:08 +08:00
Eric
31600ba66c perf: rdp 设置分辨率不生效问题 2023-05-18 19:13:57 +08:00
Eric
a17fa5a518 perf: remoteapp rdp文件参数禁用复用连接 2023-05-18 19:09:12 +08:00
Bai
59d964d57a perf: 优化组织管理员不能更新系统管理员 2023-05-18 19:03:51 +08:00
fit2bot
2981bfffb1 fix: 给 view 增加 export 属性 (#10495)
Co-authored-by: feng <1304903146@qq.com>
2023-05-18 18:33:22 +08:00
fit2bot
0596b74fa1 fix: 账号创建ssh key 校验 (#10494)
Co-authored-by: feng <1304903146@qq.com>
2023-05-18 18:00:58 +08:00
ibuler
ebaa8d2637 perf: 优化 json error 2023-05-18 17:31:40 +08:00
吴小白
b368b6aef4 perf: 优化发布机部署脚本 2023-05-18 16:31:55 +08:00
fit2bot
44967b1af1 fix: 平台局部更新会自动关闭其他属性 (#10484)
Co-authored-by: feng <1304903146@qq.com>
2023-05-18 15:43:23 +08:00
fit2bot
6c19fd4192 fix: 修复 luna 类型树数量计算不准确bug (#10492)
Co-authored-by: feng <1304903146@qq.com>
2023-05-18 15:42:30 +08:00
jiangweidong
bb27be0924 fix: 修复某待审核用户返回时,登录其他用户可绕开mfa的问题 2023-05-18 14:45:17 +08:00
ibuler
4e5ab5a605 perf: 修改过滤的 q 2023-05-18 13:14:32 +08:00
fit2bot
b0b14fe2e1 fix: openid 三方登录限制bug (#10480)
Co-authored-by: feng <1304903146@qq.com>
2023-05-17 19:05:28 +08:00
Aaron3S
36aa0d301b perf: 优化 ops 用户提示 2023-05-17 18:37:54 +08:00
Aaron3S
3fa80351e0 fix: 修复作业中心提示用户名排序每次不一样的问题 2023-05-17 18:37:54 +08:00
fit2bot
1fef273669 fix: 修复工单日期不能为null settings 文件没有权限bug (#10479)
Co-authored-by: feng <1304903146@qq.com>
2023-05-17 17:29:34 +08:00
Bai
04e95d378c perf: 优化账号列表-添加账号切换自用户字段必填的问题 2023-05-17 14:11:21 +08:00
fit2bot
9058a79c5c fix: 修复三方用户登录登录限制提示错误问题 (#10475)
Co-authored-by: feng <1304903146@qq.com>
2023-05-17 11:11:39 +08:00
fit2bot
a7fed21819 perf: 翻译 (#10472)
Co-authored-by: feng <1304903146@qq.com>
2023-05-16 18:35:48 +08:00
jiangweidong
cfc91047fd perf: 自动化任务执行错误日志在DEBUG_DEV下打印 2023-05-16 18:15:55 +08:00
fit2bot
4ce2d991dd perf: 收集mysql账号username 优化 (#10470)
Co-authored-by: feng <1304903146@qq.com>
2023-05-16 18:15:42 +08:00
Bai
449e7ce454 fix: 修复删除组织时组织根节点未被删除的问题 2023-05-16 16:37:47 +08:00
fit2bot
9cc9600a4c fix: 批量添加账号su_from 错乱 (#10463)
Co-authored-by: feng <1304903146@qq.com>
2023-05-16 15:44:02 +08:00
Bai
f7e0f533e0 perf: 优化安全设置登录限制帮助文案信息 2023-05-16 15:25:57 +08:00
fit2bot
c7c3f711bf perf: 优化发布机不显示task信息问题 (#10450)
* perf: 优化发布机不显示task信息问题

* perf: 添加celery task execution api的task_name字段

---------

Co-authored-by: “huailei000” <2280131253@qq.com>
Co-authored-by: feng <1304903146@qq.com>
2023-05-16 14:48:00 +08:00
fit2bot
ec10ee3298 fix: 模版批量添加提示异常(core 代码bug) (#10455)
Co-authored-by: feng <1304903146@qq.com>
2023-05-15 18:58:06 +08:00
fit2bot
155c241ef7 fix: 修复账号模版更新时 添加密码密钥500 (#10454)
Co-authored-by: feng <1304903146@qq.com>
2023-05-15 18:47:39 +08:00
Bai
341dd6adfb perf: 修改 ansible-core 源 gitee -> github 2023-05-15 15:16:37 +08:00
吴小白
89b75835a6 perf: 优化一些问题 2023-05-15 13:43:44 +08:00
吴小白
ee2172ca82 Merge pull request #10449 from jumpserver/pr@dev@perf_grpcio
perf: 升级依赖 grpcio==1.54.2
2023-05-15 11:30:38 +08:00
Bai
98802e21a0 perf: 升级依赖 grpcio==1.54.2 2023-05-15 11:23:36 +08:00
ibuler
7c850a8a1e perf: 修改 json field query 2023-05-12 19:16:55 +08:00
feng
5b4979bdb1 perf: 修改仅允许已存在用户登录 判断的函数名 2023-05-12 18:13:11 +08:00
fit2bot
6afcf7bf42 perf: 第三方用户认证错误信息提示(尤其是第三方认证跳转的情况) (#10446)
Co-authored-by: feng <1304903146@qq.com>
2023-05-12 17:22:18 +08:00
jiangweidong
afb49f4040 fix: oracle Ping 失败 2023-05-12 15:41:03 +08:00
老广
4e20cf6036 Merge pull request #10443 from maninhill/patch-9
Update README.md
2023-05-12 14:43:23 +08:00
maninhill
9ecde3024a Update README.md 2023-05-12 14:42:07 +08:00
老广
daf6dbaf73 Merge pull request #10442 from maninhill/patch-8
chore: 更新 README
2023-05-12 14:36:57 +08:00
maninhill
7edb024abe chore: 更新 README 2023-05-12 14:35:45 +08:00
huailei
1c7634b394 Merge pull request #10432 from jumpserver/pr@dev@perf_task_log
perf: 优化task执行数据显示
2023-05-11 17:22:52 +08:00
“huailei000”
ff4f01fb56 perf: 优化task执行数据显示 2023-05-11 17:19:21 +08:00
老广
fd5f57d9b7 Merge pull request #10425 from jumpserver/pr@dev@perf_dbasset
perf: 平台协议支持更改 public 字段
2023-05-11 10:50:33 +08:00
fit2bot
f06059837d perf: 授权类型树 (#10390)
Co-authored-by: feng <1304903146@qq.com>
2023-05-11 10:15:40 +08:00
Bai
b98aa377b6 perf: 数据库资产 默认数据库 是必填项 2023-05-10 16:47:03 +08:00
Bai
42abad75d9 perf: 平台协议支持更改 public 字段 2023-05-10 16:46:10 +08:00
Aaron3S
ebb0e796ce feat: 作业中心根据当前选择的资产提示用户名 2023-05-10 15:41:17 +08:00
Bai
24fd87f7bc perf: 平台协议API返回public字段 2023-05-10 15:36:18 +08:00
“huailei000”
90cc2a2519 perf: 展示执行详情数据 2023-05-10 15:24:40 +08:00
feng
9802aec881 perf: 自动化执行详情数据 2023-05-10 15:24:40 +08:00
ibuler
737032418a perf: 优化写法 2023-05-10 11:10:21 +08:00
ibuler
2aa03d5b79 perf: connect token 允许复用 2023-05-10 11:10:21 +08:00
老广
926550bf26 Merge pull request #10416 from jumpserver/pr@dev@fix_categorytree1
fix: 修复资产类型树循环显示的问题
2023-05-10 11:07:39 +08:00
ibuler
240f700b92 perf: 修改账号生成 2023-05-10 11:04:33 +08:00
ibuler
4000986d1d perf: 优化选择账号 2023-05-10 11:04:33 +08:00
ibuler
0e98990e17 perf: 远程应用调度优先调度的上个主机,使用上个账号,并支持同名账号 2023-05-10 11:04:33 +08:00
Bai
8309f00e5e fix: 修复资产类型树循环显示的问题 2023-05-10 02:53:19 +00:00
老广
ad96fd2a96 Merge pull request #10412 from jumpserver/dependabot/pip/requirements/django-3.2.19
chore(deps): bump django from 3.2.17 to 3.2.19 in /requirements
2023-05-10 09:55:16 +08:00
dependabot[bot]
e6bbaac7de chore(deps): bump django from 3.2.17 to 3.2.19 in /requirements
Bumps [django](https://github.com/django/django) from 3.2.17 to 3.2.19.
- [Commits](https://github.com/django/django/compare/3.2.17...3.2.19)

---
updated-dependencies:
- dependency-name: django
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-09 22:15:13 +00:00
Bai
f0cc64c74e perf: 优化账号用户名字段提示信息(null 的情况) 2023-05-09 18:41:28 +08:00
Chenyang Shen
65ca953f5b Merge pull request #10409 from jumpserver/pr@dev@perf_job_permission
perf: 优化 job permission
2023-05-09 17:25:36 +08:00
ibuler
873c019b58 perf: 修改 job list 2023-05-09 17:23:21 +08:00
ibuler
b5599fd3a6 perf: 优化 job permission 2023-05-09 17:18:52 +08:00
fit2bot
1933e82587 feat: 账号模版切换至 (#10396)
Co-authored-by: feng <1304903146@qq.com>
2023-05-09 15:29:02 +08:00
fit2bot
6b6900cfd4 perf: 导出account 列表需对文件进行加密 (#10366)
Co-authored-by: feng <1304903146@qq.com>
2023-05-08 17:02:55 +08:00
jiangweidong
185f33c3e0 perf: 企业微信、钉钉、飞书本地没有用户即创建 2023-05-08 16:58:39 +08:00
jiangweidong
3f1858a105 将配置改到类属性中 2023-05-08 16:58:39 +08:00
jiangweidong
1fef9a2cf0 perf: 去掉不用的导包 2023-05-08 16:58:39 +08:00
jiangweidong
38a9b90a8b fix: flash_message 带上返回值 2023-05-08 16:58:39 +08:00
jiangweidong
b376491020 perf: 优化user_type默认值 2023-05-08 16:58:39 +08:00
jiangweidong
3367f65b02 perf: 优化逻辑,抽离callback_base类 2023-05-08 16:58:39 +08:00
jiangweidong
7a97496f70 perf: 变量名还原 2023-05-08 16:58:39 +08:00
jiangweidong
bda748d547 feat: 支持钉钉、飞书、企业微信扫码登录无用户时自动创建用户 2023-05-08 16:58:39 +08:00
feng
7ff22cbc34 fix: /prometheus/metrics/ api 500 2023-05-08 14:47:56 +08:00
ibuler
1ec4cbdf38 perf: 优化 m2m json field 2023-05-08 14:09:44 +08:00
Eric_Lee
ccd6b8c48a Merge pull request #10394 from jumpserver/pr@dev@perf_replay_mp4
perf: 支持 mp4 录像文件上传和新增 video worker 类型
2023-05-07 09:06:18 +08:00
ibuler
a112d3c99d perf: 修改 accounts 字段 2023-05-06 19:52:03 +08:00
Eric
ee7f1f8f5e perf: 支持 mp4 录像文件上传和新增 video worker 类型 2023-05-06 14:01:25 +08:00
Bai
127f6730f6 perf: 优化迁移后的 Redis 数据库平台从 Redis6+ 修改为 Redis6 2023-05-04 17:31:45 +08:00
Bai
22b56d73b6 fix: 修复迁移应用时(组织下只有根节点,同步后的应用资产没有设置节点的问题) 2023-05-04 16:39:24 +08:00
Bai
9934456af4 fix: 修复迁移redis资产账号丢失的问题(系统用户用户名为空字符串) 2023-05-04 15:44:31 +08:00
Bai
3585ca2d49 perf: 优化文案: 清除离线会话 2023-05-04 10:33:16 +08:00
fit2bot
f842546042 perf: 平台导出过滤掉automation (#10367)
Co-authored-by: feng <1304903146@qq.com>
2023-04-28 17:13:43 +08:00
ibuler
5a6e13721d perf: 优化 json m2m field 2023-04-27 18:05:16 +08:00
Eric
a0151b8d44 fix: 修复旧 ssh 私钥,解析失败的问题 2023-04-27 17:50:16 +08:00
老广
62e5389f80 Update README.md 2023-04-27 17:49:07 +08:00
老广
a1d24f030e Merge pull request #10360 from maninhill/patch-7
chore(docs):更新 README
2023-04-27 17:42:59 +08:00
maninhill
78ddb75b7a chore(docs):更新 README 2023-04-27 17:38:26 +08:00
ibuler
90090a7fc7 perf: 添加 JSONManyToManyFieldSerializer 2023-04-27 14:13:40 +08:00
fit2bot
ea1c94c6db perf: 用户组织按照name 进行排序 (#10354)
Co-authored-by: feng <1304903146@qq.com>
2023-04-27 11:38:33 +08:00
ibuler
338ab5c634 perf: 优化 acl 2023-04-26 19:11:53 +08:00
fit2bot
58d055f114 perf: 改密 推送 可以对自己操作 同时设置su_enabled 可提权 (#10349)
Co-authored-by: feng <1304903146@qq.com>
2023-04-26 18:50:30 +08:00
Bai
9eec2909ed fix: 修改'账号备份列表-执行次数'未翻译为英文的问题 2023-04-26 17:11:28 +08:00
ibuler
632627db11 perf: 去掉 debug model 2023-04-25 16:25:00 +08:00
fit2bot
a19586f8b8 perf: perm user asset add labels (#10339)
Co-authored-by: feng <1304903146@qq.com>
2023-04-25 14:48:09 +08:00
fit2bot
8fe5ab42e8 perf: 用户工作台资产显示更多字段 (#10338)
Co-authored-by: feng <1304903146@qq.com>
2023-04-25 14:36:01 +08:00
ibuler
f51af9736b perf: rdp 支持 console 模式 2023-04-25 14:35:07 +08:00
ibuler
20b7b794d8 perf: 修改 m2m field 2023-04-25 14:00:19 +08:00
fit2bot
2a196743f5 perf: 组织更新刷新缓存 (#10333)
Co-authored-by: feng <1304903146@qq.com>
2023-04-25 11:27:58 +08:00
fit2bot
917620736b feat: 修改模版账号密码 同步更新关联的账号 (#10328)
* feat: 修改模版账号密码 同步更新关联的账号

* feat: 同步多个账号

---------

Co-authored-by: feng <1304903146@qq.com>
2023-04-25 10:28:19 +08:00
ibuler
19d29d6637 perf: remove debug msg 2023-04-24 19:04:47 +08:00
ibuler
c824ae4478 perf: 修改 manager 2023-04-24 19:03:44 +08:00
ibuler
3cdb81cf4a perf: 搞定自定义 orm field 2023-04-24 19:00:31 +08:00
ibuler
378eee0402 pref: stash 2 2023-04-24 16:27:13 +08:00
Bai
9d2ae7d1ed fix: 修改 utils/disable_user_mfa.sh otp_level => mfa_level 2023-04-23 16:45:40 +08:00
ibuler
c991a73632 v1 2023-04-23 16:15:27 +08:00
feng
149ca1afce perf: 开源 acl去除 review 2023-04-21 18:41:47 +08:00
fit2bot
a1f65bccc5 feat: 只有系统管理员才能更新或删除系统管理员 (#10306)
Co-authored-by: feng <1304903146@qq.com>
2023-04-21 17:31:39 +08:00
ibuler
a105748a55 perf: 账号模版 protocols 过滤 2023-04-21 17:11:18 +08:00
fit2bot
f1ee454254 perf: user groups filter (#10300)
Co-authored-by: feng <1304903146@qq.com>
2023-04-21 15:35:56 +08:00
ibuler
a6ab886968 perf: 优化自定义类型的冲突 2023-04-21 15:21:11 +08:00
feng
f85daa088f perf: 创建资产 nodes 可为空 默认 default 2023-04-21 14:58:11 +08:00
fit2bot
ede53d3b6b perf: ssh key strategy translate (#10295)
Co-authored-by: feng <1304903146@qq.com>
2023-04-21 14:08:59 +08:00
ibuler
eb9ac213d5 perf: 去掉 debug msg 2023-04-21 11:32:49 +08:00
ibuler
06052b85a2 perf: 优化支持 自定义 applet
perf: 优化平台
2023-04-21 11:31:10 +08:00
老广
01827c7b3a Merge pull request #10292 from jumpserver/pr@dev@fix_util
fix: util add jobauditlog
2023-04-21 11:28:46 +08:00
Bai
14e572813f fix: util add jobauditlog 2023-04-21 11:20:51 +08:00
Jiangjie.Bai
f2e7845d4b Merge pull request #10286 from jumpserver/dev
v3.2.0
2023-04-20 18:33:59 +08:00
fit2bot
d75b7c014e perf: 更新模版暂不同步修改账号 (#10285)
Co-authored-by: feng <1304903146@qq.com>
2023-04-20 18:29:31 +08:00
Jiangjie.Bai
b44e6c258f Merge pull request #10284 from jumpserver/dev
v3.2.0
2023-04-20 18:23:12 +08:00
Bai
2ae951e6e6 fix: 修改翻译 2023-04-20 17:53:42 +08:00
fit2bot
10b033ee97 perf: 批量更新资产消息 (#10280)
Co-authored-by: feng <1304903146@qq.com>
2023-04-20 16:22:02 +08:00
ibuler
177d634d85 fix: 修复登录 acl 显示不对 2023-04-20 15:48:56 +08:00
feng
ee122690ff perf: asset date_updated 2023-04-20 15:48:34 +08:00
ibuler
dac708f952 perf: 优化 api doc 报错 2023-04-20 15:47:50 +08:00
老广
75724cbddb Merge pull request #10272 from jumpserver/pr@dev@perf_asset_task_i18n
perf: 优化资产任务的 i18n
2023-04-20 14:45:24 +08:00
老广
4b5d9d3a76 Merge pull request #10273 from jumpserver/pr@dev@account_auto_i18n
perf: account auto i18n
2023-04-20 14:44:54 +08:00
fit2bot
0de6c41406 perf: update templat account (#10274)
Co-authored-by: feng <1304903146@qq.com>
2023-04-20 14:43:40 +08:00
ibuler
b52f18aea6 perf: 修改 i18n 2023-04-20 14:39:31 +08:00
ibuler
be58539df8 perf: 修改支持 i18n 2023-04-20 14:19:13 +08:00
feng
f030638ba4 perf: account auto i18n 2023-04-20 14:10:39 +08:00
ibuler
f496f7d635 perf: 优化资产任务的 i18n 2023-04-20 13:51:41 +08:00
老广
7887548174 Merge pull request #10269 from jumpserver/pr@dev@fix_loong64_build
fix: 修复 loong64 构建失败
2023-04-20 13:22:00 +08:00
老广
8e61dc8e02 Merge pull request #10267 from jumpserver/pr@dev@perf_yaml_support_i18n
perf: yaml 文件支持 i18n
2023-04-20 13:21:22 +08:00
吴小白
651c53a92c fix: 修复 loong64 构建失败 2023-04-20 11:38:50 +08:00
fit2bot
c9ee46c0fb perf: windows 账号可连接性 ansible 刷新 (#10268)
Co-authored-by: feng <1304903146@qq.com>
2023-04-20 11:32:33 +08:00
ibuler
f2d34de161 perf: 修改格式 2023-04-20 11:27:10 +08:00
fit2bot
dc5f7a5c05 fix: 资产 克隆有切换至的账号400 (#10266)
Co-authored-by: feng <1304903146@qq.com>
2023-04-20 11:14:23 +08:00
ibuler
6b3665e8d0 perf: yaml 文件支持 i18n 2023-04-20 11:13:28 +08:00
fit2bot
11ad6ab273 fix: 修复作业中心未开启的acl生效的问题 (#10265)
* fix: 修复作业中心未开启的acl生效的问题

* perf: 优化代码风格

---------

Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-04-20 10:33:53 +08:00
jiangweidong
2ba32f6971 perf: 优化自定义改密时需要在命令中包含ssh登录用户的密码问题 2023-04-20 09:52:13 +08:00
Bai
96eb87f935 feat: 服务启动时校验 migrations 文件是否有冲突(DEBUG_DEV) 2023-04-19 14:14:37 +08:00
fit2bot
3afab38c5f perf: 资产平台排序 (#10258)
Co-authored-by: feng <1304903146@qq.com>
2023-04-19 13:21:57 +08:00
fit2bot
9dedce6264 perf: 翻译 (#10257)
Co-authored-by: feng <1304903146@qq.com>
2023-04-19 13:02:24 +08:00
ibuler
4849b2627a perf: 优化一下迁移 2023-04-19 11:13:29 +08:00
ibuler
12adf66f41 perf: 优化账号历史过滤 2023-04-19 11:13:29 +08:00
fit2bot
fc4a77df1a fix: 账号导入500 (#10255)
Co-authored-by: feng <1304903146@qq.com>
2023-04-19 10:57:38 +08:00
fit2bot
3bc8eda66a perf: 更新模版关联更新账号 (#10250)
Co-authored-by: feng <1304903146@qq.com>
2023-04-19 10:18:13 +08:00
Bai
d402780d00 feat: 服务启动时校验 migrations 文件是否有冲突(DEBUG_DEV) 2023-04-18 20:23:56 +08:00
fit2bot
28f08251b3 perf: 修复创建资产时,account 的校验 (#10247)
* perf: 修复创建资产时,account 的校验

* perf: 优化一下提示

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-04-18 20:10:51 +08:00
Aaron3S
ca898ed7b5 perf: 优化代码 2023-04-18 19:54:14 +08:00
Aaron3S
50421a1f89 fix: 修复作业中心选择收藏资产取不到资产的问题 2023-04-18 19:54:14 +08:00
ibuler
a83d1c7c46 perf: 优化 applet host platform 2023-04-18 19:13:04 +08:00
ibuler
389f94d672 perf: 修改 assets serializer 支持 accounts template 2023-04-18 19:12:26 +08:00
fit2bot
f47d0b1a40 perf: 工单发消息失败 (#10242)
Co-authored-by: feng <1304903146@qq.com>
2023-04-18 18:56:17 +08:00
fit2bot
a28239f313 fix: 登录复核刷新后404 (#10240)
Co-authored-by: feng <1304903146@qq.com>
2023-04-18 18:07:54 +08:00
老广
996690fc02 Merge pull request #10235 from jumpserver/pr@dev@perf_asset_set_default_nodes
perf: custom fields 仅custom 类型资产支持
2023-04-18 17:18:53 +08:00
ibuler
8b98bbddaa perf: custom fields 仅custom 类型资产支持 2023-04-18 17:07:01 +08:00
fit2bot
cf197f7efc perf: 创建资产通过账号模版创建账号 (#10234)
Co-authored-by: feng <1304903146@qq.com>
2023-04-18 17:03:49 +08:00
ibuler
5921b2ee8f perf: 修改默认节点 2023-04-18 16:29:41 +08:00
老广
52891bfca3 Merge pull request #10232 from jumpserver/pr@dev@perf_platform_internal_create
perf: 修改 platforms
2023-04-18 16:06:36 +08:00
fit2bot
0856b0cbbe fix: k8s 无密码账号登录 (#10233)
Co-authored-by: feng <1304903146@qq.com>
2023-04-18 15:31:47 +08:00
ibuler
b30e9aedce perf: 优化内置平台创建 2023-04-18 15:06:22 +08:00
ibuler
bacda8248b perf: 修改内置 platform 创建 2023-04-18 14:25:35 +08:00
ibuler
ce38b2263c perf: 修改 platforms 2023-04-18 14:02:24 +08:00
fit2bot
810aff9597 perf: k8s 支持网关 (#10229)
Co-authored-by: feng <1304903146@qq.com>
2023-04-18 11:32:59 +08:00
jiangweidong
cad88560bb perf: 修改OAuth2的access_token前缀格式 2023-04-18 10:29:29 +08:00
ibuler
faff0cd20a perf: 优化创建内置 platform 2023-04-17 18:54:55 +08:00
fit2bot
5a34372ca5 perf: 批量创建账号 没解密 (#10226)
Co-authored-by: feng <1304903146@qq.com>
2023-04-17 17:46:10 +08:00
fit2bot
cff4309b03 fix: export assets (#10224)
Co-authored-by: feng <1304903146@qq.com>
2023-04-17 15:42:46 +08:00
ibuler
024d344f7e perf: 去掉 _autmoation_id 2023-04-17 15:41:35 +08:00
ibuler
20e7efcd70 perf: 优化 platform automation 结构 2023-04-17 15:41:35 +08:00
fit2bot
2b00e6e3a1 fix: 修复资产列表 mini 时报错 (#10220)
Co-authored-by: ibuler <ibuler@qq.com>
2023-04-17 15:10:34 +08:00
fit2bot
b3b7575b0c fix: 批量更新资产账号 错误 secret (#10221)
Co-authored-by: feng <1304903146@qq.com>
2023-04-17 15:07:34 +08:00
Jiangjie.Bai
9109a5e6a2 Merge pull request #10213 from jumpserver/dev
v3.2.0 rc2
2023-04-14 18:33:00 +08:00
jiangweidong
690e01cb78 feat: 支持部分资源的自定义自动化任务(Ping/VerifyAccount/ChangeSecret) (#9947)
* feat: 支持部分资源的自定义自动化任务(Ping/VerifyAccount/ChangeSecret)

* perf: 去掉无用的属性

* perf: 优化自定义改密逻辑

* feat: 支持ssh_key认证

* perf: 去掉无用注释

* perf: 优化

* perf: 优化逻辑

* perf: 优化标题

* perf: 去掉一些无用的函数

* perf: 优化helptext
2023-04-14 18:31:09 +08:00
fit2bot
f07e4e53ec perf: 推送成功后 设置账号可连接性 (#10211)
Co-authored-by: feng <1304903146@qq.com>
2023-04-14 17:53:21 +08:00
fit2bot
b1374c6aba fix: 更新平台 ansible_enabled 未设置 (#10210)
Co-authored-by: feng <1304903146@qq.com>
2023-04-14 17:10:33 +08:00
fit2bot
e0f077b054 fix: k8s api 500 (#10209)
Co-authored-by: feng <1304903146@qq.com>
2023-04-14 16:57:08 +08:00
feng
31653cab11 perf: 单独推送账号 2023-04-14 16:22:54 +08:00
feng
976daaa726 fix: 修复AllTypes to_tree_nodes 方法 2023-04-14 15:39:37 +08:00
feng
b359b1059c fix: 修复所有ansible任务执行失败问题 2023-04-14 14:25:01 +08:00
ibuler
490611c560 perf: 修改 applet 2023-04-14 11:30:04 +08:00
Jiangjie.Bai
8a3a9c87a8 Merge pull request #10201 from jumpserver/dev
v3.2.0 rc1
2023-04-13 21:29:05 +08:00
feng
00fd546776 fix: 修复迁移文件冲突bug 2023-04-13 21:28:12 +08:00
Jiangjie.Bai
68351b1c39 Merge pull request #10196 from jumpserver/dev
v3.2.0 rc1
2023-04-13 19:21:05 +08:00
Bai
21da805e78 fix: fix conflicts 2023-04-13 19:20:18 +08:00
fit2bot
928513edd0 fix: fix conflicts (#10197)
* perf: domain gateway 也添加

* fix: 不支持es8 提示

* perf: 授权过期通知

* fix: 过滤系统用户密码过滤ansible不支持的字符

* perf: 优化 apt (#8398)

* pref: 修改 oracle lib path

* perf: 优化 apt

Co-authored-by: ibuler <ibuler@qq.com>

* fix: 修复授权过期通知bug (#8404)

Co-authored-by: feng626 <1304903146@qq.com>

* fix: 修改推送系统用户提示文案

* feat: add client linux arm64 version

* perf: 优化签名认证

* pref: 优化没有获取到节点的问题

* fix: 修复openid用户登录时默认邮件后缀使用配置项

* fix: 修复华为短信配置错误,前端提示不对的问题

* fix: 修复账号备份失败问题 (#8852)

Co-authored-by: feng626 <1304903146@qq.com>

* perf: 优化加密,没有rsa则不加密

* feat: 支持对开启SSL/TLS的MongoDb数据库改密

* perf: 工单新增相关过滤

* fix: 修复配置mfa失效日期 失效问题 (#8856)

Co-authored-by: feng626 <1304903146@qq.com>

* fix: 修复日志记录到syslog时中文编码问题

* workflow: 修改 Gitee 同步的目的仓库

* fix: 修复导出账号历史翻译信息

---------

Co-authored-by: Jiangjie.Bai <32935519+BaiJiangJie@users.noreply.github.com>
Co-authored-by: 老广 <ibuler@qq.com>
Co-authored-by: feng626 <1304903146@qq.com>
Co-authored-by: Jiangjie.Bai <bugatti_it@163.com>
Co-authored-by: jiangweidong <weidong.jiang@fit2cloud.com>
Co-authored-by: Bai <baijiangjie@gmail.com>
Co-authored-by: BugKing <wangzhen@fit2cloud.com>
2023-04-13 19:16:46 +08:00
fit2bot
1eb8e40d3e feat: 账号推送附加参数 (#10080)
* feat: 账号推送附加参数

* perf: 通过节点 资产 过滤平台api

* perf: push automation params

* perf: 修改playbook

* perf: params serializer

* perf: 账号推送playbook 调整

* perf: Automation serializer add params field

* perf: params 非必填

* perf: 添加is_params 给前端判断

* perf: is_params bool

* perf: 修改push account ansible逻辑

* perf: 修改获取push_kwargs方法

* perf: platform migrate

* perf: 修改api

* perf: 单个推送

* perf: push account

* perf: 修改asset auto_config

---------

Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
2023-04-13 19:02:04 +08:00
jiangweidong
8e81aee1fd perf: luna连接时不显示 WinRM 协议选项 2023-04-13 18:29:21 +08:00
jiangweidong
e12b832992 perf: 关闭SFTP后,luna界面不显示相应选项 (#10186)
* perf: 关闭SFTP后,luna界面不显示相应选项

* perf: 修改默认值

* perf: 增加资产协议冗余字段,减少关联查询

* perf: 修改

* perf: 优化

* perf: 精简

* perf: 删掉空格

* perf: 修改继承类
2023-04-13 17:26:24 +08:00
fit2bot
1aadb760f4 perf: 优化命令长度限制到8m (#10193)
Co-authored-by: Aaron3S <chenyang@fit2cloud.com>
2023-04-13 15:47:16 +08:00
fit2bot
4654756966 fix: 修复账号克隆 500 (#10192)
Co-authored-by: feng <1304903146@qq.com>
2023-04-13 14:20:07 +08:00
Bai
4c7c8f482d fix: 修复执行批量命令时报错的问题 TypeError:set obiect is not subscriptable 2023-04-12 18:30:34 +08:00
fit2bot
30b89e5cc9 perf: 账号模版更新 (#10184)
Co-authored-by: feng <1304903146@qq.com>
2023-04-12 17:59:13 +08:00
老广
b0365838fb Merge pull request #10183 from O-Jiangweidong/pr@dev@perf_connect_gateway_no_gateway
perf: 当连接资产为网关时,connection_token不返回网域网关信息
2023-04-12 13:07:29 +08:00
jiangweidong
a59f1895a3 perf: 当连接资产为网关时,connection_token不返回网域网关信息 2023-04-12 11:43:06 +08:00
ibuler
59b27822be perf: 添加迁移文件 2023-04-11 19:32:29 +08:00
ibuler
36813f64db perf: 修改 device platform 支持 su 2023-04-11 19:32:29 +08:00
jiangweidong
111296ecd2 fix: 手机号码校验逻辑问题 2023-04-10 18:00:39 +08:00
jiangweidong
b7badc146a fix 2023-04-10 17:36:26 +08:00
jiangweidong
8ff1bae7e6 fix: 手机号可以为空及验证逻辑修改 2023-04-10 17:36:26 +08:00
Eric
b58488a7e9 perf: connection token api 兼容处理 2023-04-10 16:43:31 +08:00
老广
1f63a9675f Merge pull request #10169 from jumpserver/pr@dev@fix_migrate_error
perf: 优化 custom info
2023-04-10 15:19:38 +08:00
ibuler
907fcd7555 perf: 优化 custom info 2023-04-10 15:18:27 +08:00
Bai
616e636837 fix: 修复手机号字段问题 2023-04-10 14:36:22 +08:00
ibuler
34e846927b perf: 优化 connect token asset info 2023-04-10 13:47:38 +08:00
fit2bot
1248458451 perf: 优化支持 choices (#10151)
* perf: 支持自定义类型资产

* perf: 改名前

* perf: 优化支持 choices

* perf: 优化自定义资产

* perf: 优化资产的详情

* perf: 修改完成自定义平台和资产

---------

Co-authored-by: ibuler <ibuler@qq.com>
Co-authored-by: Jiangjie.Bai <bugatti_it@163.com>
2023-04-10 10:57:44 +08:00
wulabing
cec176cc33 fix notifications.py
fix ops.tasks.check_server_performance_period AttributeError: type object 'Status' has no attribute 'get_terminal_latest_stat'
2023-04-10 10:35:16 +08:00
jiangweidong
7833433d5f feat: 手机号支持选择区号 2023-04-10 10:33:31 +08:00
halo
ec2c8538d9 fix: 首次登录强制开启MFA页面bug 2023-04-07 10:19:49 +08:00
fit2bot
e34fbce082 perf: patch account 400 (#10153)
Co-authored-by: feng <1304903146@qq.com>
2023-04-06 19:53:01 +08:00
fit2bot
fb1978a40b fix: terminal status (#10142)
Co-authored-by: feng <1304903146@qq.com>
2023-04-06 10:31:41 +08:00
fit2bot
47d0882090 perf: 用户添加密码 设置是否已存在 (#10138)
Co-authored-by: feng <1304903146@qq.com>
2023-04-04 18:02:58 +08:00
fit2bot
7c1e92c787 fix: 更新账号 跳过name检查 (#10136)
Co-authored-by: feng <1304903146@qq.com>
2023-04-04 16:04:44 +08:00
老广
9af2974bad Merge pull request #10104 from O-Jiangweidong/pr@dev@feat_windows_winrm
feat: Windows类型资产增加winrm协议
2023-04-04 14:08:34 +08:00
Eric_Lee
ba5ca3532b Merge pull request #10133 from jumpserver/pr@dev@fix_deploy_applet
fix: 修正 applet 部署失败
2023-04-04 12:43:49 +08:00
吴小白
211963a098 fix: 修正 applet 部署失败 2023-04-04 12:32:54 +08:00
jiangweidong
187c1e3804 perf: 优化winrm协议网域连接支持ssh_key 2023-04-04 11:55:07 +08:00
Bai
55774dae02 fix: 修复Luna页面用户授权树搜索问题(同步加载方式) 2023-04-04 11:53:01 +08:00
Bai
00ec9b6d5a fix: 修复Luna页面用户授权树默认展开所有节点的问题(同步加载方式) 2023-04-04 11:31:38 +08:00
老广
98a2d9ffdb Merge pull request #10127 from jumpserver/pr@dev@fix_systemuser_without_username_migrate_error
fix: 优化系统用户迁移
2023-04-04 11:16:55 +08:00
ibuler
2b8d0a64fb fix: 优化系统用户迁移 2023-04-04 10:31:57 +08:00
fit2bot
3c07667689 perf: 修改 account migrate (#10125)
Co-authored-by: feng <1304903146@qq.com>
2023-04-03 18:53:37 +08:00
Eric
9686c66874 perf: 会话分享记录字段翻译 2023-04-03 18:37:01 +08:00
fit2bot
c5340b5adc perf: 修改 account (#10088)
* perf: 优化账号创建策略

* perf: 修改账号

* perf: 修改 account

* perf: 修改 account

* perf: 修改批量创建

* perf: 修改账号批量创建

* perf: 继续优化账号批量添加

* perf: 优化创建 accounts 的结果

* perf: 优化账号批量返回的格式

* perf: 优化账号

---------

Co-authored-by: ibuler <ibuler@qq.com>
2023-04-03 18:18:31 +08:00
fit2bot
4601bb9e58 perf: 优化mac客户端名字 (#10122)
Co-authored-by: feng <1304903146@qq.com>
2023-04-03 17:50:52 +08:00
老广
7d68148f7a Merge pull request #10110 from jumpserver/dependabot/pip/requirements/redis-4.5.4
build(deps): bump redis from 4.5.3 to 4.5.4 in /requirements
2023-04-03 17:13:46 +08:00
老广
e386e7f33a Merge pull request #10119 from jumpserver/pr@dev@fix_ldapuserimport
fix: 修复 LDAP 导入用户时指定其他组织,还会导入到 Default 组织的问题
2023-04-03 17:10:39 +08:00
Bai
34c9044d03 fix: 修复 LDAP 导入用户时指定其他组织,还会导入到 Default 组织的问题 2023-04-03 08:47:21 +00:00
fit2bot
90cbf653ac perf: 优化luna tree title (#10118)
Co-authored-by: feng <1304903146@qq.com>
2023-04-03 16:47:14 +08:00
Eric_Lee
1c93d7f0a3 Merge pull request #10107 from jumpserver/pr@dev@perf_dockerfile
perf: applet 使用 powershell 部署
2023-04-03 15:58:47 +08:00
Eric
d9ad5aee4a perf: 修改默认值和变量名 2023-04-03 15:39:15 +08:00
Eric
1fbaa85178 perf: 修改接口 2023-04-03 15:39:15 +08:00
Eric
789eb0cf36 feat: 协作分享增加读写控制 2023-04-03 15:39:15 +08:00
jiangweidong
cbe384161a perf: 优化一个函数名 2023-04-03 10:17:00 +08:00
jiangweidong
6aaa20ba17 Perf: 优化 2023-04-03 09:57:40 +08:00
dependabot[bot]
8b6a64d8ed build(deps): bump redis from 4.5.3 to 4.5.4 in /requirements
Bumps [redis](https://github.com/redis/redis-py) from 4.5.3 to 4.5.4.
- [Release notes](https://github.com/redis/redis-py/releases)
- [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES)
- [Commits](https://github.com/redis/redis-py/compare/v4.5.3...v4.5.4)

---
updated-dependencies:
- dependency-name: redis
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-31 14:31:35 +00:00
jiangweidong
4c5e47cb99 perf: 普通用户工单申请时,选择指定账号,提示无权限 2023-03-30 16:26:12 +08:00
jiangweidong
cfe0206179 feat: winrm协议支持网域自动化 2023-03-30 14:58:20 +08:00
吴小白
caef6a5052 perf: applet 使用 powershell 部署 2023-03-30 12:09:03 +08:00
老广
0cd6667ede Merge pull request #10079 from jumpserver/pr@dev@perf_super_switch
perf: 支持 super 方式的切换用户
2023-03-30 10:24:43 +08:00
老广
d3cc8e5efb Merge pull request #10082 from jumpserver/dependabot/pip/requirements/redis-4.5.3
build(deps): bump redis from 4.3.3 to 4.5.3 in /requirements
2023-03-30 10:23:35 +08:00
jiangweidong
bc186df8d5 Merge branch 'dev' of https://github.com/jumpserver/jumpserver into pr@dev@feat_windows_winrm 2023-03-29 17:11:07 +08:00
jiangweidong
cab72c6991 feat: Windows类型资产增加winrm协议 2023-03-29 17:10:58 +08:00
Bai
8acfcda956 perf: issues 模版 2023-03-29 15:19:17 +08:00
Eric
344451ba55 perf: navicat 移到企业版 2023-03-29 14:56:20 +08:00
feng
678df5bf3e perf: 补回get_terminal_latest_stat 方法 2023-03-29 14:03:35 +08:00
老广
f214b47306 Merge pull request #10094 from jumpserver/pr@dev@perf_dockerfile
perf: 使用 docker.io 仓库
2023-03-29 10:06:42 +08:00
吴小白
5b017daba1 perf: 使用 docker.io 仓库 2023-03-29 10:03:14 +08:00
fit2bot
8d3319717e perf: 开启安全模式后过滤root administrator (#10089)
Co-authored-by: feng <1304903146@qq.com>
2023-03-28 16:26:40 +08:00
fit2bot
23b13db9e2 perf: category order (#10087)
Co-authored-by: feng <1304903146@qq.com>
2023-03-28 15:04:24 +08:00
Bai
3fa1b46312 fix: 修复授权规则Util类 2023-03-28 11:39:19 +08:00
Eric_Lee
1cad4a7add Merge pull request #10084 from jumpserver/pr@dev@fix_ssh_config
fix: 修正错误的 ssh 参数配置
2023-03-28 11:12:41 +08:00
吴小白
d04a0ff5d7 fix: 修正错误的 ssh 参数配置 2023-03-28 11:11:15 +08:00
dependabot[bot]
616e1ded20 build(deps): bump redis from 4.3.3 to 4.5.3 in /requirements
Bumps [redis](https://github.com/redis/redis-py) from 4.3.3 to 4.5.3.
- [Release notes](https://github.com/redis/redis-py/releases)
- [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES)
- [Commits](https://github.com/redis/redis-py/compare/v4.3.3...v4.5.3)

---
updated-dependencies:
- dependency-name: redis
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-27 22:33:27 +00:00
jiangweidong
5b87470b5c perf: 优化账号活动日志界面的提示及操作日志的字段内容 2023-03-27 18:23:55 +08:00
Eric
118d33fa02 perf: 支持 super 方式的切换用户 2023-03-27 18:06:30 +08:00
Aaron3S
017682b383 perf: 增加我的资产通过 node_id 过滤我的资产 2023-03-27 14:53:39 +08:00
feng
1ac2fec13f feat: 收集账号 可选同步表 2023-03-27 14:13:44 +08:00
Bai
66d368f882 fix: 修改nodes_display required = False 2023-03-24 17:11:03 +08:00
Bai
30ab6836ab fix: 修改 login_button 2023-03-24 17:09:07 +08:00
fit2bot
55e1ef116b perf: clear secret (#10053)
Co-authored-by: feng <1304903146@qq.com>
2023-03-23 16:04:09 +08:00
Bai
5d022c7056 fix: 修复资产导入支持填写节点路径 2023-03-23 16:01:19 +08:00
fit2bot
f6c5c35a2c feat: 账号收集批量同步账号 (#10051)
Co-authored-by: feng <1304903146@qq.com>
2023-03-23 15:24:19 +08:00
老广
d3170e4815 Merge pull request #10050 from jumpserver/pr@dev@chore_readme
perf: 修改 readme
2023-03-23 14:34:42 +08:00
ibuler
3959f4615a perf: 修改 readme 2023-03-23 14:33:33 +08:00
ibuler
772ad7aff7 Merge branch 'dev' of github.com:jumpserver/jumpserver into dev 2023-03-23 14:18:21 +08:00
fit2bot
166d074adb perf: 修改 port (#10049)
Co-authored-by: ibuler <ibuler@qq.com>
2023-03-23 14:13:08 +08:00
ibuler
f12e6af86e perf: 修改 port 2023-03-23 14:11:26 +08:00
fit2bot
3b45ad0c61 feat: account remove secret (#10045)
Co-authored-by: feng <1304903146@qq.com>
2023-03-23 11:20:48 +08:00
老广
72b731629e Merge pull request #10043 from jumpserver/pr@dev@perf_ssh_negotiate
perf: 支持旧版本 SSH 服务端认证
2023-03-23 10:03:08 +08:00
吴小白
f9b83b11fb perf: 支持旧版本 SSH 服务端认证 2023-03-23 08:58:31 +08:00
老广
4b8fd64c5d Merge pull request #10041 from jumpserver/pr@dev@feat_k8s_support_gateway
feat: k8s 支持 gateway
2023-03-22 19:43:54 +08:00
ibuler
e3bd698baf feat: k8s 支持 gateway 2023-03-22 19:42:51 +08:00
fit2bot
0be3cb3c27 fix: account update (#10039)
Co-authored-by: feng <1304903146@qq.com>
2023-03-22 19:14:43 +08:00
fit2bot
f7ae23f7d9 perf: 导入资产账号模版api优化 (#10038)
Co-authored-by: feng <1304903146@qq.com>
Co-authored-by: feng626 <57284900+feng626@users.noreply.github.com>
2023-03-22 18:35:23 +08:00
老广
402c68edd0 Merge pull request #10036 from jumpserver/pr@dev@perf_device_add_sudo
perf: 优化一下
2023-03-22 17:21:27 +08:00
ibuler
4f703e2b31 merge: with dev 2023-03-22 17:20:56 +08:00
ibuler
1e0a6b5072 perf: 优化一下 2023-03-22 17:17:49 +08:00
ibuler
47c207ce13 perf: 硬件设备支持账号切换 2023-03-22 16:49:29 +08:00
ibuler
c6071740b1 perf: 硬件设备支持账号切换 2023-03-22 16:43:00 +08:00
老广
463d54a4d8 Merge pull request #10023 from jumpserver/pr@dev@asset_accounts_secret_type_default
perf: 设置资产账号的默认值,方便导入
2023-03-22 15:38:26 +08:00
老广
8289e4c2c8 Merge pull request #10032 from jumpserver/pr@dev@platform_set_protocols
perf: 修改 platform protocols
2023-03-22 15:38:01 +08:00
ibuler
aca0d62feb perf: 优化 protocols 2023-03-22 15:28:05 +08:00
ibuler
59d9572d07 perf: 优化 protocol 选择 2023-03-22 15:26:23 +08:00
ibuler
ba076f6612 perf: 优化提示 2023-03-22 14:56:20 +08:00
fit2bot
43d805d0ca perf: 配置CHANGE_AUTH_PLAN_SECURE_MODE_ENABLED 对改密的特权账号过滤 (#10033)
Co-authored-by: feng <1304903146@qq.com>
2023-03-22 14:48:05 +08:00
ibuler
180ded1773 perf: 修改 platform protocols 2023-03-22 14:15:25 +08:00
fit2bot
81b04c449a fix: tanslate (#10031)
Co-authored-by: feng <1304903146@qq.com>
2023-03-22 13:47:12 +08:00
fit2bot
ed4a4ceca1 perf: 批量创建账号 定义创建账号策略 忽略或抛出错误 (#10028)
Co-authored-by: feng <1304903146@qq.com>
2023-03-22 11:09:48 +08:00
老广
8e61b53460 Merge pull request #10016 from jumpserver/pr@dev@use_ghcr_registry
perf: 使用 ghcr.io 托管镜像
2023-03-21 14:17:31 +08:00
ibuler
cac59db1ec perf: 设置资产账号的默认值,方便导入 2023-03-21 12:43:54 +08:00
fit2bot
9413fd4cd1 perf: 支持 iframe 标签选择 (#9908)
* perf: 支持 iframe 标签选择

* perf: 完善 iframe 的选择语法

---------

Co-authored-by: Eric <xplzv@126.com>
2023-03-20 17:26:47 +08:00
jiangweidong
bac296f82e Merge pull request #10015 from O-Jiangweidong/pr@dev@perf_dbeaver_no_upgrade_no_download
perf: DBeaver连接时不检查更新、不提示创建实例数据库、不弹出下载驱动框
2023-03-20 16:01:37 +08:00
fit2bot
69cd7bce17 perf: 批量创建账号时,跳过unique检查 不去创建 (#9966)
Co-authored-by: feng <1304903146@qq.com>
2023-03-20 15:45:21 +08:00
吴小白
664ab0797a perf: 使用 ghcr.io 托管镜像 2023-03-20 14:22:33 +08:00
老广
4a55c55022 Merge pull request #10003 from jumpserver/pr@dev@perf_import_export
perf: 优化导入导出
2023-03-20 10:07:48 +08:00
ibuler
44b6fd8771 fix: 去掉 warning 2023-03-20 10:05:29 +08:00
jiangweidong
b6ccc53a71 perf: DBeaver连接时不检查更新、不提示创建实例数据库、不弹出下载驱动框 2023-03-20 10:02:50 +08:00
ibuler
209f0d72b4 perf: 去掉 warning 2023-03-20 10:01:42 +08:00
ibuler
eac4b41783 perf: 优化 warning 2023-03-20 09:59:34 +08:00
老广
7a35309e88 Merge pull request #10009 from WeiZhixiong/dev
fix: SyntaxWarning, apps/common/drf/parsers/base.py:114, "is" should be "=="
2023-03-20 09:51:40 +08:00
fit2bot
39e618c127 perf: 资产批量更新平台 (#10013)
Co-authored-by: feng <1304903146@qq.com>
2023-03-19 23:55:16 +08:00
WeiZhixiong
8e33c6f422 fix: SyntaxWarning, apps/common/drf/parsers/base.py:114, "is" should be "==" 2023-03-18 23:19:51 +08:00
ibuler
f5523aaf7b perf: 优化导入导出 2023-03-17 10:45:45 +00:00
ibuler
12db64ea18 perf: 优化导入导出 2023-03-17 18:44:21 +08:00
fit2bot
1acfdf0398 perf: 批量推送账号 分批处理 (#10000)
Co-authored-by: feng <1304903146@qq.com>
2023-03-17 17:10:10 +08:00
老广
074c9c85b1 Merge pull request #9999 from jumpserver/pr@dev@perf_ansible_config
perf: 优化 ansible 写法
2023-03-17 17:03:46 +08:00
ibuler
c094bce71e perf: 优化 ansible 写法 2023-03-17 16:57:40 +08:00
ibuler
cad6fffd74 perf: 优化 Ansible 账号选择 2023-03-16 19:09:29 +08:00
Bai
0747cf7c5e fix: 修复导出账号历史翻译信息 2023-03-16 16:40:53 +08:00
BugKing
927251902c workflow: 修改 Gitee 同步的目的仓库 2023-03-16 16:40:53 +08:00
Bai
11675dc850 fix: 修复日志记录到syslog时中文编码问题 2023-03-16 16:40:53 +08:00
Bai
93a7cee4de fix: 修复导出账号历史翻译信息 2023-03-16 11:18:41 +08:00
老广
1cfdfacdf7 Merge pull request #9982 from wan92hen/patch-1
workflow: 修改 Gitee 同步的目的仓库
2023-03-16 10:45:21 +08:00
BugKing
8b6c2f4cc6 workflow: 修改 Gitee 同步的目的仓库 2023-03-16 09:56:25 +08:00
Bai
41edeb9027 fix: 修复日志记录到syslog时中文编码问题 2023-03-15 19:46:01 +08:00
Jiangjie.Bai
2bcd411164 Merge pull request #9976 from jumpserver/dev
v3.1.0 rc4
2023-03-15 19:29:22 +08:00
ibuler
891d9d36b0 fix: windows 平台默认不开启 console 2023-03-15 19:01:18 +08:00
fit2bot
ebdd67d0f4 perf: endpoint rules list (#9975)
Co-authored-by: feng <1304903146@qq.com>
2023-03-15 18:24:39 +08:00
老广
09eebd7486 Merge pull request #9970 from jumpserver/pr@dev@perf_platform_change
perf: 优化资产平台的获取
2023-03-15 17:37:12 +08:00
Bai
894955dd68 fix: 修复更新授权报错的问题 2023-03-15 16:33:38 +08:00
halo
0ade034391 fix: 修复celery api 报错 2023-03-15 15:37:15 +08:00
jiangweidong
07eebd93fb perf: 测试资产可连接性选择账号策略优化 (#9954) 2023-03-15 15:16:27 +08:00
Bai
ffe9dd1f95 fix: 优化账号模版可以根据 protocols 过滤 secret_type 字段 2023-03-15 14:48:14 +08:00
ibuler
2b7f90349c perf: 优化资产平台的获取 2023-03-15 14:14:48 +08:00
Bai
48b937d867 fix: 修复手动登录用户失败的问题 2023-03-15 11:36:51 +08:00
Aaron3S
df249a0355 perf: 优化 playbook 删除策略,正在被 job 使用时无法被删除 2023-03-14 20:02:23 +08:00
fit2bot
2ce293bd81 fix: push ssh key account bug (#9948)
Co-authored-by: feng <1304903146@qq.com>
2023-03-14 17:15:04 +08:00
老广
bff97929b5 Merge pull request #9942 from jumpserver/pr@dev@perf_csv_loads_error
perf: 优化 csv parse
2023-03-14 16:35:37 +08:00
Bai
0053d469f9 fix: 修复用户导入模版中没有 password_strategy 字段问题 2023-03-14 16:31:57 +08:00
ibuler
4c24e95b47 perf: 优化 csv parse 2023-03-14 14:12:42 +08:00
fit2bot
c4945b3563 perf: 优化ansible 选择账号 (#9940)
Co-authored-by: feng <1304903146@qq.com>
2023-03-14 11:40:25 +08:00
ibuler
082af029a7 perf: 优化资产迁移,避免冲突 2023-03-14 11:21:52 +08:00
Bai
44d7165674 perf: 优化一些翻译信息,label 中带单位 2023-03-14 11:19:41 +08:00
fit2bot
d4102ceb7a perf: push select account (#9932)
Co-authored-by: feng <1304903146@qq.com>
2023-03-13 19:35:12 +08:00
老广
4a3196e193 Merge pull request #9931 from jumpserver/pr@dev@fix_excel_import_export
perf: 优化 csv import export
2023-03-13 18:07:57 +08:00
ibuler
16a7ccc95e perf: 优化文案 2023-03-13 18:06:54 +08:00
ibuler
6bb42b8d59 perf: 优化 csv import export 2023-03-13 17:57:50 +08:00
fit2bot
ed70432016 fix: 账号模版创建带密码的密钥之后无法添加到主机 (#9927)
Co-authored-by: feng <1304903146@qq.com>
2023-03-13 15:46:17 +08:00
老广
6a9e013f2f Merge pull request #9921 from jumpserver/pr@dev@fix_remoteapp_privileged_account
fix: 远程应用特权用户不生效问题
2023-03-13 11:18:26 +08:00
halo
9f98e3f098 fix: 远程应用特权用户不生效问题 2023-03-12 21:27:30 +08:00
ibuler
2ffb9a5aa3 perf: 修改 Import export 2023-03-10 19:23:49 +08:00
ibuler
fa3bfceddc perf: 优化导入导出
perf: remove debug

perf: 修改账号导入导出

perf: 去掉一些 debug
2023-03-10 19:23:49 +08:00
fit2bot
3658ecce0c perf: 修改 ssh key with pass 报错 (#9917)
Co-authored-by: ibuler <ibuler@qq.com>
2023-03-10 16:04:48 +08:00
Bai
aeb2e47880 feat: 支持飞书国际版(lark) 2023-03-10 15:13:12 +08:00
Bai
9be01b4c67 feat: 支持飞书国际版(lark) 2023-03-10 15:13:12 +08:00
Bai
83296be11f fix: ignore 2023-03-09 18:12:56 +08:00
Bai
266f5e9350 fix: 修复存在无效 es 时获取终端配置失败的问题 2023-03-09 17:12:05 +08:00
fit2bot
dfbe8c0bc4 fix: 创建资产 可连接性为更新 (#9905)
Co-authored-by: feng <1304903146@qq.com>
2023-03-09 13:59:44 +08:00
jiangweidong
3de2992238 fix: 有可能保存明文密码 2023-03-09 13:02:34 +08:00
Eric
fde92a28bd fix: 修复存储故障造成的录像获取失败问题 2023-03-09 11:51:00 +08:00
吴小白
2662ead1c4 perf: 正确配置 Ansible 证书校验 2023-03-09 11:19:24 +08:00
Bai
3f5af27a4e perf: 优化设置 MFA 文案(禁用=>重置) 2023-03-08 19:13:17 +08:00
fit2bot
c90a2df28e perf: automation account username change id (#9867)
* perf: automation account username change id

* perf: 授权账号模版 自推送

---------

Co-authored-by: feng <1304903146@qq.com>
2023-03-08 18:52:00 +08:00
老广
8a0bd3379c Merge pull request #9889 from jumpserver/pr@dev@perf_ignore_ssl
perf: tinkerd 部署增加 ignore-verify-certs 配置
2023-03-08 16:34:34 +08:00
Eric
26ad12d448 perf: build action use pypi mirror 2023-03-08 16:28:17 +08:00
Eric
177150c5cc perf: tinkerd 部署增加 ignore-verify-certs 配置 2023-03-08 16:16:10 +08:00
Bai
bbddf6a342 fix: 修复组织管理员查看活动日志详情时没有对象的问题 2023-03-08 15:57:43 +08:00
Bai
6bbe602ebb fix: 修复组织管理员查看操作日志可以看到 system 组织下的操作问题, 只有系统管理员可以查看任务监控 2023-03-08 15:22:49 +08:00
老广
21352a2ab7 Merge pull request #9871 from jumpserver/pr@dev@fix_su_from_accounts
fix: 修复su-from-accounts API 500问题,Unsubscribe msg error 转成debug
2023-03-08 14:06:59 +08:00
老广
1cbfd48e11 Merge pull request #9874 from jumpserver/pr@dev@fix_operatelog_hide_sth
fix: 操作日志显示用户加密后的密文,及日期格式调整
2023-03-08 14:06:12 +08:00
老广
c8c33c02ef Merge pull request #9880 from jumpserver/pr@dev@perf_applet_certs
fix: 修复自签证书下发布机部署失败
2023-03-08 14:04:47 +08:00
老广
261ec60ab7 Merge pull request #9870 from jumpserver/pr@dev@fix_reconnecttoken
feat: connection-token 添加重联兑换 API
2023-03-08 14:04:01 +08:00
老广
c1d1863af4 Merge pull request #9881 from jumpserver/pr@dev@perf_email_test_error
perf: 邮箱测试时,不填写'主题前缀'会报错
2023-03-08 14:02:37 +08:00
jiangweidong
72ca55c293 perf: 邮箱测试时,不填写'主题前缀'会报错 2023-03-08 13:49:38 +08:00
吴小白
7d6295775f perf: 还原国际化文本格式 2023-03-08 13:42:37 +08:00
吴小白
17ec105f69 perf: 修正错误 2023-03-08 13:40:55 +08:00
吴小白
366e20b165 fix: 修复自签证书下发布机部署失败 2023-03-08 13:27:03 +08:00
jiangweidong
be669f7f05 fix: 操作日志显示用户加密后的密文,及日期格式调整 2023-03-08 11:21:15 +08:00
feng
8833b19d79 fix: 修复su-from-accounts API 500问题,Unsubscribe msg error 转成debug 2023-03-08 10:58:37 +08:00
Bai
4c7bc105d7 feat: connection-token 添加重联兑换 API 2023-03-08 10:25:53 +08:00
老广
bb30fcd7fd Merge pull request #9851 from jumpserver/pr@dev@fix_private_key
fix: 修复 ed25519 私钥测试可连接性失败问题
2023-03-07 11:29:10 +08:00
Eric
eedc1ae8b5 fix: 修复类型问题 2023-03-02 19:05:27 +08:00
Eric
b951ed9206 fix: 修复 account 私钥文件生成 2023-03-02 18:57:49 +08:00
Eric
03cc487fe6 fix: 修复 ed25519 私钥测试可连接性失败问题 2023-03-02 18:50:09 +08:00
feng
22f3caa954 fix: 修复i8n 500 2023-03-02 16:23:16 +08:00
Bai
891c478d13 fix: 修复 ldap 用户登录时邮箱存在 500 的问题 2023-03-02 16:22:55 +08:00
Bai
1901ef7252 fix: 修复 ldap 用户登录时邮箱存在 500 的问题 2023-03-02 15:58:32 +08:00
Aaron3S
6bc2f73f49 fix: 修复作业执行没有日志权限的问题 2023-03-01 18:37:27 +08:00
fit2bot
820971e2be perf: k8s tree run (#9834)
Co-authored-by: feng <1304903146@qq.com>
2023-03-01 18:26:54 +08:00
Bai
27e1c17b26 fix: 资产类型树返回类型节点时, 没有platfrom设置isParent为False, 解决展开节点重复的问题 2023-03-01 17:28:39 +08:00
fit2bot
d8d73700ea perf: k8s tree update api (#9827)
Co-authored-by: feng <1304903146@qq.com>
2023-03-01 17:04:17 +08:00
ibuler
ed967dcba9 perf: 优化翻译 2023-03-01 15:20:55 +08:00
Bai
c39acc9a93 fix: 修改翻译 Core API & HelpText 2023-03-01 15:20:27 +08:00
Bai
c37e2d3dc2 fix: 修改翻译 已有 RDS 许可证 2023-03-01 15:20:27 +08:00
fit2bot
797c7635a7 perf: asset hardwareinfo (#9813)
Co-authored-by: feng <1304903146@qq.com>
2023-02-28 18:45:38 +08:00
老广
410668c209 Merge pull request #9812 from jumpserver/pr@dev@perf_rd_license
perf: 优化 RD License 配置
2023-02-28 18:31:16 +08:00
吴小白
3cbd772c4e perf: 优化 RD License 配置 2023-02-28 18:00:08 +08:00
Bai
bc2d4735c1 fix: 修改翻译 2023-02-28 17:59:04 +08:00
fit2bot
dfa3f4b53b perf: 推送账号 社区版定时任务关闭 (#9804)
Co-authored-by: feng <1304903146@qq.com>
2023-02-28 13:35:17 +08:00
老广
442dbc836d Merge pull request #9799 from jumpserver/pr@dev@fix_protocol_init_error
perf: 修改协议创建时一些默认值
2023-02-28 09:44:31 +08:00
ibuler
8c81e60a1e perf: 修改协议创建时一些默认值 2023-02-27 19:48:07 +08:00
fit2bot
fccdb66530 perf: 今日活跃资产 (#9796)
Co-authored-by: feng <1304903146@qq.com>
2023-02-27 18:10:08 +08:00
Aaron3S
094ad85d39 fix: 默认增加普通用户作业中心权限 2023-02-27 17:27:45 +08:00
ibuler
32081ea6ec perf: 添加账号用户名的推荐
perf: 修改账号推荐
2023-02-27 15:19:59 +08:00
ibuler
8937447955 perf: 修改资产 address 长度,以支持 mb4
perf: 修改长度
2023-02-27 14:07:54 +08:00
ibuler
454a38f994 perf: 去掉没有 Name 的迁移 2023-02-27 14:02:30 +08:00
老广
972d6fb924 Merge pull request #9777 from jumpserver/pr@dev@perf_account_migrate2
perf: 优化迁移 accounts
2023-02-27 10:08:00 +08:00
ibuler
d2b6bb5013 perf: 优化迁移 accounts
perf: 优化账号迁移,同名的迁移到历史中
2023-02-26 09:47:40 +08:00
Bai
a6388fc482 perf: 优化 README 2023-02-25 22:47:46 +08:00
Bai
32c034fdec perf: 优化 README 2023-02-25 22:47:46 +08:00
Bai
e1724844b0 perf: 优化 README 2023-02-25 22:47:46 +08:00
Bai
912ee3de09 perf: 优化 README 2023-02-25 13:01:49 +08:00
Bai
78c6252318 perf: 优化 README 2023-02-25 13:01:49 +08:00
Bai
d07c3e2de5 perf: 优化 README 2023-02-25 13:01:49 +08:00
Bai
83d97111c6 perf: 优化 README 2023-02-25 13:01:49 +08:00
Bai
616b0d7e5d perf: 优化 README 2023-02-25 13:01:49 +08:00
Bai
6168608fa1 perf: 优化 README 2023-02-25 13:01:49 +08:00
Bai
9e8cf1926e perf: 优化 README 2023-02-25 13:01:49 +08:00
Bai
11ba29cb68 perf: 优化 README 2023-02-25 13:01:49 +08:00
Bai
e8e23c2566 perf: 优化 README 2023-02-25 13:01:49 +08:00
Bai
8db518d2cd perf: 优化 README 2023-02-25 13:01:49 +08:00
老广
ec31b4de73 Merge pull request #9759 from jumpserver/pr@dev@fix_activity_save_error
fix: 解决Activity保存因为参数出错问题
2023-02-24 18:18:18 +08:00
fit2bot
f1c568dfc0 perf: 修改host info 接口, 社区开放applet, 修改改密发邮件bug (#9757)
Co-authored-by: feng <1304903146@qq.com>
2023-02-24 18:08:22 +08:00
jiangweidong
824e4c9e81 fix: 解决Activity保存因为参数出错问题 2023-02-24 17:59:32 +08:00
老广
9895ae73bc Merge pull request #9756 from jumpserver/pr@dev@update_support_version
update: 更新问题支持版本说明
2023-02-24 15:43:51 +08:00
吴小白
7d3a702e7d update: 更新问题支持版本说明 2023-02-24 15:37:51 +08:00
Bai
6541cd9f5f fix: 修复 web gui 支持的数据库 2023-02-24 15:12:41 +08:00
ibuler
22a1d60e3f perf: 优化 msg 2023-02-24 14:46:43 +08:00
Bai
63ca4f8fab fix: 修复认证MFA失败次数清空问题 2023-02-24 14:44:13 +08:00
fit2bot
a4a871ff2b fix: 修复计算今日活跃资产过滤逻辑 (#9745)
Co-authored-by: Bai <baijiangjie@gmail.com>
2023-02-24 12:16:45 +08:00
Bai
1b2de703f4 fix: 修复获取授权资产详情时返回 spec_info 字段, 解决连接 Magnus 问题 2023-02-24 11:41:15 +08:00
maninhill
4650652faf perf:更新 README 中的产品 UI 展示截图 2023-02-24 00:32:15 +08:00
ibuler
0f338a3b58 perf: 修复社区版可能引起的问题 2023-02-24 00:31:38 +08:00
老广
6bb6e8eb9b Merge pull request #9735 from jumpserver/dev
fix: 修复 loong64 grpc 构建失败
2023-02-23 21:48:51 +08:00
Jiangjie.Bai
19276e6bd4 Merge pull request #9733 from jumpserver/dev
v3.0.0
2023-02-23 20:15:55 +08:00
Jiangjie.Bai
8757cc97ed Merge pull request #9703 from jumpserver/dev
v3.0.0-rc-latest
2023-02-22 22:22:47 +08:00
Jiangjie.Bai
aac805f5e4 Merge pull request #9383 from jumpserver/dev
v3.0.0-rc4
2023-01-31 18:34:24 +08:00
Jiangjie.Bai
6febc104de Merge pull request #9096 from jumpserver/dev
v2.28.0
2022-11-17 17:43:44 +08:00
Jiangjie.Bai
733b95ee99 Merge pull request #9089 from jumpserver/dev
v2.28.0-rc5
2022-11-17 14:14:18 +08:00
Jiangjie.Bai
b179264127 Merge pull request #9080 from jumpserver/dev
v2.28.0-rc4
2022-11-16 21:05:05 +08:00
Jiangjie.Bai
c18388e27a Merge pull request #9060 from jumpserver/dev
v2.28.0-rc3
2022-11-14 18:02:44 +08:00
Jiangjie.Bai
52830db500 Merge pull request #9052 from jumpserver/dev
v2.28.0-rc2
2022-11-14 09:54:50 +08:00
Jiangjie.Bai
2324cdc14e Merge pull request #9040 from jumpserver/dev
v2.28.0-rc1
2022-11-10 17:48:40 +08:00
Jiangjie.Bai
bab4562820 Merge pull request #8980 from jumpserver/dev
v2.27.0
2022-10-20 20:39:39 +08:00
Jiangjie.Bai
613a7d63b5 Merge pull request #8973 from jumpserver/dev
v2.27.0-rc5
2022-10-19 20:30:13 +08:00
Jiangjie.Bai
129c0e1bf4 Merge pull request #8968 from jumpserver/dev
v2.27.0-rc4
2022-10-18 20:48:37 +08:00
Jiangjie.Bai
384873b4cb Merge pull request #8964 from jumpserver/dev
v2.27.0-rc3
2022-10-18 11:19:59 +08:00
Jiangjie.Bai
9e410bb389 Merge pull request #8962 from jumpserver/dev
v2.27.0-rc2
2022-10-14 11:00:50 +08:00
Jiangjie.Bai
9337463471 Merge pull request #8957 from jumpserver/dev
v2.27.0-rc1
2022-10-13 19:03:33 +08:00
Jiangjie.Bai
e6d50cc8b4 Merge pull request #8951 from jumpserver/dev
v2.27.0-rc1
2022-10-13 15:05:53 +08:00
Jiangjie.Bai
fa08517bea Merge pull request #8868 from jumpserver/dev
v2.26.0-rc4
2022-09-15 16:16:51 +08:00
Jiangjie.Bai
d808256e6a Merge pull request #8864 from jumpserver/dev
v2.26.0-rc3
2022-09-14 20:44:13 +08:00
Jiangjie.Bai
061b60ef59 Merge pull request #8858 from jumpserver/dev
v2.26.0-rc2
2022-09-13 17:40:13 +08:00
fit2bot
c008115888 fix: 修复配置mfa失效日期 失效问题 (#8856)
Co-authored-by: feng626 <1304903146@qq.com>
2022-09-13 17:39:09 +08:00
feng626
8d1fb84aaf perf: 工单新增相关过滤 2022-09-13 17:39:09 +08:00
jiangweidong
43d61b5348 feat: 支持对开启SSL/TLS的MongoDb数据库改密 2022-09-13 17:39:09 +08:00
ibuler
c26a786287 perf: 优化加密,没有rsa则不加密 2022-09-13 17:39:09 +08:00
fit2bot
cb2bd0cf2c fix: 修复账号备份失败问题 (#8852)
Co-authored-by: feng626 <1304903146@qq.com>
2022-09-13 17:39:09 +08:00
jiangweidong
3048e6311b fix: 修复华为短信配置错误,前端提示不对的问题 2022-09-13 17:39:09 +08:00
Jiangjie.Bai
31de9375e7 Merge pull request #8846 from jumpserver/dev
v2.26.0-rc1
2022-09-08 15:43:18 +08:00
Jiangjie.Bai
188c04c9a6 Merge pull request #8776 from jumpserver/dev
v2.25.0
2022-08-18 16:12:16 +08:00
Jiangjie.Bai
a82ed3e924 Merge pull request #8768 from jumpserver/dev
v2.25.0-rc5
2022-08-17 18:57:22 +08:00
Jiangjie.Bai
831b67eae4 Merge pull request #8763 from jumpserver/dev
v2.25.0-rc4
2022-08-17 16:52:28 +08:00
Jiangjie.Bai
4642804077 Merge pull request #8756 from jumpserver/dev
v2.25.0-rc3
2022-08-16 19:07:42 +08:00
Jiangjie.Bai
09160fed5d Merge pull request #8740 from jumpserver/dev
v2.25.0-rc2
2022-08-12 18:05:13 +08:00
Jiangjie.Bai
8409523fee Merge pull request #8728 from jumpserver/dev
v2.25.0-rc1
2022-08-11 14:12:23 +08:00
Jiangjie.Bai
f52a0ce960 Merge pull request #8645 from jumpserver/dev
v2.24.0
2022-07-21 15:40:57 +08:00
Jiangjie.Bai
d34c4fb7ec Merge pull request #8640 from jumpserver/dev
v2.24.0-rc5
2022-07-20 19:07:18 +08:00
Jiangjie.Bai
c12efffcc9 Merge pull request #8622 from jumpserver/dev
v2.24.0-rc4
2022-07-19 16:25:32 +08:00
Jiangjie.Bai
6319be0ea3 Merge pull request #8620 from jumpserver/dev
v2.24.0-rc4
2022-07-19 16:12:08 +08:00
Jiangjie.Bai
4d7f8ffc71 Merge pull request #8610 from jumpserver/dev
v2.24.0-rc3
2022-07-18 12:02:23 +08:00
Jiangjie.Bai
c665b0dbae Merge pull request #8603 from jumpserver/dev
v2.24.0-rc2
2022-07-15 18:07:09 +08:00
Jiangjie.Bai
a770a19252 Merge pull request #8595 from jumpserver/dev
v2.24.0-rc1
2022-07-14 17:44:33 +08:00
Jiangjie.Bai
717f97cd88 Merge pull request #8592 from jumpserver/dev
v2.24.0-rc1
2022-07-14 14:40:03 +08:00
Jiangjie.Bai
d3355ab0ec Merge pull request #8427 from jumpserver/dev
v2.23.0 rc6
2022-06-16 18:12:44 +08:00
Jiangjie.Bai
7ac385d64c Merge pull request #8420 from jumpserver/dev
v2.23.0 rc5
2022-06-16 15:46:40 +08:00
Jiangjie.Bai
2898c35970 Merge pull request #8411 from jumpserver/dev
v2.23.0 rc4
2022-06-15 19:38:17 +08:00
Jiangjie.Bai
62f5662bd0 fix: 修复openid用户登录时默认邮件后缀使用配置项 2022-06-15 19:33:26 +08:00
ibuler
0fe221019a pref: 优化没有获取到节点的问题 2022-06-15 19:33:26 +08:00
ibuler
d745314aa1 perf: 优化签名认证 2022-06-15 19:33:26 +08:00
feng626
153fad9ac7 feat: add client linux arm64 version 2022-06-15 19:33:26 +08:00
Jiangjie.Bai
0792c7ec49 fix: 修改推送系统用户提示文案 2022-06-15 19:33:26 +08:00
fit2bot
e617697553 fix: 修复授权过期通知bug (#8404)
Co-authored-by: feng626 <1304903146@qq.com>
2022-06-15 19:33:26 +08:00
fit2bot
9dc7da3595 perf: 优化 apt (#8398)
* pref: 修改 oracle lib path

* perf: 优化 apt

Co-authored-by: ibuler <ibuler@qq.com>
2022-06-15 19:33:26 +08:00
Jiangjie.Bai
f7f4d3a42e fix: 过滤系统用户密码过滤ansible不支持的字符 2022-06-15 19:33:26 +08:00
feng626
70fcbfe883 perf: 授权过期通知 2022-06-15 19:33:26 +08:00
Jiangjie.Bai
68aad56bad Merge pull request #8379 from jumpserver/dev
v2.23.0-rc3
2022-06-13 17:42:31 +08:00
Jiangjie.Bai
85b2ec2e6a Merge pull request #8362 from jumpserver/dev
v2.23.0-rc2
2022-06-10 19:12:17 +08:00
Jiangjie.Bai
be75edcb41 Merge pull request #8353 from jumpserver/dev
v2.23.0-rc1
2022-06-09 17:40:10 +08:00
Jiangjie.Bai
c41fc54380 Merge pull request #8271 from jumpserver/dev
v2.22.0-rc4
2022-05-18 20:21:35 +08:00
feng626
c2fbe5c75a fix: 不支持es8 提示 2022-05-18 20:20:54 +08:00
Jiangjie.Bai
33090c4cdf Merge pull request #8268 from jumpserver/dev
v2.22.0-rc4
2022-05-18 19:49:11 +08:00
ibuler
b5ac5c5670 perf: domain gateway 也添加 2022-05-17 21:36:40 +08:00
Jiangjie.Bai
d672122c79 Merge pull request #8260 from jumpserver/dev
v2.22.0-rc3
2022-05-17 21:14:05 +08:00
Jiangjie.Bai
514fa9cf0a Merge pull request #8250 from jumpserver/dev
v2.22.0-rc2
2022-05-17 15:10:59 +08:00
Jiangjie.Bai
7f52675bd3 Merge pull request #8229 from jumpserver/dev
v2.22.0 rc1
2022-05-12 17:02:01 +08:00
Jiangjie.Bai
a4be0ff2f3 Merge pull request #8131 from jumpserver/dev
v2.21.0
2022-04-21 18:11:21 +08:00
Jiangjie.Bai
e83d676712 Merge pull request #8119 from jumpserver/dev
v2.21.0-rc6
2022-04-20 20:25:43 +08:00
Jiangjie.Bai
015ff4b119 Merge pull request #8105 from jumpserver/dev
v2.21.0-rc5
2022-04-20 10:46:27 +08:00
Jiangjie.Bai
c04ab1aab9 Merge pull request #8100 from jumpserver/dev
v2.21.0-rc5
2022-04-19 21:52:51 +08:00
老广
714b6b1233 Merge pull request #8085 from jumpserver/dev
v2.21.0-rc5
2022-04-19 13:15:16 +08:00
Jiangjie.Bai
6f49d240af Merge pull request #8079 from jumpserver/dev
v2.21.0-rc4
2022-04-18 15:31:02 +08:00
Jiangjie.Bai
afcbe60531 Merge pull request #8076 from jumpserver/dev
v2.21.0-rc3
2022-04-18 11:43:40 +08:00
Jiangjie.Bai
f98c170b8c Merge pull request #8061 from jumpserver/dev
v2.21.0-rc2
2022-04-14 19:51:29 +08:00
Jiangjie.Bai
21c41a6334 Merge pull request #8054 from jumpserver/dev
v2.21.0-rc1
2022-04-13 20:25:47 +08:00
Jiangjie.Bai
005dd27701 Merge pull request #7917 from jumpserver/dev
v2.20.0
2022-03-17 19:22:22 +08:00
Jiangjie.Bai
8080d36d90 Merge pull request #7911 from jumpserver/dev
v2.20.0-rc6
2022-03-17 17:07:22 +08:00
Jiangjie.Bai
91a34d1a88 Merge pull request #7888 from jumpserver/dev
v2.20.0-rc5
2022-03-16 20:49:53 +08:00
Jiangjie.Bai
166745baf6 Merge pull request #7866 from jumpserver/dev
v2.20.0 rc4
2022-03-15 20:54:40 +08:00
Jiangjie.Bai
c77f02b295 Merge pull request #7844 from jumpserver/dev
v2.20.0-rc3
2022-03-15 11:37:30 +08:00
Jiangjie.Bai
cfed849175 Merge pull request #7834 from jumpserver/dev
fix: 修复setting perm
2022-03-14 15:53:11 +08:00
Jiangjie.Bai
5996cedcd6 Merge pull request #7832 from jumpserver/dev
fix: 修复权限问题
2022-03-14 15:16:51 +08:00
Jiangjie.Bai
a64ec8a1d2 Merge pull request #7825 from jumpserver/dev
v2.20.0-rc2
2022-03-14 10:38:35 +08:00
老广
45331dc9e8 Merge pull request #7796 from jumpserver/dev
v2.20.0-rc1
2022-03-10 20:34:18 +08:00
Jiangjie.Bai
18c388f3a5 Merge pull request #7629 from jumpserver/dev
v2.19.0-rc3
2022-02-17 11:04:33 +08:00
Jiangjie.Bai
7be76feeb0 Merge pull request #7622 from jumpserver/dev
v2.19.0-rc3
2022-02-16 16:42:19 +08:00
Jiangjie.Bai
ff6dbe67a6 Merge pull request #7610 from jumpserver/dev
v2.19.0-rc2
2022-02-14 18:31:52 +08:00
Jiangjie.Bai
c10436de47 Merge pull request #7589 from jumpserver/dev
v2.19.0-rc1
2022-02-10 11:24:28 +08:00
Jiangjie.Bai
37a3566b0e Merge pull request #7540 from jumpserver/dev
v2.18
2022-01-20 13:47:13 +08:00
Jiangjie.Bai
2b364c1476 Merge pull request #7534 from jumpserver/dev
v2.18.0-rc4
2022-01-19 19:36:59 +08:00
Jiangjie.Bai
2036037675 Merge pull request #7527 from jumpserver/dev
v2.18.0-rc3
2022-01-18 19:35:37 +08:00
Jiangjie.Bai
6bd597eadd Merge pull request #7511 from jumpserver/dev
v2.18.0-rc2
2022-01-17 19:21:39 +08:00
Jiangjie.Bai
fbd0b44d4f Merge pull request #7490 from jumpserver/dev
v2.18.0-rc1
2022-01-12 20:58:04 +08:00
Jiangjie.Bai
35722a8466 Merge pull request #7487 from jumpserver/dev
v2.18.0-rc1
2022-01-12 20:56:33 +08:00
Jiangjie.Bai
d27947919b Merge pull request #7404 from jumpserver/dev
v2.17.0 rc4
2021-12-15 22:03:19 +08:00
Jiangjie.Bai
151d897746 Merge pull request #7391 from jumpserver/dev
v2.17.0 rc3
2021-12-14 21:58:27 +08:00
Jiangjie.Bai
d6aad41d05 Merge pull request #7373 from jumpserver/dev
v2.17.0 rc2
2021-12-13 19:47:33 +08:00
Jiangjie.Bai
5f7fa7e02f Merge pull request #7355 from jumpserver/dev
v2.17.0 rc1
2021-12-09 20:57:02 +08:00
1949 changed files with 200706 additions and 59987 deletions

View File

@@ -1,5 +1,4 @@
.git
logs/*
data/*
.github
tmp/*
@@ -8,4 +7,7 @@ celerybeat.pid
### Vagrant ###
.vagrant/
apps/xpack/.git
.history/
.idea
.venv/
.env

4
.gitattributes vendored
View File

@@ -1,4 +0,0 @@
*.mmdb filter=lfs diff=lfs merge=lfs -text
*.mo filter=lfs diff=lfs merge=lfs -text
*.ipdb filter=lfs diff=lfs merge=lfs -text

26
.github/.github/issue-spam-config.json vendored Normal file
View File

@@ -0,0 +1,26 @@
{
"dry_run": false,
"min_account_age_days": 3,
"max_urls_for_spam": 1,
"min_body_len_for_links": 40,
"spam_words": [
"call now",
"zadzwoń",
"zadzwoń teraz",
"kontakt",
"telefon",
"telefone",
"contato",
"suporte",
"infolinii",
"click here",
"buy now",
"subscribe",
"visit"
],
"bracket_max": 6,
"special_char_density_threshold": 0.12,
"phone_regex": "\\+?\\d[\\d\\-\\s\\(\\)\\.]{6,}\\d",
"labels_for_spam": ["spam"],
"labels_for_review": ["needs-triage"]
}

View File

@@ -1,10 +0,0 @@
---
name: 需求建议
about: 提出针对本项目的想法和建议
title: "[Feature] "
labels: 类型:需求
assignees: ibuler
---
**请描述您的需求或者改进建议.**

72
.github/ISSUE_TEMPLATE/1_bug_report.yml vendored Normal file
View File

@@ -0,0 +1,72 @@
name: '🐛 Bug Report'
description: 'Report an Bug'
title: '[Bug] '
labels: ['🐛 Bug']
assignees:
- baijiangjie
body:
- type: input
attributes:
label: 'Product Version'
description: The versions prior to v2.28 (inclusive) are no longer supported.
validations:
required: true
- type: checkboxes
attributes:
label: 'Product Edition'
options:
- label: 'Community Edition'
- label: 'Enterprise Edition'
- label: 'Enterprise Trial Edition'
validations:
required: true
- type: checkboxes
attributes:
label: 'Installation Method'
options:
- label: 'Online Installation (One-click command installation)'
- label: 'Offline Package Installation'
- label: 'All-in-One'
- label: '1Panel'
- label: 'Kubernetes'
- label: 'Source Code'
- type: textarea
attributes:
label: 'Environment Information'
description: Please provide a clear and concise description outlining your environment information.
validations:
required: true
- type: textarea
attributes:
label: '🐛 Bug Description'
description:
Please provide a clear and concise description of the defect. If the issue is complex, please provide detailed explanations. <br/>
Unclear descriptions will not be processed. Please ensure you provide enough detail and information to support replicating and fixing the defect.
validations:
required: true
- type: textarea
attributes:
label: 'Recurrence Steps'
description: Please provide a clear and concise description outlining how to reproduce the issue.
validations:
required: true
- type: textarea
attributes:
label: 'Expected Behavior'
description: Please provide a clear and concise description of what you expect to happen.
- type: textarea
attributes:
label: 'Additional Information'
description: Please add any additional background information about the issue here.
- type: textarea
attributes:
label: 'Attempted Solutions'
description: If you have already attempted to solve the issue, please list the solutions you have tried here.

60
.github/ISSUE_TEMPLATE/2_question.yml vendored Normal file
View File

@@ -0,0 +1,60 @@
name: '🤔 Question'
description: 'Pose a question'
title: '[Question] '
labels: ['🤔 Question']
assignees:
- baijiangjie
body:
- type: input
attributes:
label: 'Product Version'
description: The versions prior to v2.28 (inclusive) are no longer supported.
validations:
required: true
- type: checkboxes
attributes:
label: 'Product Edition'
options:
- label: 'Community Edition'
- label: 'Enterprise Edition'
- label: 'Enterprise Trial Edition'
validations:
required: true
- type: checkboxes
attributes:
label: 'Installation Method'
options:
- label: 'Online Installation (One-click command installation)'
- label: 'Offline Package Installation'
- label: 'All-in-One'
- label: '1Panel'
- label: 'Kubernetes'
- label: 'Source Code'
- type: textarea
attributes:
label: 'Environment Information'
description: Please provide a clear and concise description outlining your environment information.
validations:
required: true
- type: textarea
attributes:
label: '🤔 Question Description'
description: |
Please provide a clear and concise description of the defect. If the issue is complex, please provide detailed explanations. <br/>
Unclear descriptions will not be processed.
validations:
required: true
- type: textarea
attributes:
label: 'Expected Behavior'
description: Please provide a clear and concise description of what you expect to happen.
- type: textarea
attributes:
label: 'Additional Information'
description: Please add any additional background information about the issue here.

View File

@@ -0,0 +1,56 @@
name: '⭐️ Feature Request'
description: 'Suggest an idea'
title: '[Feature] '
labels: ['⭐️ Feature Request']
assignees:
- baijiangjie
- ibuler
body:
- type: input
attributes:
label: 'Product Version'
description: The versions prior to v2.28 (inclusive) are no longer supported.
validations:
required: true
- type: checkboxes
attributes:
label: 'Product Edition'
options:
- label: 'Community Edition'
- label: 'Enterprise Edition'
- label: 'Enterprise Trial Edition'
validations:
required: true
- type: checkboxes
attributes:
label: 'Installation Method'
options:
- label: 'Online Installation (One-click command installation)'
- label: 'Offline Package Installation'
- label: 'All-in-One'
- label: '1Panel'
- label: 'Kubernetes'
- label: 'Source Code'
- type: textarea
attributes:
label: '⭐️ Feature Description'
description: |
Please add a clear and concise description of the problem you aim to solve with this feature request.<br/>
Unclear descriptions will not be processed.
validations:
required: true
- type: textarea
attributes:
label: 'Proposed Solution'
description: Please provide a clear and concise description of the solution you desire.
validations:
required: true
- type: textarea
attributes:
label: 'Additional Information'
description: Please add any additional background information about the issue here.

View File

@@ -0,0 +1,72 @@
name: '🐛 反馈缺陷'
description: '反馈一个缺陷'
title: '[Bug] '
labels: ['🐛 Bug']
assignees:
- baijiangjie
body:
- type: input
attributes:
label: '产品版本'
description: 不再支持 v2.28(含)之前的版本。
validations:
required: true
- type: checkboxes
attributes:
label: '版本类型'
options:
- label: '社区版'
- label: '企业版'
- label: '企业试用版'
validations:
required: true
- type: checkboxes
attributes:
label: '安装方式'
options:
- label: '在线安装 (一键命令安装)'
- label: '离线包安装'
- label: 'All-in-One'
- label: '1Panel'
- label: 'Kubernetes'
- label: '源码安装'
- type: textarea
attributes:
label: '环境信息'
description: 请提供一个清晰且简洁的描述,说明你的环境信息。
validations:
required: true
- type: textarea
attributes:
label: '🐛 缺陷描述'
description: |
请提供一个清晰且简洁的缺陷描述,如果问题比较复杂,也请详细说明。<br/>
针对不清晰的描述信息将不予处理。请确保提供足够的细节和信息,以支持对缺陷进行复现和修复。
validations:
required: true
- type: textarea
attributes:
label: '复现步骤'
description: 请提供一个清晰且简洁的描述,说明如何复现问题。
validations:
required: true
- type: textarea
attributes:
label: '期望结果'
description: 请提供一个清晰且简洁的描述,说明你期望发生什么。
- type: textarea
attributes:
label: '补充信息'
description: 在这里添加关于问题的任何其他背景信息。
- type: textarea
attributes:
label: '尝试过的解决方案'
description: 如果你已经尝试解决问题,请在此列出你尝试过的解决方案。

View File

@@ -0,0 +1,61 @@
name: '🤔 问题咨询'
description: '提出一个问题'
title: '[Question] '
labels: ['🤔 Question']
assignees:
- baijiangjie
body:
- type: input
attributes:
label: '产品版本'
description: 不再支持 v2.28(含)之前的版本。
validations:
required: true
- type: checkboxes
attributes:
label: '版本类型'
options:
- label: '社区版'
- label: '企业版'
- label: '企业试用版'
validations:
required: true
- type: checkboxes
attributes:
label: '安装方式'
options:
- label: '在线安装 (一键命令安装)'
- label: '离线包安装'
- label: 'All-in-One'
- label: '1Panel'
- label: 'Kubernetes'
- label: '源码安装'
- type: textarea
attributes:
label: '环境信息'
description: 请在此详细描述你的环境信息,如操作系统、浏览器和部署架构等。
validations:
required: true
- type: textarea
attributes:
label: '🤔 问题描述'
description: |
请提供一个清晰且简洁的问题描述,如果问题比较复杂,也请详细说明。<br/>
针对不清晰的描述信息将不予处理。
validations:
required: true
- type: textarea
attributes:
label: '期望结果'
description: 请提供一个清晰且简洁的描述,说明你期望发生什么。
- type: textarea
attributes:
label: '补充信息'
description: 在这里添加关于问题的任何其他背景信息。

View File

@@ -0,0 +1,56 @@
name: '⭐️ 功能需求'
description: '提出需求或建议'
title: '[Feature] '
labels: ['⭐️ Feature Request']
assignees:
- baijiangjie
- ibuler
body:
- type: input
attributes:
label: '产品版本'
description: 不再支持 v2.28(含)之前的版本。
validations:
required: true
- type: checkboxes
attributes:
label: '版本类型'
options:
- label: '社区版'
- label: '企业版'
- label: '企业试用版'
validations:
required: true
- type: checkboxes
attributes:
label: '安装方式'
options:
- label: '在线安装 (一键命令安装)'
- label: '离线包安装'
- label: 'All-in-One'
- label: '1Panel'
- label: 'Kubernetes'
- label: '源码安装'
- type: textarea
attributes:
label: '⭐️ 需求描述'
description: |
请添加一个清晰且简洁的问题描述,阐述你希望通过这个功能需求解决的问题。<br/>
针对不清晰的描述信息将不予处理。
validations:
required: true
- type: textarea
attributes:
label: '解决方案'
description: 请清晰且简洁地描述你想要的解决方案。
validations:
required: true
- type: textarea
attributes:
label: '补充信息'
description: 在这里添加关于问题的任何其他背景信息。

View File

@@ -1,22 +0,0 @@
---
name: Bug 提交
about: 提交产品缺陷帮助我们更好的改进
title: "[Bug] "
labels: 类型:bug
assignees: wojiushixiaobai
---
**JumpServer 版本(v1.5.9以下不再支持)**
**浏览器版本**
**Bug 描述**
**Bug 重现步骤(有截图更好)**
1.
2.
3.

View File

@@ -1,10 +0,0 @@
---
name: 问题咨询
about: 提出针对本项目安装部署、使用及其他方面的相关问题
title: "[Question] "
labels: 类型:提问
assignees: wojiushixiaobai
---
**请描述您的问题.**

14
.github/dependabot.yml.bak vendored Normal file
View File

@@ -0,0 +1,14 @@
version: 2
updates:
- package-ecosystem: "uv"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "09:30"
timezone: "Asia/Shanghai"
target-branch: dev
groups:
python-dependencies:
patterns:
- "*"

72
.github/workflows/build-base-image.yml vendored Normal file
View File

@@ -0,0 +1,72 @@
name: Build and Push Base Image
on:
pull_request:
branches:
- 'dev'
- 'v*'
paths:
- poetry.lock
- pyproject.toml
- Dockerfile-base
- package.json
- go.mod
- yarn.lock
- pom.xml
- install_deps.sh
- utils/clean_site_packages.sh
types:
- opened
- synchronize
- reopened
jobs:
build-and-push:
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Extract date
id: vars
run: echo "IMAGE_TAG=$(date +'%Y%m%d_%H%M%S')" >> $GITHUB_ENV
- name: Extract repository name
id: repo
run: echo "REPO=$(basename ${{ github.repository }})" >> $GITHUB_ENV
- name: Build and push multi-arch image
uses: docker/build-push-action@v6
with:
platforms: linux/amd64,linux/arm64
push: true
file: Dockerfile-base
tags: jumpserver/core-base:${{ env.IMAGE_TAG }}
- name: Update Dockerfile
run: |
sed -i 's|-base:.* AS stage-build|-base:${{ env.IMAGE_TAG }} AS stage-build|' Dockerfile
- name: Commit changes
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
git add Dockerfile
git commit -m "perf: Update Dockerfile with new base image tag"
git push origin ${{ github.event.pull_request.head.ref }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -0,0 +1,46 @@
name: Build and Push Python Base Image
on:
workflow_dispatch:
inputs:
tag:
description: 'Tag to build'
required: true
default: '3.11-slim-bullseye-v1'
type: string
jobs:
build-and-push:
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
image: tonistiigi/binfmt:qemu-v7.0.0-28
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Extract repository name
id: repo
run: echo "REPO=$(basename ${{ github.repository }})" >> $GITHUB_ENV
- name: Build and push multi-arch image
uses: docker/build-push-action@v6
with:
platforms: linux/amd64,linux/arm64
push: true
file: Dockerfile-python
tags: jumpserver/core-base:python-${{ inputs.tag }}

View File

@@ -0,0 +1,31 @@
name: Check I18n files CompileMessages
on:
pull_request:
branches:
- 'dev'
paths:
- 'apps/i18n/core/**/*.po'
types:
- opened
- synchronize
- reopened
jobs:
compile-messages-check:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and check compilemessages
uses: docker/build-push-action@v6
with:
platforms: linux/amd64
push: false
file: Dockerfile
target: stage-build
tags: jumpserver/core:stage-build

123
.github/workflows/cleanup-branches.yml vendored Normal file
View File

@@ -0,0 +1,123 @@
name: Cleanup PR Branches
on:
schedule:
# 每天凌晨2点运行
- cron: '0 2 * * *'
workflow_dispatch:
# 允许手动触发
inputs:
dry_run:
description: 'Dry run mode (default: true)'
required: false
default: 'true'
type: boolean
jobs:
cleanup-branches:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # 获取所有分支和提交历史
- name: Setup Git
run: |
git config --global user.name "GitHub Actions"
git config --global user.email "actions@github.com"
- name: Get dry run setting
id: dry-run
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "dry_run=${{ github.event.inputs.dry_run }}" >> $GITHUB_OUTPUT
else
echo "dry_run=false" >> $GITHUB_OUTPUT
fi
- name: Cleanup branches
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DRY_RUN: ${{ steps.dry-run.outputs.dry_run }}
run: |
echo "Starting branch cleanup..."
echo "Dry run mode: $DRY_RUN"
# 获取所有本地分支
git fetch --all --prune
# 获取以 pr 或 repr 开头的分支
branches=$(git branch -r | grep -E 'origin/(pr|repr)' | sed 's/origin\///' | grep -v 'HEAD')
echo "Found branches matching pattern:"
echo "$branches"
deleted_count=0
skipped_count=0
for branch in $branches; do
echo ""
echo "Processing branch: $branch"
# 检查分支是否有未合并的PR
pr_info=$(gh pr list --head "$branch" --state open --json number,title,state 2>/dev/null)
if [ $? -eq 0 ] && [ "$pr_info" != "[]" ]; then
echo " ⚠️ Branch has open PR(s), skipping deletion"
echo " PR info: $pr_info"
skipped_count=$((skipped_count + 1))
continue
fi
# 检查分支是否有已合并的PR可选如果PR已合并也可以删除
merged_pr_info=$(gh pr list --head "$branch" --state merged --json number,title,state 2>/dev/null)
if [ $? -eq 0 ] && [ "$merged_pr_info" != "[]" ]; then
echo " ✅ Branch has merged PR(s), safe to delete"
echo " Merged PR info: $merged_pr_info"
else
echo " No PRs found for this branch"
fi
# 执行删除操作
if [ "$DRY_RUN" = "true" ]; then
echo " 🔍 [DRY RUN] Would delete branch: $branch"
deleted_count=$((deleted_count + 1))
else
echo " 🗑️ Deleting branch: $branch"
# 删除远程分支
if git push origin --delete "$branch" 2>/dev/null; then
echo " ✅ Successfully deleted remote branch: $branch"
deleted_count=$((deleted_count + 1))
else
echo " ❌ Failed to delete remote branch: $branch"
fi
fi
done
echo ""
echo "=== Cleanup Summary ==="
echo "Branches processed: $(echo "$branches" | wc -l)"
echo "Branches deleted: $deleted_count"
echo "Branches skipped: $skipped_count"
if [ "$DRY_RUN" = "true" ]; then
echo ""
echo "🔍 This was a DRY RUN - no branches were actually deleted"
echo "To perform actual deletion, run this workflow manually with dry_run=false"
fi
- name: Create summary
if: always()
run: |
echo "## Branch Cleanup Summary" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Workflow:** ${{ github.workflow }}" >> $GITHUB_STEP_SUMMARY
echo "**Run ID:** ${{ github.run_id }}" >> $GITHUB_STEP_SUMMARY
echo "**Dry Run:** ${{ steps.dry-run.outputs.dry_run }}" >> $GITHUB_STEP_SUMMARY
echo "**Triggered by:** ${{ github.event_name }}" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "Check the logs above for detailed information about processed branches." >> $GITHUB_STEP_SUMMARY

24
.github/workflows/discord-release.yml vendored Normal file
View File

@@ -0,0 +1,24 @@
name: Publish Release to Discord
on:
release:
types: [published]
jobs:
send_discord_notification:
runs-on: ubuntu-latest
if: startsWith(github.event.release.tag_name, 'v4.')
steps:
- name: Send release notification to Discord
env:
WEBHOOK_URL: ${{ secrets.DISCORD_CHANGELOG_WEBHOOK }}
run: |
# 获取标签名称和 release body
TAG_NAME="${{ github.event.release.tag_name }}"
RELEASE_BODY="${{ github.event.release.body }}"
# 使用 jq 构建 JSON 数据,以确保安全传递
JSON_PAYLOAD=$(jq -n --arg tag "# JumpServer $TAG_NAME Released! 🚀" --arg body "$RELEASE_BODY" '{content: "\($tag)\n\($body)"}')
# 使用 curl 发送 JSON 数据
curl -X POST -H "Content-Type: application/json" -d "$JSON_PAYLOAD" "$WEBHOOK_URL"

24
.github/workflows/docs-release.yml vendored Normal file
View File

@@ -0,0 +1,24 @@
name: Auto update docs changelog
on:
release:
types: [published]
jobs:
update_docs_changelog:
runs-on: ubuntu-latest
if: startsWith(github.event.release.tag_name, 'v4.')
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Update docs changelog
env:
TAG_NAME: ${{ github.event.release.tag_name }}
DOCS_TOKEN: ${{ secrets.DOCS_TOKEN }}
run: |
git config --global user.name 'BaiJiangJie'
git config --global user.email 'jiangjie.bai@fit2cloud.com'
git clone https://$DOCS_TOKEN@github.com/jumpservice/documentation.git
cd documentation/utils
bash update_changelog.sh

View File

@@ -12,7 +12,9 @@ jobs:
uses: actions-cool/issues-helper@v2
with:
actions: 'close-issues'
labels: '状态:待反馈'
labels: '⏳ Pending feedback'
inactive-day: 30
body: |
You haven't provided feedback for over 30 days.
We will close this issue. If you have any further needs, you can reopen it or submit a new issue.
您超过 30 天未反馈信息,我们将关闭该 issue如有需求您可以重新打开或者提交新的 issue。

View File

@@ -13,4 +13,4 @@ jobs:
if: ${{ !github.event.issue.pull_request }}
with:
actions: 'remove-labels'
labels: '状态:待处理,状态:待反馈'
labels: '🔔 Pending processing,⏳ Pending feedback'

View File

@@ -13,26 +13,53 @@ jobs:
uses: actions-cool/issues-helper@v2
with:
actions: 'add-labels'
labels: '状态:待处理'
labels: '🔔 Pending processing'
- name: Remove require reply label
uses: actions-cool/issues-helper@v2
with:
actions: 'remove-labels'
labels: '状态:待反馈'
labels: '⏳ Pending feedback'
add-label-if-not-author:
add-label-if-is-member:
runs-on: ubuntu-latest
if: (github.event.issue.user.id != github.event.comment.user.id) && !github.event.issue.pull_request && (github.event.issue.state == 'open')
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Get Organization name
id: org_name
run: echo "data=$(echo '${{ github.repository }}' | cut -d '/' -f 1)" >> $GITHUB_OUTPUT
- name: Get Organization public members
uses: octokit/request-action@v2.x
id: members
with:
route: GET /orgs/${{ steps.org_name.outputs.data }}/public_members
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Process public members data
# 将 members 中的数据转化为 login 字段的拼接字符串
id: member_names
run: echo "data=$(echo '${{ steps.members.outputs.data }}' | jq '[.[].login] | join(",")')" >> $GITHUB_OUTPUT
- run: "echo members: '${{ steps.members.outputs.data }}'"
- run: "echo member names: '${{ steps.member_names.outputs.data }}'"
- run: "echo comment user: '${{ github.event.comment.user.login }}'"
- run: "echo contains? : '${{ contains(steps.member_names.outputs.data, github.event.comment.user.login) }}'"
- name: Add require replay label
if: contains(steps.member_names.outputs.data, github.event.comment.user.login)
uses: actions-cool/issues-helper@v2
with:
actions: 'add-labels'
labels: '状态:待反馈'
labels: '⏳ Pending feedback'
- name: Remove require handle label
if: contains(steps.member_names.outputs.data, github.event.comment.user.login)
uses: actions-cool/issues-helper@v2
with:
actions: 'remove-labels'
labels: '状态:待处理'
labels: '🔔 Pending processing'

View File

@@ -13,4 +13,4 @@ jobs:
if: ${{ !github.event.issue.pull_request }}
with:
actions: 'add-labels'
labels: '状态:待处理'
labels: '🔔 Pending processing'

View File

@@ -1,35 +0,0 @@
name: "Run Build Test"
on:
push:
branches:
- pr@*
- repr@*
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: docker/setup-qemu-action@v2
- uses: docker/setup-buildx-action@v2
- uses: docker/build-push-action@v3
with:
context: .
push: false
tags: jumpserver/core:test
file: Dockerfile
build-args: |
APT_MIRROR=http://deb.debian.org
PIP_MIRROR=https://pypi.org/simple
cache-from: type=gha
cache-to: type=gha,mode=max
- uses: LouisBrunner/checks-action@v1.5.0
if: always()
with:
token: ${{ secrets.GITHUB_TOKEN }}
name: Check Build
conclusion: ${{ job.status }}

View File

@@ -0,0 +1,63 @@
name: "Run Build Test"
on:
push:
paths:
- 'Dockerfile'
- 'Dockerfile*'
- 'Dockerfile-*'
- 'pyproject.toml'
- 'poetry.lock'
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
component: [core]
version: [v4]
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Prepare Build
run: |
sed -i 's@^FROM registry.fit2cloud.com/jumpserver@FROM ghcr.io/jumpserver@g' Dockerfile-ee
- name: Build CE Image
uses: docker/build-push-action@v5
with:
context: .
push: true
file: Dockerfile
tags: ghcr.io/jumpserver/${{ matrix.component }}:${{ matrix.version }}-ce
platforms: linux/amd64
build-args: |
VERSION=${{ matrix.version }}
APT_MIRROR=http://deb.debian.org
PIP_MIRROR=https://pypi.org/simple
outputs: type=image,oci-mediatypes=true,compression=zstd,compression-level=3,force-compression=true
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Build EE Image
uses: docker/build-push-action@v5
with:
context: .
push: false
file: Dockerfile-ee
tags: ghcr.io/jumpserver/${{ matrix.component }}:${{ matrix.version }}
platforms: linux/amd64
build-args: |
VERSION=${{ matrix.version }}
APT_MIRROR=http://deb.debian.org
PIP_MIRROR=https://pypi.org/simple
outputs: type=image,oci-mediatypes=true,compression=zstd,compression-level=3,force-compression=true
cache-from: type=gha
cache-to: type=gha,mode=max

View File

@@ -1,12 +1,36 @@
on: [push, pull_request, release]
on:
push:
pull_request:
types: [opened, synchronize, closed]
release:
types: [created]
name: JumpServer repos generic handler
jobs:
generic_handler:
name: Run generic handler
handle_pull_request:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: jumpserver/action-generic-handler@master
env:
GITHUB_TOKEN: ${{ secrets.PRIVATE_TOKEN }}
I18N_TOKEN: ${{ secrets.I18N_TOKEN }}
handle_push:
if: github.event_name == 'push'
runs-on: ubuntu-latest
steps:
- uses: jumpserver/action-generic-handler@master
env:
GITHUB_TOKEN: ${{ secrets.PRIVATE_TOKEN }}
I18N_TOKEN: ${{ secrets.I18N_TOKEN }}
handle_release:
if: github.event_name == 'release'
runs-on: ubuntu-latest
steps:
- uses: jumpserver/action-generic-handler@master
env:
GITHUB_TOKEN: ${{ secrets.PRIVATE_TOKEN }}
I18N_TOKEN: ${{ secrets.I18N_TOKEN }}

View File

@@ -0,0 +1,28 @@
name: LLM Code Review
permissions:
contents: read
pull-requests: write
on:
pull_request:
types: [opened, reopened, synchronize]
jobs:
llm-code-review:
runs-on: ubuntu-latest
steps:
- uses: fit2cloud/LLM-CodeReview-Action@main
env:
GITHUB_TOKEN: ${{ secrets.FIT2CLOUDRD_LLM_CODE_REVIEW_TOKEN }}
OPENAI_API_KEY: ${{ secrets.ALIYUN_LLM_API_KEY }}
LANGUAGE: English
OPENAI_API_ENDPOINT: https://dashscope.aliyuncs.com/compatible-mode/v1
MODEL: qwen2-1.5b-instruct
PROMPT: "Please check the following code differences for any irregularities, potential issues, or optimization suggestions, and provide your answers in English."
top_p: 1
temperature: 1
# max_tokens: 10000
MAX_PATCH_LENGTH: 10000
IGNORE_PATTERNS: "/node_modules,*.md,/dist,/.github"
FILE_PATTERNS: "*.java,*.go,*.py,*.vue,*.ts,*.js,*.css,*.scss,*.html"

View File

@@ -1,11 +1,9 @@
name: 🔀 Sync mirror to Gitee
on:
push:
branches:
- master
- dev
create:
schedule:
# 每天凌晨3点运行
- cron: '0 3 * * *'
jobs:
mirror:
@@ -14,10 +12,9 @@ jobs:
steps:
- name: mirror
continue-on-error: true
if: github.event_name == 'push' || (github.event_name == 'create' && github.event.ref_type == 'tag')
uses: wearerequired/git-mirror-action@v1
env:
SSH_PRIVATE_KEY: ${{ secrets.GITEE_SSH_PRIVATE_KEY }}
with:
source-repo: 'git@github.com:jumpserver/jumpserver.git'
destination-repo: 'git@gitee.com:jumpserver/jumpserver.git'
destination-repo: 'git@gitee.com:fit2cloud-feizhiyun/JumpServer.git'

45
.github/workflows/translate-readme.yml vendored Normal file
View File

@@ -0,0 +1,45 @@
name: Translate README
on:
workflow_dispatch:
inputs:
source_readme:
description: "Source README"
required: false
default: "./readmes/README.en.md"
target_langs:
description: "Target Languages"
required: false
default: "zh-hans,zh-hant,ja,pt-br,es,ru"
gen_dir_path:
description: "Generate Dir Name"
required: false
default: "readmes/"
push_branch:
description: "Push Branch"
required: false
default: "pr@dev@translate_readme"
prompt:
description: "AI Translate Prompt"
required: false
default: ""
gpt_mode:
description: "GPT Mode"
required: false
default: "gpt-4o-mini"
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Auto Translate
uses: jumpserver-dev/action-translate-readme@main
env:
GITHUB_TOKEN: ${{ secrets.PRIVATE_TOKEN }}
OPENAI_API_KEY: ${{ secrets.GPT_API_TOKEN }}
GPT_MODE: ${{ github.event.inputs.gpt_mode }}
SOURCE_README: ${{ github.event.inputs.source_readme }}
TARGET_LANGUAGES: ${{ github.event.inputs.target_langs }}
PUSH_BRANCH: ${{ github.event.inputs.push_branch }}
GEN_DIR_PATH: ${{ github.event.inputs.gen_dir_path }}
PROMPT: ${{ github.event.inputs.prompt }}

8
.gitignore vendored
View File

@@ -35,7 +35,6 @@ celerybeat-schedule.db
docs/_build/
xpack
xpack.bak
logs/*
### Vagrant ###
.vagrant/
release/*
@@ -43,3 +42,10 @@ releashe
/apps/script.py
data/*
test.py
.history/
.test/
*.mo
apps.iml
*.db
*.mmdb
*.ipdb

View File

@@ -1,3 +1,4 @@
[settings]
line_length=120
known_first_party=common,users,assets,perms,authentication,jumpserver,notification,ops,orgs,rbac,settings,terminal,tickets

11
.prettierrc Normal file
View File

@@ -0,0 +1,11 @@
{
"tabWidth": 4,
"useTabs": false,
"semi": true,
"singleQuote": true,
"trailingComma": "es5",
"bracketSpacing": true,
"arrowParens": "avoid",
"printWidth": 100,
"endOfLine": "lf"
}

2
.pylintrc Normal file
View File

@@ -0,0 +1,2 @@
[MESSAGES CONTROL]
disable=missing-module-docstring,missing-class-docstring,missing-function-docstring,too-many-ancestors

View File

@@ -1,5 +1,10 @@
# Contributing
As a contributor, you should agree that:
- The producer can adjust the open-source agreement to be more strict or relaxed as deemed necessary.
- Your contributed code may be used for commercial purposes, including but not limited to its cloud business operations.
## Create pull request
PR are always welcome, even if they only contain small fixes like typos or a few lines of code. If there will be a significant effort, please document it as an issue and get a discussion going before starting to work on it.

View File

@@ -1,104 +1,69 @@
FROM python:3.9-slim as stage-build
ARG TARGETARCH
FROM jumpserver/core-base:20251113_092612 AS stage-build
ARG VERSION
ENV VERSION=$VERSION
WORKDIR /opt/jumpserver
ADD . .
RUN cd utils && bash -ixeu build.sh
FROM python:3.9-slim
ARG TARGETARCH
MAINTAINER JumpServer Team <ibuler@qq.com>
RUN echo > /opt/jumpserver/config.yml \
&& \
if [ -n "${VERSION}" ]; then \
sed -i "s@VERSION = .*@VERSION = '${VERSION}'@g" apps/jumpserver/const.py; \
fi
ARG BUILD_DEPENDENCIES=" \
g++ \
make \
pkg-config"
RUN set -ex \
&& export SECRET_KEY=$(head -c100 < /dev/urandom | base64 | tr -dc A-Za-z0-9 | head -c 48) \
&& . /opt/py3/bin/activate \
&& cd apps \
&& python manage.py compilemessages
FROM python:3.11-slim-trixie
ENV LANG=en_US.UTF-8 \
PATH=/opt/py3/bin:$PATH
ARG DEPENDENCIES=" \
freetds-dev \
libpq-dev \
libffi-dev \
libjpeg-dev \
libldap2-dev \
libsasl2-dev \
libxml2-dev \
libxmlsec1-dev \
libxmlsec1-openssl \
libaio-dev"
libx11-dev"
ARG TOOLS=" \
cron \
ca-certificates \
curl \
default-libmysqlclient-dev \
default-mysql-client \
locales \
openssh-client \
procps \
sshpass \
telnet \
unzip \
vim \
git \
wget"
nmap \
bubblewrap"
ARG APT_MIRROR=http://mirrors.ustc.edu.cn
ARG APT_MIRROR=http://deb.debian.org
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=core \
sed -i "s@http://.*.debian.org@${APT_MIRROR}@g" /etc/apt/sources.list \
&& rm -f /etc/apt/apt.conf.d/docker-clean \
RUN set -ex \
&& sed -i "s@http://.*.debian.org@${APT_MIRROR}@g" /etc/apt/sources.list.d/debian.sources \
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& apt-get update \
&& apt-get -y install --no-install-recommends ${BUILD_DEPENDENCIES} \
&& apt-get update > /dev/null \
&& apt-get -y install --no-install-recommends ${DEPENDENCIES} \
&& apt-get -y install --no-install-recommends ${TOOLS} \
&& mkdir -p /root/.ssh/ \
&& echo "Host *\n\tStrictHostKeyChecking no\n\tUserKnownHostsFile /dev/null" > /root/.ssh/config \
&& echo "set mouse-=a" > ~/.vimrc \
&& echo "Host *\n\tStrictHostKeyChecking no\n\tUserKnownHostsFile /dev/null\n\tCiphers +aes128-cbc\n\tKexAlgorithms +diffie-hellman-group1-sha1\n\tHostKeyAlgorithms +ssh-rsa" > /root/.ssh/config \
&& echo "no" | dpkg-reconfigure dash \
&& echo "zh_CN.UTF-8" | dpkg-reconfigure locales \
&& sed -i "s@# export @export @g" ~/.bashrc \
&& sed -i "s@# alias @alias @g" ~/.bashrc \
&& rm -rf /var/lib/apt/lists/*
&& apt-get clean all \
&& rm -rf /var/lib/apt/lists/* \
&& echo "0 3 * * * root find /tmp -type f -mtime +1 -size +1M -exec rm -f {} \; && date > /tmp/clean.log" > /etc/cron.d/cleanup_tmp \
&& chmod 0644 /etc/cron.d/cleanup_tmp
ARG DOWNLOAD_URL=https://download.jumpserver.org
RUN mkdir -p /opt/oracle/ \
&& cd /opt/oracle/ \
&& wget ${DOWNLOAD_URL}/public/instantclient-basiclite-linux.${TARGETARCH}-19.10.0.0.0.zip \
&& unzip instantclient-basiclite-linux.${TARGETARCH}-19.10.0.0.0.zip \
&& sh -c "echo /opt/oracle/instantclient_19_10 > /etc/ld.so.conf.d/oracle-instantclient.conf" \
&& ldconfig \
&& rm -f instantclient-basiclite-linux.${TARGETARCH}-19.10.0.0.0.zip
WORKDIR /tmp/build
COPY ./requirements ./requirements
ARG PIP_MIRROR=https://pypi.douban.com/simple
ENV PIP_MIRROR=$PIP_MIRROR
ARG PIP_JMS_MIRROR=https://pypi.douban.com/simple
ENV PIP_JMS_MIRROR=$PIP_JMS_MIRROR
RUN --mount=type=cache,target=/root/.cache/pip \
set -ex \
&& pip config set global.index-url ${PIP_MIRROR} \
&& pip install --upgrade pip \
&& pip install --upgrade setuptools wheel \
&& pip install $(grep -E 'jms|jumpserver' requirements/requirements.txt) -i ${PIP_JMS_MIRROR} \
&& pip install -r requirements/requirements.txt
COPY --from=stage-build /opt/jumpserver/release/jumpserver /opt/jumpserver
RUN echo > /opt/jumpserver/config.yml \
&& rm -rf /tmp/build
COPY --from=stage-build /opt /opt
COPY --from=stage-build /usr/local/bin /usr/local/bin
COPY --from=stage-build /opt/jumpserver/apps/libs/ansible/ansible.cfg /etc/ansible/
WORKDIR /opt/jumpserver
VOLUME /opt/jumpserver/data
VOLUME /opt/jumpserver/logs
ENV LANG=zh_CN.UTF-8
VOLUME /opt/jumpserver/data
ENTRYPOINT ["./entrypoint.sh"]
EXPOSE 8080
ENTRYPOINT ["./entrypoint.sh"]
STOPSIGNAL SIGQUIT
CMD ["start", "all"]

59
Dockerfile-base Normal file
View File

@@ -0,0 +1,59 @@
FROM python:3.11.14-slim-trixie
ARG TARGETARCH
# Install APT dependencies
ARG DEPENDENCIES=" \
ca-certificates \
wget \
g++ \
make \
pkg-config \
default-libmysqlclient-dev \
freetds-dev \
gettext \
libkrb5-dev \
libldap2-dev \
libsasl2-dev"
ARG APT_MIRROR=http://deb.debian.org
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=core \
--mount=type=cache,target=/var/lib/apt,sharing=locked,id=core \
set -ex \
&& rm -f /etc/apt/apt.conf.d/docker-clean \
&& echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache \
&& sed -i "s@http://.*.debian.org@${APT_MIRROR}@g" /etc/apt/sources.list.d/debian.sources \
&& apt-get update > /dev/null \
&& apt-get -y install --no-install-recommends ${DEPENDENCIES} \
&& echo "no" | dpkg-reconfigure dash
# Install bin tools
ARG CHECK_VERSION=v1.0.5
RUN set -ex \
&& wget https://github.com/jumpserver-dev/healthcheck/releases/download/${CHECK_VERSION}/check-${CHECK_VERSION}-linux-${TARGETARCH}.tar.gz \
&& tar -xf check-${CHECK_VERSION}-linux-${TARGETARCH}.tar.gz \
&& mv check /usr/local/bin/ \
&& chown root:root /usr/local/bin/check \
&& chmod 755 /usr/local/bin/check \
&& rm -f check-${CHECK_VERSION}-linux-${TARGETARCH}.tar.gz
# Install Python dependencies
WORKDIR /opt/jumpserver
ARG PIP_MIRROR=https://pypi.org/simple
ENV ANSIBLE_COLLECTIONS_PATHS=/opt/py3/lib/python3.11/site-packages/ansible_collections
ENV LANG=en_US.UTF-8 \
PATH=/opt/py3/bin:$PATH
ENV SETUPTOOLS_SCM_PRETEND_VERSION=3.4.5
RUN --mount=type=cache,target=/root/.cache \
--mount=type=bind,source=pyproject.toml,target=pyproject.toml \
--mount=type=bind,source=requirements/clean_site_packages.sh,target=clean_site_packages.sh \
--mount=type=bind,source=requirements/collections.yml,target=collections.yml \
--mount=type=bind,source=requirements/static_files.sh,target=utils/static_files.sh \
set -ex \
&& pip install uv -i${PIP_MIRROR} \
&& uv venv \
&& uv pip install -i${PIP_MIRROR} -r pyproject.toml \
&& ln -sf $(pwd)/.venv /opt/py3 \
&& bash utils/static_files.sh \
&& bash clean_site_packages.sh

View File

@@ -1,10 +1,32 @@
ARG VERSION
FROM registry.fit2cloud.com/jumpserver/xpack:${VERSION} as build-xpack
FROM jumpserver/core:${VERSION}
ARG VERSION=dev
FROM registry.fit2cloud.com/jumpserver/xpack:${VERSION} AS build-xpack
FROM jumpserver/core:${VERSION}-ce
COPY --from=build-xpack /opt/xpack /opt/jumpserver/apps/xpack
ARG TOOLS=" \
g++ \
curl \
iputils-ping \
netcat-openbsd \
nmap \
telnet \
vim \
postgresql-client \
wget \
poppler-utils"
RUN set -ex \
&& apt-get update \
&& apt-get -y install --no-install-recommends ${TOOLS} \
&& apt-get clean all \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /opt/jumpserver
RUN --mount=type=cache,target=/root/.cache/pip \
set -ex \
&& pip install -r requirements/requirements_xpack.txt
ARG PIP_MIRROR=https://pypi.org/simple
RUN set -ex \
&& uv pip install -i${PIP_MIRROR} --group xpack \
&& playwright install chromium --with-deps --only-shell

View File

@@ -1,96 +0,0 @@
FROM python:3.9-slim as stage-build
ARG TARGETARCH
ARG VERSION
ENV VERSION=$VERSION
WORKDIR /opt/jumpserver
ADD . .
RUN cd utils && bash -ixeu build.sh
FROM python:3.9-slim
ARG TARGETARCH
MAINTAINER JumpServer Team <ibuler@qq.com>
ARG BUILD_DEPENDENCIES=" \
g++ \
make \
pkg-config"
ARG DEPENDENCIES=" \
freetds-dev \
libpq-dev \
libffi-dev \
libjpeg-dev \
libldap2-dev \
libsasl2-dev \
libssl-dev \
libxml2-dev \
libxmlsec1-dev \
libxmlsec1-openssl \
libaio-dev"
ARG TOOLS=" \
ca-certificates \
curl \
default-libmysqlclient-dev \
default-mysql-client \
locales \
openssh-client \
procps \
sshpass \
telnet \
unzip \
vim \
git \
wget"
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=core \
set -ex \
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& apt-get update \
&& apt-get -y install --no-install-recommends ${BUILD_DEPENDENCIES} \
&& apt-get -y install --no-install-recommends ${DEPENDENCIES} \
&& apt-get -y install --no-install-recommends ${TOOLS} \
&& mkdir -p /root/.ssh/ \
&& echo "Host *\n\tStrictHostKeyChecking no\n\tUserKnownHostsFile /dev/null" > /root/.ssh/config \
&& echo "set mouse-=a" > ~/.vimrc \
&& echo "no" | dpkg-reconfigure dash \
&& echo "zh_CN.UTF-8" | dpkg-reconfigure locales \
&& sed -i "s@# export @export @g" ~/.bashrc \
&& sed -i "s@# alias @alias @g" ~/.bashrc \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /tmp/build
COPY ./requirements ./requirements
ARG PIP_MIRROR=https://pypi.douban.com/simple
ENV PIP_MIRROR=$PIP_MIRROR
ARG PIP_JMS_MIRROR=https://pypi.douban.com/simple
ENV PIP_JMS_MIRROR=$PIP_JMS_MIRROR
RUN --mount=type=cache,target=/root/.cache/pip \
set -ex \
&& pip config set global.index-url ${PIP_MIRROR} \
&& pip install --upgrade pip \
&& pip install --upgrade setuptools wheel \
&& pip install https://download.jumpserver.org/pypi/simple/cryptography/cryptography-38.0.4-cp39-cp39-linux_loongarch64.whl \
&& pip install https://download.jumpserver.org/pypi/simple/greenlet/greenlet-1.1.2-cp39-cp39-linux_loongarch64.whl \
&& pip install $(grep 'PyNaCl' requirements/requirements.txt) \
&& GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=true pip install grpcio \
&& pip install $(grep -E 'jms|jumpserver' requirements/requirements.txt) -i ${PIP_JMS_MIRROR} \
&& pip install -r requirements/requirements.txt
COPY --from=stage-build /opt/jumpserver/release/jumpserver /opt/jumpserver
RUN echo > /opt/jumpserver/config.yml \
&& rm -rf /tmp/build
WORKDIR /opt/jumpserver
VOLUME /opt/jumpserver/data
VOLUME /opt/jumpserver/logs
ENV LANG=zh_CN.UTF-8
EXPOSE 8080
ENTRYPOINT ["./entrypoint.sh"]

189
README.md
View File

@@ -1,115 +1,126 @@
<p align="center">
<a href="https://jumpserver.org"><img src="https://download.jumpserver.org/images/jumpserver-logo.svg" alt="JumpServer" width="300" /></a>
</p>
<h3 align="center">广受欢迎的开源堡垒机</h3>
<div align="center">
<a name="readme-top"></a>
<a href="https://jumpserver.com" target="_blank"><img src="https://download.jumpserver.org/images/jumpserver-logo.svg" alt="JumpServer" width="300" /></a>
## An open-source PAM platform (Bastion Host)
<p align="center">
<a href="https://www.gnu.org/licenses/gpl-3.0.html"><img src="https://img.shields.io/github/license/jumpserver/jumpserver" alt="License: GPLv3"></a>
<a href="https://hub.docker.com/u/jumpserver"><img src="https://img.shields.io/docker/pulls/jumpserver/jms_all.svg" alt="Docker pulls"></a>
<a href="https://github.com/jumpserver/jumpserver/releases/latest"><img src="https://img.shields.io/github/v/release/jumpserver/jumpserver" alt="Latest release"></a>
<a href="https://github.com/jumpserver/jumpserver"><img src="https://img.shields.io/github/stars/jumpserver/jumpserver?color=%231890FF&style=flat-square" alt="Stars"></a>
</p>
[![][license-shield]][license-link]
[![][docs-shield]][docs-link]
[![][deepwiki-shield]][deepwiki-link]
[![][discord-shield]][discord-link]
[![][docker-shield]][docker-link]
[![][github-release-shield]][github-release-link]
[![][github-stars-shield]][github-stars-link]
--------------------------
[English](/README.md) · [中文(简体)](/readmes/README.zh-hans.md) · [中文(繁體)](/readmes/README.zh-hant.md) · [日本語](/readmes/README.ja.md) · [Português (Brasil)](/readmes/README.pt-br.md) · [Español](/readmes/README.es.md) · [Русский](/readmes/README.ru.md) · [한국어](/readmes/README.ko.md)
JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。
</div>
<br/>
## 产品特色
## What is JumpServer?
- **开源**: 零门槛,线上快速获取和安装;
- **无插件**: 仅需浏览器,极致的 Web Terminal 使用体验;
- **分布式**: 支持分布式部署和横向扩展,轻松支持大规模并发访问;
- **多云支持**: 一套系统,同时管理不同云上面的资产;
- **多租户**: 一套系统,多个子公司或部门同时使用;
- **云端存储**: 审计录像云端存储,永不丢失;
- **多应用支持**: 全面支持各类资产包括服务器、数据库、Windows RemoteApp、Kubernetes 等;
- **安全可靠**: 被广泛使用、验证和信赖,连续 9 年的持续研发投入和产品更新升级。
JumpServer is an open-source Privileged Access Management (PAM) platform that provides DevOps and IT teams with on-demand and secure access to SSH, RDP, Kubernetes, Database and RemoteApp endpoints through a web browser.
## UI 展示
![UI展示](https://www.jumpserver.org/images/screenshot/1.png)
<picture>
<source media="(prefers-color-scheme: light)" srcset="https://www.jumpserver.com/images/jumpserver-arch-light.png">
<source media="(prefers-color-scheme: dark)" srcset="https://www.jumpserver.com/images/jumpserver-arch-dark.png">
<img src="https://github.com/user-attachments/assets/dd612f3d-c958-4f84-b164-f31b75454d7f" alt="Theme-based Image">
</picture>
## 在线体验
- 环境地址:<https://demo.jumpserver.org/>
## Quickstart
| :warning: 注意 |
|:-----------------------------|
| 该环境仅作体验目的使用,我们会定时清理、重置数据! |
| 请勿修改体验环境用户的密码! |
| 请勿在环境中添加业务生产环境地址、用户名密码等敏感信息! |
Prepare a clean Linux Server ( 64 bit, >= 4c8g )
## 快速开始
```sh
curl -sSL https://github.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash
```
- [极速安装](https://docs.jumpserver.org/zh/master/install/setup_by_fast/)
- [手动安装](https://github.com/jumpserver/installer)
- [产品文档](https://docs.jumpserver.org)
- [知识库](https://kb.fit2cloud.com/categories/jumpserver)
Access JumpServer in your browser at `http://your-jumpserver-ip/`
- Username: `admin`
- Password: `ChangeMe`
## 案例研究
[![JumpServer Quickstart](https://github.com/user-attachments/assets/0f32f52b-9935-485e-8534-336c63389612)](https://www.youtube.com/watch?v=UlGYRbKrpgY "JumpServer Quickstart")
- [腾讯海外游戏基于JumpServer构建游戏安全运营能力](https://blog.fit2cloud.com/?p=3704)
- [万华化学通过JumpServer管理全球化分布式IT资产并且实现与云管平台的联动](https://blog.fit2cloud.com/?p=3504)
- [雪花啤酒JumpServer堡垒机使用体会](https://blog.fit2cloud.com/?p=3412)
- [顺丰科技JumpServer 堡垒机护航顺丰科技超大规模资产安全运维](https://blog.fit2cloud.com/?p=1147)
- [沐瞳游戏通过JumpServer管控多项目分布式资产](https://blog.fit2cloud.com/?p=3213)
- [携程JumpServer 堡垒机部署与运营实战](https://blog.fit2cloud.com/?p=851)
- [大智慧JumpServer 堡垒机让“大智慧”的混合 IT 运维更智慧](https://blog.fit2cloud.com/?p=882)
- [小红书JumpServer 堡垒机大规模资产跨版本迁移之路](https://blog.fit2cloud.com/?p=516)
- [中手游JumpServer堡垒机助力中手游提升多云环境下安全运维能力](https://blog.fit2cloud.com/?p=732)
- [中通快递JumpServer主机安全运维实践](https://blog.fit2cloud.com/?p=708)
- [东方明珠JumpServer高效管控异构化、分布式云端资产](https://blog.fit2cloud.com/?p=687)
- [江苏农信JumpServer堡垒机助力行业云安全运维](https://blog.fit2cloud.com/?p=666)
## Screenshots
<table style="border-collapse: collapse; border: 1px solid black;">
<tr>
<td style="padding: 5px;background-color:#fff;"><img src= "https://github.com/jumpserver/jumpserver/assets/32935519/99fabe5b-0475-4a53-9116-4c370a1426c4" alt="JumpServer Console" /></td>
<td style="padding: 5px;background-color:#fff;"><img src= "https://github.com/user-attachments/assets/7c1f81af-37e8-4f07-8ac9-182895e1062e" alt="JumpServer PAM" /></td>    
</tr>
<tr>
<td style="padding: 5px;background-color:#fff;"><img src= "https://github.com/jumpserver/jumpserver/assets/32935519/a424d731-1c70-4108-a7d8-5bbf387dda9a" alt="JumpServer Audits" /></td>
<td style="padding: 5px;background-color:#fff;"><img src= "https://github.com/jumpserver/jumpserver/assets/32935519/393d2c27-a2d0-4dea-882d-00ed509e00c9" alt="JumpServer Workbench" /></td>
</tr>
<tr>
<td style="padding: 5px;background-color:#fff;"><img src= "https://github.com/user-attachments/assets/eaa41f66-8cc8-4f01-a001-0d258501f1c9" alt="JumpServer RBAC" /></td>     
<td style="padding: 5px;background-color:#fff;"><img src= "https://github.com/jumpserver/jumpserver/assets/32935519/3a2611cd-8902-49b8-b82b-2a6dac851f3e" alt="JumpServer Settings" /></td>
</tr>
<tr>
<td style="padding: 5px;background-color:#fff;"><img src= "https://github.com/jumpserver/jumpserver/assets/32935519/1e236093-31f7-4563-8eb1-e36d865f1568" alt="JumpServer SSH" /></td>
<td style="padding: 5px;background-color:#fff;"><img src= "https://github.com/jumpserver/jumpserver/assets/32935519/69373a82-f7ab-41e8-b763-bbad2ba52167" alt="JumpServer RDP" /></td>
</tr>
<tr>
<td style="padding: 5px;background-color:#fff;"><img src= "https://github.com/jumpserver/jumpserver/assets/32935519/5bed98c6-cbe8-4073-9597-d53c69dc3957" alt="JumpServer K8s" /></td>
<td style="padding: 5px;background-color:#fff;"><img src= "https://github.com/jumpserver/jumpserver/assets/32935519/b80ad654-548f-42bc-ba3d-c1cfdf1b46d6" alt="JumpServer DB" /></td>
</tr>
</table>
## 社区
## Components
如果您在使用过程中有任何疑问或对建议,欢迎提交 [GitHub Issue](https://github.com/jumpserver/jumpserver/issues/new/choose)
或加入到我们的社区当中进行进一步交流沟通。
JumpServer consists of multiple key components, which collectively form the functional framework of JumpServer, providing users with comprehensive capabilities for operations management and security control.
### 微信交流群
| Project | Status | Description |
|--------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|
| [Lina](https://github.com/jumpserver/lina) | <a href="https://github.com/jumpserver/lina/releases"><img alt="Lina release" src="https://img.shields.io/github/release/jumpserver/lina.svg" /></a> | JumpServer Web UI |
| [Luna](https://github.com/jumpserver/luna) | <a href="https://github.com/jumpserver/luna/releases"><img alt="Luna release" src="https://img.shields.io/github/release/jumpserver/luna.svg" /></a> | JumpServer Web Terminal |
| [KoKo](https://github.com/jumpserver/koko) | <a href="https://github.com/jumpserver/koko/releases"><img alt="Koko release" src="https://img.shields.io/github/release/jumpserver/koko.svg" /></a> | JumpServer Character Protocol Connector |
| [Lion](https://github.com/jumpserver/lion) | <a href="https://github.com/jumpserver/lion/releases"><img alt="Lion release" src="https://img.shields.io/github/release/jumpserver/lion.svg" /></a> | JumpServer Graphical Protocol Connector |
| [Chen](https://github.com/jumpserver/chen) | <a href="https://github.com/jumpserver/chen/releases"><img alt="Chen release" src="https://img.shields.io/github/release/jumpserver/chen.svg" /> | JumpServer Web DB
| [Client](https://github.com/jumpserver/clients) | <a href="https://github.com/jumpserver/clients/releases"><img alt="Clients release" src="https://img.shields.io/github/release/jumpserver/clients.svg" /> | JumpServer Client |
| [Tinker](https://github.com/jumpserver/tinker) | <img alt="Tinker" src="https://img.shields.io/badge/release-private-red" /> | JumpServer Remote Application Connector (Windows) |
| [Panda](https://github.com/jumpserver/Panda) | <img alt="Panda" src="https://img.shields.io/badge/release-private-red" /> | JumpServer EE Remote Application Connector (Linux) |
| [Razor](https://github.com/jumpserver/razor) | <img alt="Chen" src="https://img.shields.io/badge/release-private-red" /> | JumpServer EE RDP Proxy Connector |
| [Magnus](https://github.com/jumpserver/magnus) | <img alt="Magnus" src="https://img.shields.io/badge/release-private-red" /> | JumpServer EE Database Proxy Connector |
| [Nec](https://github.com/jumpserver/nec) | <img alt="Nec" src="https://img.shields.io/badge/release-private-red" /> | JumpServer EE VNC Proxy Connector |
| [Facelive](https://github.com/jumpserver/facelive) | <img alt="Facelive" src="https://img.shields.io/badge/release-private-red" /> | JumpServer EE Facial Recognition |
<img src="https://download.jumpserver.org/images/wecom-group.jpeg" alt="微信群二维码" width="200"/>
## Third-party projects
- [jumpserver-grafana-dashboard](https://github.com/acerrah/jumpserver-grafana-dashboard) JumpServer with grafana dashboard
### 参与贡献
## Contributing
欢迎提交 PR 参与贡献。感谢以下贡献者,他们让 JumpServer 变的越来越好。
Welcome to submit PR to contribute. Please refer to [CONTRIBUTING.md][contributing-link] for guidelines.
<a href="https://github.com/jumpserver/jumpserver/graphs/contributors"><img src="https://opencollective.com/jumpserver/contributors.svg?width=890&button=false" /></a>
## License
## 组件项目
Copyright (c) 2014-2025 FIT2CLOUD, All rights reserved.
| 项目 | 状态 | 描述 |
|--------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------|
| [Lina](https://github.com/jumpserver/lina) | <a href="https://github.com/jumpserver/lina/releases"><img alt="Lina release" src="https://img.shields.io/github/release/jumpserver/lina.svg" /></a> | JumpServer Web UI 项目 |
| [Luna](https://github.com/jumpserver/luna) | <a href="https://github.com/jumpserver/luna/releases"><img alt="Luna release" src="https://img.shields.io/github/release/jumpserver/luna.svg" /></a> | JumpServer Web Terminal 项目 |
| [KoKo](https://github.com/jumpserver/koko) | <a href="https://github.com/jumpserver/koko/releases"><img alt="Koko release" src="https://img.shields.io/github/release/jumpserver/koko.svg" /></a> | JumpServer 字符协议 Connector 项目,替代原来 Python 版本的 [Coco](https://github.com/jumpserver/coco) |
| [Lion](https://github.com/jumpserver/lion-release) | <a href="https://github.com/jumpserver/lion-release/releases"><img alt="Lion release" src="https://img.shields.io/github/release/jumpserver/lion-release.svg" /></a> | JumpServer 图形协议 Connector 项目,依赖 [Apache Guacamole](https://guacamole.apache.org/) |
| [Magnus](https://github.com/jumpserver/magnus-release) | <a href="https://github.com/jumpserver/magnus-release/releases"><img alt="Magnus release" src="https://img.shields.io/github/release/jumpserver/magnus-release.svg" /> | JumpServer 数据库代理 Connector 项目 |
| [Clients](https://github.com/jumpserver/clients) | <a href="https://github.com/jumpserver/clients/releases"><img alt="Clients release" src="https://img.shields.io/github/release/jumpserver/clients.svg" /> | JumpServer 客户端 项目 |
| [Installer](https://github.com/jumpserver/installer) | <a href="https://github.com/jumpserver/installer/releases"><img alt="Installer release" src="https://img.shields.io/github/release/jumpserver/installer.svg" /> | JumpServer 安装包 项目 |
## 安全说明
JumpServer是一款安全产品请参考 [基本安全建议](https://docs.jumpserver.org/zh/master/install/install_security/)
进行安装部署。如果您发现安全相关问题,请直接联系我们:
- 邮箱support@fit2cloud.com
- 电话400-052-0755
## 致谢
- [Apache Guacamole](https://guacamole.apache.org/) Web 页面连接 RDP、SSH、VNC 等协议资产JumpServer Lion 组件使用到该项目;
- [OmniDB](https://omnidb.org/) Web 页面连接使用数据库JumpServer Web 数据库组件使用到该项目。
## License & Copyright
Copyright (c) 2014-2023 飞致云 FIT2CLOUD, All rights reserved.
Licensed under The GNU General Public License version 3 (GPLv3) (the "License"); you may not use this file except in
compliance with the License. You may obtain a copy of the License at
Licensed under The GNU General Public License version 3 (GPLv3) (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.gnu.org/licenses/gpl-3.0.html
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "
AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
language governing permissions and limitations under the License.
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an " AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
<!-- JumpServer official link -->
[docs-link]: https://jumpserver.com/docs
[discord-link]: https://discord.com/invite/W6vYXmAQG2
[deepwiki-link]: https://deepwiki.com/jumpserver/jumpserver/
[contributing-link]: https://github.com/jumpserver/jumpserver/blob/dev/CONTRIBUTING.md
<!-- JumpServer Other link-->
[license-link]: https://www.gnu.org/licenses/gpl-3.0.html
[docker-link]: https://hub.docker.com/u/jumpserver
[github-release-link]: https://github.com/jumpserver/jumpserver/releases/latest
[github-stars-link]: https://github.com/jumpserver/jumpserver
[github-issues-link]: https://github.com/jumpserver/jumpserver/issues
<!-- Shield link-->
[docs-shield]: https://img.shields.io/badge/documentation-148F76
[github-release-shield]: https://img.shields.io/github/v/release/jumpserver/jumpserver
[github-stars-shield]: https://img.shields.io/github/stars/jumpserver/jumpserver?color=%231890FF&style=flat-square   
[docker-shield]: https://img.shields.io/docker/pulls/jumpserver/jms_all.svg
[license-shield]: https://img.shields.io/github/license/jumpserver/jumpserver
[deepwiki-shield]: https://img.shields.io/badge/deepwiki-devin?color=blue
[discord-shield]: https://img.shields.io/discord/1194233267294052363?style=flat&logo=discord&logoColor=%23f5f5f5&labelColor=%235462eb&color=%235462eb

View File

@@ -1,94 +0,0 @@
<p align="center"><a href="https://jumpserver.org"><img src="https://download.jumpserver.org/images/jumpserver-logo.svg" alt="JumpServer" width="300" /></a></p>
<h3 align="center">Open Source Bastion Host</h3>
<p align="center">
<a href="https://www.gnu.org/licenses/gpl-3.0.html"><img src="https://img.shields.io/github/license/jumpserver/jumpserver" alt="License: GPLv3"></a>
<a href="https://shields.io/github/downloads/jumpserver/jumpserver/total"><img src="https://shields.io/github/downloads/jumpserver/jumpserver/total" alt=" release"></a>
<a href="https://hub.docker.com/u/jumpserver"><img src="https://img.shields.io/docker/pulls/jumpserver/jms_all.svg" alt="Codacy"></a>
<a href="https://github.com/jumpserver/jumpserver"><img src="https://img.shields.io/github/stars/jumpserver/jumpserver?color=%231890FF&style=flat-square" alt="Stars"></a>
</p>
JumpServer is the world's first open-source Bastion Host and is licensed under the GPLv3. It is a 4A-compliant professional operation and maintenance security audit system.
JumpServer uses Python / Django for development, follows Web 2.0 specifications, and is equipped with an industry-leading Web Terminal solution that provides a beautiful user interface and great user experience
JumpServer adopts a distributed architecture to support multi-branch deployment across multiple cross-regional areas. The central node provides APIs, and login nodes are deployed in each branch. It can be scaled horizontally without concurrency restrictions.
Change the world by taking every little step
----
### Advantages
- Open Source: huge transparency and free to access with quick installation process.
- Distributed: support large-scale concurrent access with ease.
- No Plugin required: all you need is a browser, the ultimate Web Terminal experience.
- Multi-Cloud supported: a unified system to manage assets on different clouds at the same time
- Cloud storage: audit records are stored in the cloud. Data lost no more!
- Multi-Tenant system: multiple subsidiary companies or departments access the same system simultaneously.
- Many applications supported: link to databases, windows remote applications, and Kubernetes cluster, etc.
### JumpServer Component Projects
- [Lina](https://github.com/jumpserver/lina) JumpServer Web UI
- [Luna](https://github.com/jumpserver/luna) JumpServer Web Terminal
- [KoKo](https://github.com/jumpserver/koko) JumpServer Character protocaol Connector, replace original Python Version [Coco](https://github.com/jumpserver/coco)
- [Lion](https://github.com/jumpserver/lion-release) JumpServer Graphics protocol Connectorrely on [Apache Guacamole](https://guacamole.apache.org/)
### Contribution
If you have any good ideas or helping us to fix bugs, please submit a Pull Request and accept our thanks :)
Thanks to the following contributors for making JumpServer better everyday!
<a href="https://github.com/jumpserver/jumpserver/graphs/contributors">
<img src="https://contrib.rocks/image?repo=jumpserver/jumpserver" />
</a>
<a href="https://github.com/jumpserver/koko/graphs/contributors">
<img src="https://contrib.rocks/image?repo=jumpserver/koko" />
</a>
<a href="https://github.com/jumpserver/lina/graphs/contributors">
<img src="https://contrib.rocks/image?repo=jumpserver/lina" />
</a>
<a href="https://github.com/jumpserver/luna/graphs/contributors">
<img src="https://contrib.rocks/image?repo=jumpserver/luna" />
</a>
### Thanks to
- [Apache Guacamole](https://guacamole.apache.org/) Web page connection RDP, SSH, VNC protocol equipment. JumpServer graphical connection dependent.
- [OmniDB](https://omnidb.org/) Web page connection to databases. JumpServer Web database dependent.
### JumpServer Enterprise Version
- [Apply for it](https://jinshuju.net/f/kyOYpi)
### Case Study
- [JumpServer 堡垒机护航顺丰科技超大规模资产安全运维](https://blog.fit2cloud.com/?p=1147)
- [JumpServer 堡垒机让“大智慧”的混合 IT 运维更智慧](https://blog.fit2cloud.com/?p=882)
- [携程 JumpServer 堡垒机部署与运营实战](https://blog.fit2cloud.com/?p=851)
- [小红书的JumpServer堡垒机大规模资产跨版本迁移之路](https://blog.fit2cloud.com/?p=516)
- [JumpServer堡垒机助力中手游提升多云环境下安全运维能力](https://blog.fit2cloud.com/?p=732)
- [中通快递JumpServer主机安全运维实践](https://blog.fit2cloud.com/?p=708)
- [东方明珠JumpServer高效管控异构化、分布式云端资产](https://blog.fit2cloud.com/?p=687)
- [江苏农信JumpServer堡垒机助力行业云安全运维](https://blog.fit2cloud.com/?p=666)。
### For safety instructions
JumpServer is a security product. Please refer to [Basic Security Recommendations](https://docs.jumpserver.org/zh/master/install/install_security/) for deployment and installation.
If you find a security problem, please contact us directly
- ibuler@fit2cloud.com
- support@fit2cloud.com
- 400-052-0755
### License & Copyright
Copyright (c) 2014-2022 FIT2CLOUD Tech, Inc., All rights reserved.
Licensed under The GNU General Public License version 3 (GPLv3) (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.gnu.org/licenses/gpl-3.0.htmll
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

View File

@@ -5,8 +5,7 @@ JumpServer 是一款正在成长的安全产品, 请参考 [基本安全建议
如果你发现安全问题,请直接联系我们,我们携手让世界更好:
- ibuler@fit2cloud.com
- support@fit2cloud.com
- 400-052-0755
- support@lxware.hk
# Security Policy
@@ -16,6 +15,5 @@ JumpServer is a security product, The installation and development should follow
All security bugs should be reported to the contact as below:
- ibuler@fit2cloud.com
- support@fit2cloud.com
- 400-052-0755
- support@lxware.hk

View File

@@ -1,3 +1,6 @@
from .account import *
from .application import *
from .pam_dashboard import *
from .task import *
from .template import *
from .virtual import *

View File

@@ -1,34 +1,64 @@
from django.db import transaction
from django.shortcuts import get_object_or_404
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers as drf_serializers
from rest_framework.decorators import action
from rest_framework.generics import ListAPIView
from rest_framework.generics import ListAPIView, CreateAPIView
from rest_framework.response import Response
from rest_framework.status import HTTP_200_OK, HTTP_400_BAD_REQUEST
from accounts import serializers
from accounts.filters import AccountFilterSet
from accounts.models import Account
from assets.models import Asset
from common.permissions import UserConfirmation, ConfirmType
from common.views.mixins import RecordViewLogMixin
from accounts.const import ChangeSecretRecordStatusChoice
from accounts.filters import AccountFilterSet, NodeFilterBackend
from accounts.mixins import AccountRecordViewLogMixin
from accounts.models import Account, ChangeSecretRecord
from assets.const.gpt import create_or_update_chatx_resources
from assets.models import Asset, Node
from authentication.permissions import UserConfirmation, ConfirmType
from common.api.mixin import ExtraFilterFieldsMixin
from common.drf.filters import AttrRulesFilterBackend
from common.permissions import IsValidUser
from common.utils import lazyproperty, get_logger
from orgs.mixins.api import OrgBulkModelViewSet
from orgs.utils import tmp_to_root_org
from rbac.permissions import RBACPermission
logger = get_logger(__file__)
__all__ = [
'AccountViewSet', 'AccountSecretsViewSet',
'AccountHistoriesSecretAPI'
'AccountHistoriesSecretAPI', 'AssetAccountBulkCreateApi',
]
class AccountViewSet(OrgBulkModelViewSet):
model = Account
search_fields = ('username', 'asset__address', 'name')
search_fields = ('username', 'name', 'asset__name', 'asset__address', 'comment')
extra_filter_backends = [AttrRulesFilterBackend, NodeFilterBackend]
filterset_class = AccountFilterSet
serializer_classes = {
'default': serializers.AccountSerializer,
'retrieve': serializers.AccountDetailSerializer,
}
rbac_perms = {
'partial_update': ['accounts.change_account'],
'su_from_accounts': 'accounts.view_account',
'clear_secret': 'accounts.change_account',
'move_to_assets': 'accounts.delete_account',
'copy_to_assets': 'accounts.add_account',
'chat': 'accounts.view_account',
}
export_as_zip = True
def get_queryset(self):
queryset = super().get_queryset()
asset_id = self.request.query_params.get('asset') or self.request.query_params.get('asset_id')
if not asset_id:
return queryset
asset = get_object_or_404(Asset, pk=asset_id)
queryset = asset.all_accounts.all()
return queryset
@action(methods=['get'], detail=False, url_path='su-from-accounts')
def su_from_accounts(self, request, *args, **kwargs):
@@ -42,13 +72,99 @@ class AccountViewSet(OrgBulkModelViewSet):
asset = get_object_or_404(Asset, pk=asset_id)
accounts = asset.accounts.all()
else:
accounts = []
accounts = Account.objects.none()
accounts = self.filter_queryset(accounts)
serializer = serializers.AccountSerializer(accounts, many=True)
return Response(data=serializer.data)
@action(
methods=['post'], detail=False, url_path='username-suggestions',
permission_classes=[IsValidUser]
)
def username_suggestions(self, request, *args, **kwargs):
raw_asset_ids = request.data.get('assets', [])
node_ids = request.data.get('nodes', [])
username = request.data.get('username', '')
class AccountSecretsViewSet(RecordViewLogMixin, AccountViewSet):
asset_ids = set(raw_asset_ids)
if node_ids:
nodes = Node.objects.filter(id__in=node_ids)
node_asset_qs = Node.get_nodes_all_assets(*nodes).values_list('id', flat=True)
asset_ids |= {str(u) for u in node_asset_qs}
if asset_ids:
through = Asset.directory_services.through
ds_qs = through.objects.filter(asset_id__in=asset_ids) \
.values_list('directoryservice_id', flat=True)
asset_ids |= {str(u) for u in ds_qs}
accounts = Account.objects.filter(asset_id__in=list(asset_ids))
else:
accounts = Account.objects.all()
if username:
accounts = accounts.filter(username__icontains=username)
usernames = list(accounts.values_list('username', flat=True).distinct()[:10])
usernames.sort()
common = [i for i in usernames if i in usernames if i.lower() in ['root', 'admin', 'administrator']]
others = [i for i in usernames if i not in common]
usernames = common + others
return Response(data=usernames)
@action(methods=['patch'], detail=False, url_path='clear-secret')
def clear_secret(self, request, *args, **kwargs):
account_ids = request.data.get('account_ids', [])
self.model.objects.filter(id__in=account_ids).update(secret=None)
return Response(status=HTTP_200_OK)
def _copy_or_move_to_assets(self, request, move=False):
account = self.get_object()
asset_ids = request.data.get('assets', [])
assets = Asset.objects.filter(id__in=asset_ids)
field_names = [
'name', 'username', 'secret_type', 'secret',
'privileged', 'is_active', 'source', 'source_id', 'comment'
]
account_data = {field: getattr(account, field) for field in field_names}
creation_results = {}
success_count = 0
for asset in assets:
account_data['asset'] = asset
creation_results[asset] = {'state': 'created'}
try:
with transaction.atomic():
self.model.objects.create(**account_data)
success_count += 1
except Exception as e:
logger.debug(f'{"Move" if move else "Copy"} to assets error: {e}')
creation_results[asset] = {'error': _('Account already exists'), 'state': 'error'}
results = [{'asset': str(asset), **res} for asset, res in creation_results.items()]
if move and success_count > 0:
account.delete()
return Response(results, status=HTTP_200_OK)
@action(methods=['post'], detail=True, url_path='move-to-assets')
def move_to_assets(self, request, *args, **kwargs):
return self._copy_or_move_to_assets(request, move=True)
@action(methods=['post'], detail=True, url_path='copy-to-assets')
def copy_to_assets(self, request, *args, **kwargs):
return self._copy_or_move_to_assets(request, move=False)
@action(methods=['get'], detail=False, url_path='chat')
def chat(self, request, *args, **kwargs):
with tmp_to_root_org():
__, account = create_or_update_chatx_resources()
serializer = self.get_serializer(account)
return Response(serializer.data)
class AccountSecretsViewSet(AccountRecordViewLogMixin, AccountViewSet):
"""
因为可能要导出所有账号,所以单独建立了一个 viewset
"""
@@ -63,7 +179,75 @@ class AccountSecretsViewSet(RecordViewLogMixin, AccountViewSet):
}
class AccountHistoriesSecretAPI(RecordViewLogMixin, ListAPIView):
class AssetAccountBulkCreateApi(CreateAPIView):
serializer_class = serializers.AssetAccountBulkSerializer
rbac_perms = {
'POST': 'accounts.add_account',
}
@staticmethod
def get_all_assets(base_payload: dict):
nodes = base_payload.pop('nodes', [])
asset_ids = base_payload.pop('assets', [])
nodes = Node.objects.filter(id__in=nodes).only('id', 'key')
node_asset_ids = Node.get_nodes_all_assets(*nodes).values_list('id', flat=True)
asset_ids = set(asset_ids + list(node_asset_ids))
return Asset.objects.filter(id__in=asset_ids)
def create(self, request, *args, **kwargs):
if hasattr(request.data, "copy"):
base_payload = request.data.copy()
else:
base_payload = dict(request.data)
templates = base_payload.pop("template", None)
assets = self.get_all_assets(base_payload)
if not assets.exists():
error = _("No valid assets found for account creation.")
return Response(
data={
"detail": error,
"code": "no_valid_assets"
},
status=HTTP_400_BAD_REQUEST
)
result = []
errors = []
def handle_one(_payload):
try:
ser = self.get_serializer(data=_payload)
ser.is_valid(raise_exception=True)
data = ser.bulk_create(ser.validated_data, assets)
if isinstance(data, (list, tuple)):
result.extend(data)
else:
result.append(data)
except drf_serializers.ValidationError as e:
errors.extend(list(e.detail))
except Exception as e:
errors.extend([str(e)])
if not templates:
handle_one(base_payload)
else:
if not isinstance(templates, (list, tuple)):
templates = [templates]
for tpl in templates:
payload = dict(base_payload)
payload["template"] = tpl
handle_one(payload)
if errors:
raise drf_serializers.ValidationError(errors)
out_ser = serializers.AssetAccountBulkSerializerResultSerializer(result, many=True)
return Response(data=out_ser.data, status=HTTP_200_OK)
class AccountHistoriesSecretAPI(ExtraFilterFieldsMixin, AccountRecordViewLogMixin, ListAPIView):
model = Account.history.model
serializer_class = serializers.AccountHistorySerializer
http_method_names = ['get', 'options']
@@ -71,18 +255,60 @@ class AccountHistoriesSecretAPI(RecordViewLogMixin, ListAPIView):
rbac_perms = {
'GET': 'accounts.view_accountsecret',
}
queryset = Account.history.model.objects.none()
def get_object(self):
@lazyproperty
def account(self) -> Account:
return get_object_or_404(Account, pk=self.kwargs.get('pk'))
def get_queryset(self):
account = self.get_object()
histories = account.history.all()
last_history = account.history.first()
if not last_history:
return histories
def get_object(self):
return self.account
if account.secret == last_history.secret \
and account.secret_type == last_history.secret_type:
histories = histories.exclude(history_id=last_history.history_id)
@lazyproperty
def latest_history(self):
return self.account.history.first()
@property
def latest_change_secret_record(self) -> ChangeSecretRecord:
return self.account.changesecretrecords.filter(
status=ChangeSecretRecordStatusChoice.pending
).order_by('-date_created').first()
@staticmethod
def filter_spm_queryset(resource_ids, queryset):
return queryset.filter(history_id__in=resource_ids)
def get_queryset(self):
account = self.account
histories = account.history.all()
latest_history = self.latest_history
if not latest_history:
return histories
if account.secret != latest_history.secret:
return histories
if account.secret_type != latest_history.secret_type:
return histories
histories = histories.exclude(history_id=latest_history.history_id)
return histories
def filter_queryset(self, queryset):
queryset = super().filter_queryset(queryset)
queryset = list(queryset)
latest_history = self.latest_history
if not latest_history:
return queryset
latest_change_secret_record = self.latest_change_secret_record
if not latest_change_secret_record:
return queryset
if latest_change_secret_record.date_created > latest_history.history_date:
temp_history = self.model(
secret=latest_change_secret_record.new_secret,
secret_type=self.account.secret_type,
version=latest_history.version,
history_date=latest_change_secret_record.date_created,
)
queryset = [temp_history] + queryset
return queryset

View File

@@ -0,0 +1,84 @@
import os
from django.conf import settings
from django.utils.translation import gettext_lazy as _, get_language
from rest_framework.decorators import action
from rest_framework.response import Response
from accounts import serializers
from accounts.models import IntegrationApplication
from audits.models import IntegrationApplicationLog
from authentication.permissions import UserConfirmation, ConfirmType
from common.exceptions import JMSException
from common.permissions import IsValidUser
from common.utils import get_request_ip
from orgs.mixins.api import OrgBulkModelViewSet
from rbac.permissions import RBACPermission
class IntegrationApplicationViewSet(OrgBulkModelViewSet):
model = IntegrationApplication
search_fields = ('name', 'comment')
serializer_classes = {
'default': serializers.IntegrationApplicationSerializer,
'get_account_secret': serializers.IntegrationAccountSecretSerializer
}
rbac_perms = {
'get_once_secret': 'accounts.change_integrationapplication',
'get_account_secret': 'accounts.view_integrationapplication',
'get_sdks_info': 'accounts.view_integrationapplication'
}
def read_file(self, path):
if os.path.exists(path):
with open(path, 'r', encoding='utf-8') as file:
return file.read()
return ''
@action(
['GET'], detail=False, url_path='sdks',
)
def get_sdks_info(self, request, *args, **kwargs):
code_suffix_mapper = {
'python': 'py',
'java': 'java',
'go': 'go',
'node': 'js',
'curl': 'sh',
}
sdk_language = request.query_params.get('language', 'python')
sdk_path = os.path.join(settings.APPS_DIR, 'accounts', 'demos', sdk_language)
readme_path = os.path.join(sdk_path, f'README.{get_language()}.md')
demo_path = os.path.join(sdk_path, f'demo.{code_suffix_mapper[sdk_language]}')
readme_content = self.read_file(readme_path)
demo_content = self.read_file(demo_path)
return Response(data={'readme': readme_content, 'code': demo_content})
@action(
['GET'], detail=True, url_path='secret',
permission_classes=[RBACPermission, UserConfirmation.require(ConfirmType.MFA)]
)
def get_once_secret(self, request, *args, **kwargs):
instance = self.get_object()
return Response(data={'id': instance.id, 'secret': instance.secret})
@action(['GET'], detail=False, url_path='account-secret',
permission_classes=[RBACPermission])
def get_account_secret(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.query_params)
if not serializer.is_valid():
return Response({'error': serializer.errors}, status=400)
service = request.user
account = service.get_account(**serializer.data)
if not account:
msg = _('Account not found')
raise JMSException(code='Not found', detail='%s' % msg)
asset = account.asset
IntegrationApplicationLog.objects.create(
remote_addr=get_request_ip(request), service=service.name, service_id=service.id,
account=f'{account.name}({account.username})', asset=f'{asset.name}({asset.address})',
)
return Response(data={'id': request.user.id, 'secret': account.secret})

View File

@@ -0,0 +1,130 @@
# -*- coding: utf-8 -*-
#
from collections import defaultdict
from django.db.models import Count, F, Q
from django.http.response import JsonResponse
from rest_framework.views import APIView
from accounts.models import (
Account, GatherAccountsAutomation,
PushAccountAutomation, BackupAccountAutomation,
AccountRisk, IntegrationApplication, ChangeSecretAutomation
)
from assets.const import AllTypes
from common.utils.timezone import local_monday
__all__ = ['PamDashboardApi']
class PamDashboardApi(APIView):
http_method_names = ['get']
rbac_perms = {
'GET': 'rbac.view_pam',
}
@staticmethod
def get_type_to_accounts():
result = Account.objects.annotate(type=F('asset__platform__type')) \
.values('type').order_by('type').annotate(total=Count(1))
all_types_dict = dict(AllTypes.choices())
return [
{**i, 'label': all_types_dict.get(i['type'], i['type'])}
for i in result
]
@staticmethod
def get_account_risk_data(_all, query_params):
agg_map = {
'total_long_time_no_login_accounts': ('long_time_no_login_count', Q(risk='long_time_no_login')),
'total_new_found_accounts': ('new_found_count', Q(risk='new_found')),
'total_groups_changed_accounts': ('groups_changed_count', Q(risk='groups_changed')),
'total_sudoers_changed_accounts': ('sudoers_changed_count', Q(risk='sudoers_changed')),
'total_authorized_keys_changed_accounts': (
'authorized_keys_changed_count', Q(risk='authorized_keys_changed')),
'total_account_deleted_accounts': ('account_deleted_count', Q(risk='account_deleted')),
'total_password_expired_accounts': ('password_expired_count', Q(risk='password_expired')),
'total_long_time_password_accounts': ('long_time_password_count', Q(risk='long_time_password')),
'total_weak_password_accounts': ('weak_password_count', Q(risk='weak_password')),
'total_leaked_password_accounts': ('leaked_password_count', Q(risk='leaked_password')),
'total_repeated_password_accounts': ('repeated_password_count', Q(risk='repeated_password')),
}
aggregations = {
agg_key: Count('id', distinct=True, filter=agg_filter)
for param_key, (agg_key, agg_filter) in agg_map.items()
if _all or query_params.get(param_key)
}
data = {}
if aggregations:
account_stats = AccountRisk.objects.aggregate(**aggregations)
data = {param_key: account_stats.get(agg_key) for param_key, (agg_key, _) in agg_map.items() if
agg_key in account_stats}
return data
@staticmethod
def get_account_data(_all, query_params):
agg_map = {
'total_accounts': ('total_count', Count('id')),
'total_privileged_accounts': ('privileged_count', Count('id', filter=Q(privileged=True))),
'total_connectivity_ok_accounts': ('connectivity_ok_count', Count('id', filter=Q(connectivity='ok'))),
'total_secret_reset_accounts': ('secret_reset_count', Count('id', filter=Q(secret_reset=True))),
'total_valid_accounts': ('valid_count', Count('id', filter=Q(is_active=True))),
'total_week_add_accounts': ('week_add_count', Count('id', filter=Q(date_created__gte=local_monday()))),
}
aggregations = {
agg_key: agg_expr
for param_key, (agg_key, agg_expr) in agg_map.items()
if _all or query_params.get(param_key)
}
data = {}
account_stats = Account.objects.aggregate(**aggregations)
for param_key, (agg_key, __) in agg_map.items():
if agg_key in account_stats:
data[param_key] = account_stats[agg_key]
if _all or query_params.get('total_ordinary_accounts'):
if 'total_count' in account_stats and 'privileged_count' in account_stats:
data['total_ordinary_accounts'] = \
account_stats['total_count'] - account_stats['privileged_count']
return data
@staticmethod
def get_automation_counts(_all, query_params):
automation_counts = defaultdict(int)
automation_models = {
'total_count_change_secret_automation': ChangeSecretAutomation,
'total_count_gathered_account_automation': GatherAccountsAutomation,
'total_count_push_account_automation': PushAccountAutomation,
'total_count_backup_account_automation': BackupAccountAutomation,
'total_count_integration_application': IntegrationApplication,
}
for param_key, model in automation_models.items():
if _all or query_params.get(param_key):
automation_counts[param_key] = model.objects.count()
return automation_counts
def get(self, request, *args, **kwargs):
query_params = self.request.query_params
_all = query_params.get('all')
data = {}
data.update(self.get_account_data(_all, query_params))
data.update(self.get_account_risk_data(_all, query_params))
data.update(self.get_automation_counts(_all, query_params))
if _all or query_params.get('total_count_type_to_accounts'):
data.update({
'total_count_type_to_accounts': self.get_type_to_accounts(),
})
return JsonResponse(data, status=200)

View File

@@ -1,9 +1,13 @@
from django.db.models import Q
from rest_framework.generics import CreateAPIView
from rest_framework.response import Response
from accounts import serializers
from accounts.tasks import verify_accounts_connectivity_task, push_accounts_to_assets_task
from assets.exceptions import NotSupportedTemporarilyError
from accounts.models import Account
from accounts.permissions import AccountTaskActionPermission
from accounts.tasks import (
remove_accounts_task, verify_accounts_connectivity_task, push_accounts_to_assets_task
)
from authentication.permissions import UserConfirmation, ConfirmType
__all__ = [
'AccountsTaskCreateAPI',
@@ -12,37 +16,48 @@ __all__ = [
class AccountsTaskCreateAPI(CreateAPIView):
serializer_class = serializers.AccountTaskSerializer
permission_classes = (AccountTaskActionPermission,)
def check_permissions(self, request):
act = request.data.get('action')
if act == 'push':
code = 'accounts.push_account'
else:
code = 'accounts.verify_account'
return request.user.has_perm(code)
def get_permissions(self):
act = self.request.data.get('action')
if act == 'remove':
self.permission_classes = [
AccountTaskActionPermission,
UserConfirmation.require(ConfirmType.PASSWORD)
]
return super().get_permissions()
@staticmethod
def get_account_ids(data, action):
account_type = 'gather_accounts' if action == 'remove' else 'accounts'
accounts = data.get(account_type, [])
account_ids = [str(a.id) for a in accounts]
if action == 'remove':
return account_ids
assets = data.get('assets', [])
asset_ids = [str(a.id) for a in assets]
ids = Account.objects.filter(
Q(id__in=account_ids) | Q(asset_id__in=asset_ids)
).distinct().values_list('id', flat=True)
return [str(_id) for _id in ids]
def perform_create(self, serializer):
data = serializer.validated_data
accounts = data.get('accounts', [])
account_ids = [str(a.id) for a in accounts]
action = data['action']
ids = self.get_account_ids(data, action)
if data['action'] == 'push':
task = push_accounts_to_assets_task.delay(account_ids)
if action == 'push':
task = push_accounts_to_assets_task.delay(ids, data.get('params'))
elif action == 'remove':
task = remove_accounts_task.delay(ids)
elif action == 'verify':
task = verify_accounts_connectivity_task.delay(ids)
else:
account = accounts[0]
asset = account.asset
if not asset.auto_info['ansible_enabled'] or \
not asset.auto_info['ping_enabled']:
raise NotSupportedTemporarilyError()
task = verify_accounts_connectivity_task.delay(account_ids)
raise ValueError(f"Invalid action: {action}")
data = getattr(serializer, '_data', {})
data["task"] = task.id
setattr(serializer, '_data', data)
return task
def get_exception_handler(self):
def handler(e, context):
return Response({"error": str(e)}, status=400)
return handler

View File

@@ -1,22 +1,72 @@
from rbac.permissions import RBACPermission
from common.permissions import UserConfirmation, ConfirmType
from django_filters import rest_framework as drf_filters
from rest_framework import status
from rest_framework.decorators import action
from rest_framework.response import Response
from common.views.mixins import RecordViewLogMixin
from orgs.mixins.api import OrgBulkModelViewSet
from accounts import serializers
from accounts.mixins import AccountRecordViewLogMixin
from accounts.models import AccountTemplate
from accounts.tasks import template_sync_related_accounts
from assets.const import Protocol
from authentication.permissions import UserConfirmation, ConfirmType
from common.drf.filters import BaseFilterSet
from orgs.mixins.api import OrgBulkModelViewSet
from rbac.permissions import RBACPermission
class AccountTemplateFilterSet(BaseFilterSet):
protocols = drf_filters.CharFilter(method='filter_protocols')
class Meta:
model = AccountTemplate
fields = ('username', 'name')
@staticmethod
def filter_protocols(queryset, name, value):
secret_types = set()
protocols = value.split(',')
protocol_secret_type_map = Protocol.settings()
for p in protocols:
if p not in protocol_secret_type_map:
continue
_st = protocol_secret_type_map[p].get('secret_types', [])
secret_types.update(_st)
if not secret_types:
secret_types = ['password']
queryset = queryset.filter(secret_type__in=secret_types)
return queryset
class AccountTemplateViewSet(OrgBulkModelViewSet):
model = AccountTemplate
filterset_fields = ("username", 'name')
filterset_class = AccountTemplateFilterSet
search_fields = ('username', 'name')
serializer_classes = {
'default': serializers.AccountTemplateSerializer
'default': serializers.AccountTemplateSerializer,
'retrieve': serializers.AccountDetailTemplateSerializer,
}
rbac_perms = {
'su_from_account_templates': 'accounts.view_accounttemplate',
'sync_related_accounts': 'accounts.change_account',
}
@action(methods=['get'], detail=False, url_path='su-from-account-templates')
def su_from_account_templates(self, request, *args, **kwargs):
pk = request.query_params.get('template_id')
templates = AccountTemplate.get_su_from_account_templates(pk)
templates = self.filter_queryset(templates)
serializer = self.get_serializer(templates, many=True)
return Response(data=serializer.data)
class AccountTemplateSecretsViewSet(RecordViewLogMixin, AccountTemplateViewSet):
@action(methods=['patch'], detail=True, url_path='sync-related-accounts')
def sync_related_accounts(self, request, *args, **kwargs):
instance = self.get_object()
user_id = str(request.user.id)
task = template_sync_related_accounts.delay(str(instance.id), user_id)
return Response({'task': task.id}, status=status.HTTP_200_OK)
class AccountTemplateSecretsViewSet(AccountRecordViewLogMixin, AccountTemplateViewSet):
serializer_classes = {
'default': serializers.AccountTemplateSecretSerializer,
}

View File

@@ -0,0 +1,22 @@
from django.shortcuts import get_object_or_404
from accounts.models import VirtualAccount
from accounts.serializers import VirtualAccountSerializer
from common.utils import is_uuid
from orgs.mixins.api import OrgBulkModelViewSet
class VirtualAccountViewSet(OrgBulkModelViewSet):
serializer_class = VirtualAccountSerializer
search_fields = ('alias',)
filterset_fields = ('alias',)
def get_queryset(self):
if getattr(self, "swagger_fake_view", False):
return VirtualAccount.objects.none()
return VirtualAccount.get_or_init_queryset()
def get_object(self, ):
pk = self.kwargs.get('pk')
kwargs = {'pk': pk} if is_uuid(pk) else {'alias': pk}
return get_object_or_404(VirtualAccount, **kwargs)

View File

@@ -1,5 +1,7 @@
from .backup import *
from .base import *
from .change_secret import *
from .gather_accounts import *
from .change_secret_dashboard import *
from .check_account import *
from .gather_account import *
from .push_account import *

View File

@@ -1,42 +1,36 @@
# -*- coding: utf-8 -*-
#
from rest_framework import status, viewsets
from rest_framework.response import Response
from accounts import serializers
from accounts.const import AutomationTypes
from accounts.models import (
AccountBackupAutomation, AccountBackupExecution
BackupAccountAutomation
)
from accounts.tasks import execute_account_backup_task
from common.const.choices import Trigger
from orgs.mixins.api import OrgBulkModelViewSet
from .base import AutomationExecutionViewSet
__all__ = [
'AccountBackupPlanViewSet', 'AccountBackupPlanExecutionViewSet'
'BackupAccountViewSet', 'BackupAccountExecutionViewSet'
]
class AccountBackupPlanViewSet(OrgBulkModelViewSet):
model = AccountBackupAutomation
filter_fields = ('name',)
search_fields = filter_fields
ordering = ('name',)
serializer_class = serializers.AccountBackupSerializer
class BackupAccountViewSet(OrgBulkModelViewSet):
model = BackupAccountAutomation
filterset_fields = ('name',)
search_fields = filterset_fields
serializer_class = serializers.BackupAccountSerializer
class AccountBackupPlanExecutionViewSet(viewsets.ModelViewSet):
serializer_class = serializers.AccountBackupPlanExecutionSerializer
search_fields = ('trigger',)
filterset_fields = ('trigger', 'plan_id')
http_method_names = ['get', 'post', 'options']
class BackupAccountExecutionViewSet(AutomationExecutionViewSet):
rbac_perms = (
("list", "accounts.view_backupaccountexecution"),
("retrieve", "accounts.view_backupaccountexecution"),
("create", "accounts.add_backupaccountexecution"),
("report", "accounts.view_backupaccountexecution"),
)
tp = AutomationTypes.backup_account
def get_queryset(self):
queryset = AccountBackupExecution.objects.all()
queryset = super().get_queryset()
queryset = queryset.filter(type=self.tp)
return queryset
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
pid = serializer.data.get('plan')
task = execute_account_backup_task.delay(pid=str(pid), trigger=Trigger.manual)
return Response({'task': task.id}, status=status.HTTP_201_CREATED)

View File

@@ -1,8 +1,12 @@
from django.http import HttpResponse
from django.shortcuts import get_object_or_404
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from django.views.decorators.clickjacking import xframe_options_sameorigin
from rest_framework import status, mixins, viewsets
from rest_framework.decorators import action
from rest_framework.response import Response
from accounts.filters import AutomationExecutionFilterSet
from accounts.models import AutomationExecution
from accounts.tasks import execute_account_automation_task
from assets import serializers
@@ -13,15 +17,15 @@ from orgs.mixins import generics
__all__ = [
'AutomationAssetsListApi', 'AutomationRemoveAssetApi',
'AutomationAddAssetApi', 'AutomationNodeAddRemoveApi',
'AutomationExecutionViewSet',
'AutomationExecutionViewSet'
]
class AutomationAssetsListApi(generics.ListAPIView):
model = BaseAutomation
serializer_class = serializers.AutomationAssetsSerializer
filter_fields = ("name", "address")
search_fields = filter_fields
filterset_fields = ("name", "address")
search_fields = filterset_fields
def get_object(self):
pk = self.kwargs.get('pk')
@@ -35,9 +39,11 @@ class AutomationAssetsListApi(generics.ListAPIView):
return assets
class AutomationRemoveAssetApi(generics.RetrieveUpdateAPIView):
class AutomationRemoveAssetApi(generics.UpdateAPIView):
model = BaseAutomation
queryset = BaseAutomation.objects.all()
serializer_class = serializers.UpdateAssetSerializer
http_method_names = ['patch']
def update(self, request, *args, **kwargs):
instance = self.get_object()
@@ -52,9 +58,11 @@ class AutomationRemoveAssetApi(generics.RetrieveUpdateAPIView):
return Response({'msg': 'ok'})
class AutomationAddAssetApi(generics.RetrieveUpdateAPIView):
class AutomationAddAssetApi(generics.UpdateAPIView):
model = BaseAutomation
queryset = BaseAutomation.objects.all()
serializer_class = serializers.UpdateAssetSerializer
http_method_names = ['patch']
def update(self, request, *args, **kwargs):
instance = self.get_object()
@@ -68,9 +76,10 @@ class AutomationAddAssetApi(generics.RetrieveUpdateAPIView):
return Response({"error": serializer.errors})
class AutomationNodeAddRemoveApi(generics.RetrieveUpdateAPIView):
class AutomationNodeAddRemoveApi(generics.UpdateAPIView):
model = BaseAutomation
serializer_class = serializers.UpdateNodeSerializer
http_method_names = ['patch']
def update(self, request, *args, **kwargs):
action_params = ['add', 'remove']
@@ -95,10 +104,10 @@ class AutomationExecutionViewSet(
mixins.CreateModelMixin, mixins.ListModelMixin,
mixins.RetrieveModelMixin, viewsets.GenericViewSet
):
search_fields = ('trigger',)
filterset_fields = ('trigger', 'automation_id')
search_fields = ('trigger', 'automation__name')
filterset_fields = ('trigger', 'automation_id', 'automation__name')
filterset_class = AutomationExecutionFilterSet
serializer_class = serializers.AutomationExecutionSerializer
tp: str
def get_queryset(self):
@@ -113,3 +122,10 @@ class AutomationExecutionViewSet(
pid=str(automation.pk), trigger=Trigger.manual, tp=self.tp
)
return Response({'task': task.id}, status=status.HTTP_201_CREATED)
@xframe_options_sameorigin
@action(methods=['get'], detail=True, url_path='report')
def report(self, request, *args, **kwargs):
execution = self.get_object()
report = execution.manager.gen_report()
return HttpResponse(report)

View File

@@ -1,13 +1,22 @@
# -*- coding: utf-8 -*-
#
from rest_framework import mixins
from django.db.models import Max, Q, Subquery, OuterRef
from rest_framework import status, mixins
from rest_framework.decorators import action
from rest_framework.response import Response
from accounts import serializers
from accounts.const import AutomationTypes
from accounts.models import ChangeSecretAutomation, ChangeSecretRecord, AutomationExecution
from common.utils import get_object_or_none
from accounts.const import (
AutomationTypes, ChangeSecretRecordStatusChoice
)
from accounts.filters import ChangeSecretRecordFilterSet, ChangeSecretStatusFilterSet
from accounts.models import ChangeSecretAutomation, ChangeSecretRecord, Account
from accounts.tasks import execute_automation_record_task
from accounts.utils import account_secret_task_status
from authentication.permissions import UserConfirmation, ConfirmType
from common.permissions import IsValidLicense
from orgs.mixins.api import OrgBulkModelViewSet, OrgGenericViewSet
from rbac.permissions import RBACPermission
from .base import (
AutomationAssetsListApi, AutomationRemoveAssetApi, AutomationAddAssetApi,
AutomationNodeAddRemoveApi, AutomationExecutionViewSet
@@ -17,48 +26,118 @@ __all__ = [
'ChangeSecretAutomationViewSet', 'ChangeSecretRecordViewSet',
'ChangSecretExecutionViewSet', 'ChangSecretAssetsListApi',
'ChangSecretRemoveAssetApi', 'ChangSecretAddAssetApi',
'ChangSecretNodeAddRemoveApi'
'ChangSecretNodeAddRemoveApi', 'ChangeSecretStatusViewSet'
]
class ChangeSecretAutomationViewSet(OrgBulkModelViewSet):
model = ChangeSecretAutomation
filter_fields = ('name', 'secret_type', 'secret_strategy')
search_fields = filter_fields
permission_classes = [RBACPermission, IsValidLicense]
filterset_fields = ('name', 'secret_type', 'secret_strategy')
search_fields = filterset_fields
serializer_class = serializers.ChangeSecretAutomationSerializer
class ChangeSecretRecordViewSet(mixins.ListModelMixin, OrgGenericViewSet):
serializer_class = serializers.ChangeSecretRecordSerializer
filter_fields = ['asset', 'execution_id']
search_fields = ['asset__hostname']
filterset_class = ChangeSecretRecordFilterSet
permission_classes = [RBACPermission, IsValidLicense]
search_fields = ('asset__address', 'account__username')
ordering_fields = ('date_finished',)
tp = AutomationTypes.change_secret
serializer_classes = {
'default': serializers.ChangeSecretRecordSerializer,
'secret': serializers.ChangeSecretRecordViewSecretSerializer,
}
rbac_perms = {
'execute': 'accounts.add_changesecretexecution',
'secret': 'accounts.view_changesecretrecord',
'dashboard': 'accounts.view_changesecretrecord',
'ignore_fail': 'accounts.view_changesecretrecord',
}
def get_queryset(self):
return ChangeSecretRecord.objects.filter(
execution__automation__type=AutomationTypes.change_secret
)
def get_permissions(self):
if self.action == 'secret':
self.permission_classes = [
RBACPermission,
UserConfirmation.require(ConfirmType.MFA)
]
return super().get_permissions()
def filter_queryset(self, queryset):
queryset = super().filter_queryset(queryset)
eid = self.request.query_params.get('execution_id')
execution = get_object_or_none(AutomationExecution, pk=eid)
if execution:
queryset = queryset.filter(execution=execution)
if self.action == 'dashboard':
return self.get_dashboard_queryset(queryset)
return queryset
@staticmethod
def get_dashboard_queryset(queryset):
recent_dates = queryset.values('account').annotate(
max_date_finished=Max('date_finished')
)
recent_success_accounts = queryset.filter(
account=OuterRef('account'),
date_finished=Subquery(
recent_dates.filter(account=OuterRef('account')).values('max_date_finished')[:1]
)
).filter(Q(status=ChangeSecretRecordStatusChoice.success))
failed_records = queryset.filter(
~Q(account__in=Subquery(recent_success_accounts.values('account'))),
status=ChangeSecretRecordStatusChoice.failed,
ignore_fail=False
)
return failed_records
def get_queryset(self):
return ChangeSecretRecord.get_valid_records()
@action(methods=['post'], detail=False, url_path='execute')
def execute(self, request, *args, **kwargs):
record_ids = request.data.get('record_ids')
records = self.get_queryset().filter(id__in=record_ids)
if not records.exists():
return Response(
{'detail': 'No valid records found'},
status=status.HTTP_400_BAD_REQUEST
)
record_ids = [str(_id) for _id in records.values_list('id', flat=True)]
task = execute_automation_record_task.delay(record_ids, self.tp)
return Response({'task': task.id}, status=status.HTTP_200_OK)
@action(methods=['get'], detail=True, url_path='secret')
def secret(self, request, *args, **kwargs):
instance = self.get_object()
serializer = self.get_serializer(instance)
return Response(serializer.data)
@action(methods=['get'], detail=False, url_path='dashboard')
def dashboard(self, request, *args, **kwargs):
return super().list(request, *args, **kwargs)
@action(methods=['patch'], detail=True, url_path='ignore-fail')
def ignore_fail(self, request, *args, **kwargs):
instance = self.get_object()
instance.ignore_fail = True
instance.save(update_fields=['ignore_fail'])
return Response(status=status.HTTP_200_OK)
class ChangSecretExecutionViewSet(AutomationExecutionViewSet):
rbac_perms = (
("list", "accounts.view_changesecretexecution"),
("retrieve", "accounts.view_changesecretexecution"),
("create", "accounts.add_changesecretexecution"),
("report", "accounts.view_changesecretexecution"),
)
permission_classes = [RBACPermission, IsValidLicense]
tp = AutomationTypes.change_secret
def get_queryset(self):
queryset = super().get_queryset()
queryset = queryset.filter(automation__type=self.tp)
queryset = queryset.filter(type=self.tp)
return queryset
@@ -75,7 +154,27 @@ class ChangSecretAddAssetApi(AutomationAddAssetApi):
model = ChangeSecretAutomation
serializer_class = serializers.ChangeSecretUpdateAssetSerializer
class ChangSecretNodeAddRemoveApi(AutomationNodeAddRemoveApi):
model = ChangeSecretAutomation
serializer_class = serializers.ChangeSecretUpdateNodeSerializer
class ChangeSecretStatusViewSet(OrgBulkModelViewSet):
perm_model = ChangeSecretAutomation
filterset_class = ChangeSecretStatusFilterSet
serializer_class = serializers.ChangeSecretAccountSerializer
search_fields = ('username',)
permission_classes = [RBACPermission, IsValidLicense]
http_method_names = ["get", "delete", "options"]
def get_queryset(self):
account_ids = list(account_secret_task_status.account_ids)
return Account.objects.filter(id__in=account_ids).select_related('asset')
def bulk_destroy(self, request, *args, **kwargs):
account_ids = request.data.get('account_ids')
if isinstance(account_ids, str):
account_ids = [account_ids]
for _id in account_ids:
account_secret_task_status.clear(_id)
return Response(status=status.HTTP_200_OK)

View File

@@ -0,0 +1,186 @@
# -*- coding: utf-8 -*-
#
from collections import defaultdict
from django.core.cache import cache
from django.http.response import JsonResponse
from django.utils import timezone
from rest_framework.views import APIView
from accounts.const import AutomationTypes, ChangeSecretRecordStatusChoice
from accounts.models import ChangeSecretAutomation, AutomationExecution, ChangeSecretRecord
from assets.models import Node, Asset
from common.const import Status
from common.permissions import IsValidLicense
from common.utils import lazyproperty
from common.utils.timezone import local_zero_hour, local_now
from ops.celery import app
from rbac.permissions import RBACPermission
__all__ = ['ChangeSecretDashboardApi']
class ChangeSecretDashboardApi(APIView):
http_method_names = ['get']
rbac_perms = {
'GET': 'accounts.view_changesecretautomation',
}
permission_classes = [RBACPermission, IsValidLicense]
tp = AutomationTypes.change_secret
task_name = 'accounts.tasks.automation.execute_account_automation_task'
ongoing_change_secret_cache_key = "ongoing_change_secret_cache_key"
@lazyproperty
def days(self):
count = self.request.query_params.get('days', 1)
return int(count)
@property
def days_to_datetime(self):
if self.days == 1:
return local_zero_hour()
return local_now() - timezone.timedelta(days=self.days)
def get_queryset_date_filter(self, qs, query_field='date_updated'):
return qs.filter(**{f'{query_field}__gte': self.days_to_datetime})
@lazyproperty
def date_range_list(self):
return [
(local_now() - timezone.timedelta(days=i)).date()
for i in range(self.days - 1, -1, -1)
]
def filter_by_date_range(self, queryset, field_name):
date_range_bounds = self.days_to_datetime.date(), (local_now() + timezone.timedelta(days=1)).date()
return queryset.filter(**{f'{field_name}__range': date_range_bounds})
def calculate_daily_metrics(self, queryset, date_field):
filtered_queryset = self.filter_by_date_range(queryset, date_field)
results = filtered_queryset.values_list(date_field, 'status')
status_counts = defaultdict(lambda: defaultdict(int))
for date_finished, status in results:
dt_local = timezone.localtime(date_finished)
date_str = str(dt_local.date())
if status == ChangeSecretRecordStatusChoice.failed:
status_counts[date_str]['failed'] += 1
elif status == ChangeSecretRecordStatusChoice.success:
status_counts[date_str]['success'] += 1
metrics = defaultdict(list)
for date in self.date_range_list:
date_str = str(date)
for status in ['success', 'failed']:
metrics[status].append(status_counts[date_str].get(status, 0))
return metrics
def get_daily_success_and_failure_metrics(self):
metrics = self.calculate_daily_metrics(self.change_secret_records_queryset, 'date_finished')
return metrics.get('success', []), metrics.get('failed', [])
@lazyproperty
def change_secrets_queryset(self):
return ChangeSecretAutomation.objects.all()
@lazyproperty
def change_secret_records_queryset(self):
return ChangeSecretRecord.get_valid_records()
def get_change_secret_asset_queryset(self):
qs = self.change_secrets_queryset
node_ids = qs.values_list('nodes', flat=True).distinct()
nodes = Node.objects.filter(id__in=node_ids).only('id', 'key')
node_asset_ids = Node.get_nodes_all_assets(*nodes).values_list('id', flat=True)
direct_asset_ids = qs.values_list('assets', flat=True).distinct()
asset_ids = set(list(direct_asset_ids) + list(node_asset_ids))
return Asset.objects.filter(id__in=asset_ids)
def get_filtered_counts(self, qs, field=None):
if field is None:
return qs.count()
return self.get_queryset_date_filter(qs, field).count()
def get_status_counts(self, executions):
executions = executions.filter(type=self.tp)
total, failed, success = 0, 0, 0
for status in executions.values_list('status', flat=True):
total += 1
if status in [Status.failed, Status.error]:
failed += 1
elif status == Status.success:
success += 1
return {
'total_count_change_secret_executions': total,
'total_count_success_change_secret_executions': success,
'total_count_failed_change_secret_executions': failed,
}
def get(self, request, *args, **kwargs):
query_params = self.request.query_params
data = {}
_all = query_params.get('all')
if _all or query_params.get('total_count_change_secrets'):
data['total_count_change_secrets'] = self.get_filtered_counts(
self.change_secrets_queryset
)
if _all or query_params.get('total_count_periodic_change_secrets'):
data['total_count_periodic_change_secrets'] = self.get_filtered_counts(
self.change_secrets_queryset.filter(is_periodic=True)
)
if _all or query_params.get('total_count_change_secret_assets'):
data['total_count_change_secret_assets'] = self.get_change_secret_asset_queryset().count()
if _all or query_params.get('total_count_change_secret_status'):
executions = self.get_queryset_date_filter(AutomationExecution.objects.all(), 'date_start')
data.update(self.get_status_counts(executions))
if _all or query_params.get('daily_success_and_failure_metrics'):
success, failed = self.get_daily_success_and_failure_metrics()
data.update({
'dates_metrics_date': [date.strftime('%m-%d') for date in self.date_range_list] or ['0'],
'dates_metrics_total_count_success': success,
'dates_metrics_total_count_failed': failed,
})
if _all or query_params.get('total_count_ongoing_change_secret'):
ongoing_counts = cache.get(self.ongoing_change_secret_cache_key)
if ongoing_counts is None:
execution_ids = []
inspect = app.control.inspect()
try:
active_tasks = inspect.active()
except Exception:
active_tasks = None
if active_tasks:
for tasks in active_tasks.values():
for task in tasks:
_id = task.get('id')
name = task.get('name')
tp = task.get('kwargs', {}).get('tp')
if name == self.task_name and tp == self.tp:
execution_ids.append(_id)
snapshots = AutomationExecution.objects.filter(id__in=execution_ids).values_list('snapshot', flat=True)
asset_ids = {asset for i in snapshots for asset in i.get('assets', [])}
account_ids = {account for i in snapshots for account in i.get('accounts', [])}
ongoing_counts = (len(execution_ids), len(asset_ids), len(account_ids))
data['total_count_ongoing_change_secret'] = ongoing_counts[0]
data['total_count_ongoing_change_secret_assets'] = ongoing_counts[1]
data['total_count_ongoing_change_secret_accounts'] = ongoing_counts[2]
cache.set(self.ongoing_change_secret_cache_key, ongoing_counts, 60)
else:
data['total_count_ongoing_change_secret'] = ongoing_counts[0]
data['total_count_ongoing_change_secret_assets'] = ongoing_counts[1]
data['total_count_ongoing_change_secret_accounts'] = ongoing_counts[2]
return JsonResponse(data, status=200)

View File

@@ -0,0 +1,165 @@
# -*- coding: utf-8 -*-
#
from django.db.models import Q, Count
from django.http import HttpResponse
from django.shortcuts import get_object_or_404
from rest_framework.decorators import action
from rest_framework.exceptions import MethodNotAllowed
from rest_framework.response import Response
from accounts import serializers
from accounts.const import AutomationTypes
from accounts.models import (
CheckAccountAutomation,
AccountRisk,
RiskChoice,
CheckAccountEngine,
AutomationExecution,
)
from assets.models import Asset
from common.api import JMSModelViewSet
from common.permissions import IsValidLicense
from common.utils import many_get
from orgs.mixins.api import OrgBulkModelViewSet
from rbac.permissions import RBACPermission
from .base import AutomationExecutionViewSet
from ...filters import NodeFilterBackend
from ...risk_handlers import RiskHandler
__all__ = [
"CheckAccountAutomationViewSet",
"CheckAccountExecutionViewSet",
"AccountRiskViewSet",
"CheckAccountEngineViewSet",
]
class CheckAccountAutomationViewSet(OrgBulkModelViewSet):
model = CheckAccountAutomation
filterset_fields = ("name",)
search_fields = filterset_fields
permission_classes = [RBACPermission, IsValidLicense]
serializer_class = serializers.CheckAccountAutomationSerializer
class CheckAccountExecutionViewSet(AutomationExecutionViewSet):
rbac_perms = (
("list", "accounts.view_checkaccountexecution"),
("retrieve", "accounts.view_checkaccountexecution"),
("create", "accounts.add_checkaccountexecution"),
("adhoc", "accounts.add_checkaccountexecution"),
("report", "accounts.view_checkaccountexecution"),
)
ordering = ("-date_created",)
tp = AutomationTypes.check_account
permission_classes = [RBACPermission, IsValidLicense]
def get_queryset(self):
queryset = super().get_queryset()
queryset = queryset.filter(type=self.tp)
return queryset
@action(methods=["get"], detail=False, url_path="adhoc")
def adhoc(self, request, *args, **kwargs):
asset_id = request.query_params.get("asset_id")
if not asset_id:
return Response(status=400, data={"asset_id": "This field is required."})
asset = get_object_or_404(Asset, pk=asset_id)
name = "Check asset risk: {}".format(asset.name)
execution = AutomationExecution()
execution.snapshot = {
"assets": [asset_id],
"nodes": [],
"type": AutomationTypes.check_account,
"engines": "__all__",
"name": name,
}
execution.save()
execution.start()
report = execution.manager.gen_report()
return HttpResponse(report)
class AccountRiskViewSet(OrgBulkModelViewSet):
model = AccountRisk
search_fields = ["username", "asset__name"]
filterset_fields = ("risk", "status", "asset_id")
extra_filter_backends = [NodeFilterBackend]
permission_classes = [RBACPermission, IsValidLicense]
serializer_classes = {
"default": serializers.AccountRiskSerializer,
"assets": serializers.AssetRiskSerializer,
"handle": serializers.HandleRiskSerializer,
}
ordering_fields = ("asset", "risk", "status", "username", "date_created")
ordering = ("status", "asset", "date_created")
rbac_perms = {
"sync_accounts": "assets.add_accountrisk",
"assets": "accounts.view_accountrisk",
"handle": "accounts.change_accountrisk",
}
def update(self, request, *args, **kwargs):
raise MethodNotAllowed("PUT")
def create(self, request, *args, **kwargs):
raise MethodNotAllowed("POST")
@action(methods=["get"], detail=False, url_path="assets")
def assets(self, request, *args, **kwargs):
annotations = {
f"{risk[0]}_count": Count("id", filter=Q(risk=risk[0]))
for risk in RiskChoice.choices
}
queryset = (
AccountRisk.objects.select_related(
"asset", "asset__platform"
) # 使用 select_related 来优化 asset 和 asset__platform 的查询
.values(
"asset__id", "asset__name", "asset__address", "asset__platform__name"
) # 添加需要的字段
.annotate(risk_total=Count("id")) # 计算风险总数
.annotate(**annotations) # 使用上面定义的 annotations 进行计数
)
return self.get_paginated_response_from_queryset(queryset)
@action(methods=["post"], detail=False, url_path="handle")
def handle(self, request, *args, **kwargs):
s = self.get_serializer(data=request.data)
s.is_valid(raise_exception=True)
asset, username, act, risk = many_get(
s.validated_data, ("asset", "username", "action", "risk")
)
handler = RiskHandler(asset=asset, username=username, request=self.request)
try:
risk = handler.handle(act, risk)
s = serializers.AccountRiskSerializer(instance=risk)
return Response(data=s.data)
except Exception as e:
return Response(status=400, data=str(e))
class CheckAccountEngineViewSet(JMSModelViewSet):
search_fields = ("name",)
serializer_class = serializers.CheckAccountEngineSerializer
permission_classes = [RBACPermission, IsValidLicense]
perm_model = CheckAccountEngine
http_method_names = ['get', 'options']
def get_queryset(self):
if getattr(self, "swagger_fake_view", False):
return CheckAccountEngine.objects.none()
return CheckAccountEngine.get_default_engines()
def filter_queryset(self, queryset: list):
search = self.request.GET.get('search')
if search is not None:
queryset = [
item for item in queryset
if search in item['name']
]
return queryset

View File

@@ -0,0 +1,131 @@
# -*- coding: utf-8 -*-
#
from django.http import HttpResponse
from django.shortcuts import get_object_or_404
from django.views.decorators.clickjacking import xframe_options_sameorigin
from rest_framework import status
from rest_framework.decorators import action
from rest_framework.response import Response
from accounts import serializers
from accounts.const import AutomationTypes
from accounts.filters import GatheredAccountFilterSet, NodeFilterBackend
from accounts.models import GatherAccountsAutomation, AutomationExecution, Account
from accounts.models import GatheredAccount
from assets.models import Asset
from common.const import ConfirmOrIgnore
from common.utils.http import is_true
from orgs.mixins.api import OrgBulkModelViewSet
from .base import AutomationExecutionViewSet
__all__ = [
"DiscoverAccountsAutomationViewSet",
"DiscoverAccountsExecutionViewSet",
"GatheredAccountViewSet",
]
from ...risk_handlers import RiskHandler
class DiscoverAccountsAutomationViewSet(OrgBulkModelViewSet):
model = GatherAccountsAutomation
filterset_fields = ("name",)
search_fields = filterset_fields
serializer_class = serializers.DiscoverAccountAutomationSerializer
class DiscoverAccountsExecutionViewSet(AutomationExecutionViewSet):
rbac_perms = (
("list", "accounts.view_gatheraccountsexecution"),
("retrieve", "accounts.view_gatheraccountsexecution"),
("create", "accounts.add_gatheraccountsexecution"),
("adhoc", "accounts.add_gatheraccountsexecution"),
("report", "accounts.view_gatheraccountsexecution"),
)
tp = AutomationTypes.gather_accounts
def get_queryset(self):
queryset = super().get_queryset()
queryset = queryset.filter(type=self.tp)
return queryset
@xframe_options_sameorigin
@action(methods=["get"], detail=False, url_path="adhoc")
def adhoc(self, request, *args, **kwargs):
asset_id = request.query_params.get("asset_id")
if not asset_id:
return Response(status=400, data={"asset_id": "This field is required."})
asset = get_object_or_404(Asset, pk=asset_id)
execution = AutomationExecution()
execution.snapshot = {
"assets": [asset_id],
"nodes": [],
"type": "gather_accounts",
"is_sync_account": False,
"check_risk": True,
"name": "Adhoc gather accounts: {}".format(asset.name),
}
execution.save()
execution.start()
report = execution.manager.gen_report()
return HttpResponse(report)
class GatheredAccountViewSet(OrgBulkModelViewSet):
model = GatheredAccount
search_fields = ("username",)
filterset_class = GatheredAccountFilterSet
extra_filter_backends = [NodeFilterBackend]
ordering = ("status",)
serializer_classes = {
"default": serializers.DiscoverAccountSerializer,
"status": serializers.DiscoverAccountActionSerializer,
"details": serializers.DiscoverAccountDetailsSerializer
}
rbac_perms = {
"status": "assets.change_gatheredaccount",
"details": "assets.view_gatheredaccount"
}
@action(methods=["put"], detail=False, url_path="status")
def status(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
if not serializer.is_valid():
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
validated_data = serializer.validated_data
ids = validated_data.get('ids', [])
new_status = validated_data.get('status')
updated_instances = GatheredAccount.objects.filter(id__in=ids).select_related('asset')
if new_status == ConfirmOrIgnore.confirmed:
GatheredAccount.sync_accounts(updated_instances)
updated_instances.update(present=True)
updated_instances.update(status=new_status)
return Response(status=status.HTTP_200_OK)
def perform_destroy(self, instance):
request = self.request
params = request.query_params
is_delete_remote = params.get("is_delete_remote")
is_delete_account = params.get("is_delete_account")
asset_id = params.get("asset")
username = params.get("username")
if is_true(is_delete_remote):
self._delete_remote(asset_id, username)
if is_true(is_delete_account):
account = get_object_or_404(Account, username=username, asset_id=asset_id)
account.delete()
super().perform_destroy(instance)
def _delete_remote(self, asset_id, username):
asset = get_object_or_404(Asset, pk=asset_id)
handler = RiskHandler(asset, username, request=self.request)
handler.handle_delete_remote()
@action(methods=["get"], detail=True, url_path="details")
def details(self, request, *args, **kwargs):
pk = kwargs.get('pk')
account = get_object_or_404(GatheredAccount, pk=pk)
serializer = self.get_serializer(account.detail)
return Response(data=serializer.data)

View File

@@ -1,71 +0,0 @@
# -*- coding: utf-8 -*-
#
from django.utils.translation import ugettext_lazy as _
from rest_framework import status
from rest_framework.decorators import action
from rest_framework.response import Response
from accounts import serializers
from accounts.const import AutomationTypes
from accounts.const import Source
from accounts.filters import GatheredAccountFilterSet
from accounts.models import GatherAccountsAutomation
from accounts.models import GatheredAccount
from orgs.mixins.api import OrgBulkModelViewSet
from .base import AutomationExecutionViewSet
__all__ = [
'GatherAccountsAutomationViewSet', 'GatherAccountsExecutionViewSet',
'GatheredAccountViewSet'
]
class GatherAccountsAutomationViewSet(OrgBulkModelViewSet):
model = GatherAccountsAutomation
filter_fields = ('name',)
search_fields = filter_fields
serializer_class = serializers.GatherAccountAutomationSerializer
class GatherAccountsExecutionViewSet(AutomationExecutionViewSet):
rbac_perms = (
("list", "accounts.view_gatheraccountsexecution"),
("retrieve", "accounts.view_gatheraccountsexecution"),
("create", "accounts.add_gatheraccountsexecution"),
)
tp = AutomationTypes.gather_accounts
def get_queryset(self):
queryset = super().get_queryset()
queryset = queryset.filter(automation__type=self.tp)
return queryset
class GatheredAccountViewSet(OrgBulkModelViewSet):
model = GatheredAccount
search_fields = ('username',)
filterset_class = GatheredAccountFilterSet
serializer_classes = {
'default': serializers.GatheredAccountSerializer,
}
rbac_perms = {
'sync_account': 'assets.add_gatheredaccount',
}
@action(methods=['post'], detail=True, url_path='sync')
def sync_account(self, request, *args, **kwargs):
gathered_account = super().get_object()
asset = gathered_account.asset
username = gathered_account.username
accounts = asset.accounts.filter(username=username)
if accounts.exists():
accounts.update(source=Source.COLLECTED)
else:
asset.accounts.model.objects.create(
asset=asset, username=username,
name=f'{username}-{_("Collected")}',
source=Source.COLLECTED
)
return Response(status=status.HTTP_201_CREATED)

View File

@@ -1,15 +1,16 @@
# -*- coding: utf-8 -*-
#
from rest_framework import mixins
from accounts import serializers
from accounts.const import AutomationTypes
from accounts.models import PushAccountAutomation, ChangeSecretRecord
from orgs.mixins.api import OrgBulkModelViewSet
from accounts.filters import PushAccountRecordFilterSet
from accounts.models import PushAccountAutomation, PushSecretRecord
from orgs.mixins.api import OrgBulkModelViewSet, OrgGenericViewSet
from .base import (
AutomationAssetsListApi, AutomationRemoveAssetApi, AutomationAddAssetApi,
AutomationNodeAddRemoveApi, AutomationExecutionViewSet
)
from .change_secret import ChangeSecretRecordViewSet
__all__ = [
'PushAccountAutomationViewSet', 'PushAccountAssetsListApi', 'PushAccountRemoveAssetApi',
@@ -20,8 +21,8 @@ __all__ = [
class PushAccountAutomationViewSet(OrgBulkModelViewSet):
model = PushAccountAutomation
filter_fields = ('name', 'secret_type', 'secret_strategy')
search_fields = filter_fields
filterset_fields = ('name', 'secret_type', 'secret_strategy')
search_fields = filterset_fields
serializer_class = serializers.PushAccountAutomationSerializer
@@ -30,23 +31,28 @@ class PushAccountExecutionViewSet(AutomationExecutionViewSet):
("list", "accounts.view_pushaccountexecution"),
("retrieve", "accounts.view_pushaccountexecution"),
("create", "accounts.add_pushaccountexecution"),
("report", "accounts.view_pushaccountexecution"),
)
tp = AutomationTypes.push_account
def get_queryset(self):
queryset = super().get_queryset()
queryset = queryset.filter(automation__type=self.tp)
queryset = queryset.filter(type=self.tp)
return queryset
class PushAccountRecordViewSet(ChangeSecretRecordViewSet):
serializer_class = serializers.ChangeSecretRecordSerializer
class PushAccountRecordViewSet(mixins.ListModelMixin, OrgGenericViewSet):
filterset_class = PushAccountRecordFilterSet
search_fields = ('asset__address', 'account__username')
ordering_fields = ('date_finished',)
tp = AutomationTypes.push_account
serializer_classes = {
'default': serializers.PushSecretRecordSerializer,
}
def get_queryset(self):
return ChangeSecretRecord.objects.filter(
execution__automation__type=AutomationTypes.push_account
)
return PushSecretRecord.get_valid_records()
class PushAccountAssetsListApi(AutomationAssetsListApi):
@@ -57,12 +63,10 @@ class PushAccountRemoveAssetApi(AutomationRemoveAssetApi):
model = PushAccountAutomation
serializer_class = serializers.PushAccountUpdateAssetSerializer
class PushAccountAddAssetApi(AutomationAddAssetApi):
model = PushAccountAutomation
serializer_class = serializers.PushAccountUpdateAssetSerializer
class PushAccountNodeAddRemoveApi(AutomationNodeAddRemoveApi):
model = PushAccountAutomation
serializer_class = serializers.PushAccountUpdateNodeSerializer
serializer_class = serializers.PushAccountUpdateNodeSerializer

View File

@@ -4,8 +4,8 @@ from django.apps import AppConfig
class AccountsConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'accounts'
verbose_name = 'App Accounts'
def ready(self):
from . import signal_handlers
from . import tasks
__all__ = signal_handlers
from . import signal_handlers # noqa
from . import tasks # noqa

View File

@@ -1,24 +1,30 @@
import os
import time
from openpyxl import Workbook
from collections import defaultdict, OrderedDict
from django.conf import settings
from django.db.models import F
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from xlsxwriter import Workbook
from accounts.models import Account
from assets.const import AllTypes
from accounts.const import AccountBackupType
from accounts.models import BackupAccountAutomation, Account
from accounts.notifications import AccountBackupExecutionTaskMsg, AccountBackupByObjStorageExecutionTaskMsg
from accounts.serializers import AccountSecretSerializer
from accounts.notifications import AccountBackupExecutionTaskMsg
from assets.const import AllTypes
from common.const import Status
from common.utils.file import encrypt_and_compress_zip_file, zip_files
from common.utils.timezone import local_now_filename, local_now_display
from terminal.models.component.storage import ReplayStorage
from users.models import User
from common.utils import get_logger
from common.utils.timezone import local_now_display
from common.utils.file import encrypt_and_compress_zip_file
logger = get_logger(__file__)
PATH = os.path.join(os.path.dirname(settings.BASE_DIR), 'tmp')
split_help_text = _('The account key will be split into two parts and sent')
class RecipientsNotFound(Exception):
pass
class BaseAccountHandler:
@@ -30,17 +36,26 @@ class BaseAccountHandler:
if isinstance(v, OrderedDict):
cls.unpack_data(v, data)
else:
if isinstance(v, dict):
v = v.get('label')
elif v is None:
v = ''
data[k] = v
return data
@classmethod
def get_header_fields(cls, serializer: serializers.Serializer):
try:
backup_fields = getattr(serializer, 'Meta').fields_backup
exclude_backup_fields = getattr(serializer, 'Meta').exclude_backup_fields
except AttributeError:
backup_fields = serializer.fields.keys()
exclude_backup_fields = []
backup_fields = serializer.fields.keys()
header_fields = {}
for field in backup_fields:
if field in exclude_backup_fields:
continue
v = serializer.fields[field]
if isinstance(v, serializers.Serializer):
_fields = cls.get_header_fields(v)
@@ -70,14 +85,28 @@ class BaseAccountHandler:
class AssetAccountHandler(BaseAccountHandler):
@staticmethod
def get_filename(plan_name):
def get_filename(name):
filename = os.path.join(
PATH, f'{plan_name}-{local_now_display()}-{time.time()}.xlsx'
PATH, f'{name}-{local_now_filename()}-{time.time()}.xlsx'
)
return filename
@staticmethod
def handler_secret(data, section):
for account_data in data:
secret = account_data.get('secret')
if not secret:
continue
length = len(secret)
index = length // 2
if section == "front":
secret = secret[:index] + '*' * (length - index)
elif section == "back":
secret = '*' * (length - index) + secret[index:]
account_data['secret'] = secret
@classmethod
def create_data_map(cls, accounts):
def create_data_map(cls, accounts, section):
data_map = defaultdict(list)
if not accounts.exists():
@@ -97,117 +126,166 @@ class AssetAccountHandler(BaseAccountHandler):
for tp, _accounts in account_type_map.items():
sheet_name = type_dict.get(tp, tp)
data = AccountSecretSerializer(_accounts, many=True).data
cls.handler_secret(data, section)
data_map.update(cls.add_rows(data, header_fields, sheet_name))
logger.info('\n\033[33m- 共备份 {} 条账号\033[0m'.format(accounts.count()))
number_of_backup_accounts = _('Number of backup accounts')
print('\033[33m- {}: {}\033[0m'.format(number_of_backup_accounts, accounts.count()))
return data_map
class AccountBackupHandler:
def __init__(self, execution):
def __init__(self, manager, execution):
self.manager = manager
self.execution = execution
self.plan_name = self.execution.plan.name
self.is_frozen = False # 任务状态冻结标志
self.name = self.execution.snapshot.get('name', '-')
def create_excel(self):
logger.info(
'\n'
'\033[32m>>> 正在生成资产或应用相关备份信息文件\033[0m'
def get_accounts(self):
# TODO 可以优化一下查询 在账号上做 category 的缓存 避免数据量大时连表操作
types = self.execution.snapshot.get('types', [])
self.manager.summary['total_types'] = len(types)
qs = Account.objects.filter(
asset__platform__type__in=types
).annotate(type=F('asset__platform__type'))
return qs
def create_excel(self, section='complete'):
hint = _('Generating asset related backup information files')
print(
f'\033[32m>>> {hint}\033[0m'
''
)
# Print task start date
time_start = time.time()
files = []
accounts = self.execution.backup_accounts
data_map = AssetAccountHandler.create_data_map(accounts)
accounts = self.get_accounts()
self.manager.summary['total_accounts'] = accounts.count()
data_map = AssetAccountHandler.create_data_map(accounts, section)
if not data_map:
return files
filename = AssetAccountHandler.get_filename(self.plan_name)
filename = AssetAccountHandler.get_filename(self.name)
wb = Workbook(filename)
for sheet, data in data_map.items():
ws = wb.create_sheet(str(sheet))
for row in data:
ws.append(row)
wb.save(filename)
ws = wb.add_worksheet(str(sheet))
for row_index, row_data in enumerate(data):
for col_index, col_data in enumerate(row_data):
ws.write_string(row_index, col_index, col_data)
wb.close()
files.append(filename)
timedelta = round((time.time() - time_start), 2)
logger.info('步骤完成: 用时 {}s'.format(timedelta))
time_cost = _('Duration')
file_created = _('Backup file creation completed')
print('{}: {} {}s'.format(file_created, time_cost, timedelta))
return files
def send_backup_mail(self, files, recipients):
if not files:
return
recipients = User.objects.filter(id__in=list(recipients))
logger.info(
'\n'
'\033[32m>>> 发送备份邮件\033[0m'
msg = _("Start sending backup emails")
print(
f'\033[32m>>> {msg}\033[0m'
''
)
plan_name = self.plan_name
name = self.name
for user in recipients:
if not user.secret_key:
attachment_list = []
else:
password = user.secret_key.encode('utf8')
attachment = os.path.join(PATH, f'{plan_name}-{local_now_display()}-{time.time()}.zip')
encrypt_and_compress_zip_file(attachment, password, files)
attachment_list = [attachment, ]
AccountBackupExecutionTaskMsg(plan_name, user).publish(attachment_list)
logger.info('邮件已发送至{}({})'.format(user, user.email))
attachment = os.path.join(PATH, f'{name}-{local_now_filename()}-{time.time()}.zip')
encrypt_and_compress_zip_file(attachment, user.secret_key, files)
attachment_list = [attachment]
AccountBackupExecutionTaskMsg(name, user).publish(attachment_list)
for file in files:
os.remove(file)
def step_perform_task_update(self, is_success, reason):
self.execution.reason = reason[:1024]
self.execution.is_success = is_success
self.execution.save()
logger.info('已完成对任务状态的更新')
def step_finished(self, is_success):
if is_success:
logger.info('任务执行成功')
else:
logger.error('任务执行失败')
def send_backup_obj_storage(self, files, recipients, password):
if not files:
return
recipients = ReplayStorage.objects.filter(id__in=list(recipients))
print(
'\033[32m>>> 📃 ---> sftp \033[0m'
''
)
name = self.name
encrypt_file = _('Encrypting files using encryption password')
for rec in recipients:
attachment = os.path.join(PATH, f'{name}-{local_now_filename()}-{time.time()}.zip')
if password:
print(f'\033[32m>>> {encrypt_file}\033[0m')
encrypt_and_compress_zip_file(attachment, password, files)
else:
zip_files(attachment, files)
attachment_list = attachment
AccountBackupByObjStorageExecutionTaskMsg(name, rec).publish(attachment_list)
file_sent_to = _('The backup file will be sent to')
print('{}: {}({})'.format(file_sent_to, rec.name, rec.id))
for file in files:
os.remove(file)
def _run(self):
is_success = False
error = '-'
try:
recipients = self.execution.plan_snapshot.get('recipients')
if not recipients:
logger.info(
'\n'
'\033[32m>>> 该备份任务未分配收件人\033[0m'
''
)
else:
files = self.create_excel()
self.send_backup_mail(files, recipients)
backup_type = self.execution.snapshot.get('backup_type', AccountBackupType.email)
if backup_type == AccountBackupType.email:
self.backup_by_email()
elif backup_type == AccountBackupType.object_storage:
self.backup_by_obj_storage()
except Exception as e:
self.is_frozen = True
logger.error('任务执行被异常中断')
logger.info('下面打印发生异常的 Traceback 信息 : ')
logger.error(e, exc_info=True)
error = str(e)
print(f'\033[31m>>> {error}\033[0m')
self.manager.status = Status.error
self.manager.summary['error'] = error
def backup_by_obj_storage(self):
object_id = self.execution.snapshot.get('id')
zip_encrypt_password = BackupAccountAutomation.objects.get(id=object_id).zip_encrypt_password
obj_recipients_part_one = self.execution.snapshot.get('obj_recipients_part_one', [])
obj_recipients_part_two = self.execution.snapshot.get('obj_recipients_part_two', [])
no_assigned_sftp_server = _('The backup task has no assigned sftp server')
if not obj_recipients_part_one and not obj_recipients_part_two:
print(
'\n'
f'\033[31m>>> {no_assigned_sftp_server}\033[0m'
''
)
raise RecipientsNotFound('Not Found Recipients')
if obj_recipients_part_one and obj_recipients_part_two:
print(f'\033[32m>>> {split_help_text}\033[0m')
files = self.create_excel(section='front')
self.send_backup_obj_storage(files, obj_recipients_part_one, zip_encrypt_password)
files = self.create_excel(section='back')
self.send_backup_obj_storage(files, obj_recipients_part_two, zip_encrypt_password)
else:
is_success = True
finally:
reason = error
self.step_perform_task_update(is_success, reason)
self.step_finished(is_success)
recipients = obj_recipients_part_one or obj_recipients_part_two
files = self.create_excel()
self.send_backup_obj_storage(files, recipients, zip_encrypt_password)
def backup_by_email(self):
warn_text = _('The backup task has no assigned recipient')
recipients_part_one = self.execution.snapshot.get('recipients_part_one', [])
recipients_part_two = self.execution.snapshot.get('recipients_part_two', [])
if not recipients_part_one and not recipients_part_two:
print(
'\n'
f'\033[31m>>> {warn_text}\033[0m'
''
)
return
if recipients_part_one and recipients_part_two:
print(f'\033[32m>>> {split_help_text}\033[0m')
files = self.create_excel(section='front')
self.send_backup_mail(files, recipients_part_one)
files = self.create_excel(section='back')
self.send_backup_mail(files, recipients_part_two)
else:
recipients = recipients_part_one or recipients_part_two
files = self.create_excel()
self.send_backup_mail(files, recipients)
def run(self):
logger.info('任务开始: {}'.format(local_now_display()))
time_start = time.time()
try:
self._run()
except Exception as e:
logger.error('任务运行出现异常')
logger.error('下面显示异常 Traceback 信息: ')
logger.error(e, exc_info=True)
finally:
logger.info('\n任务结束: {}'.format(local_now_display()))
timedelta = round((time.time() - time_start), 2)
logger.info('用时: {}'.format(timedelta))
print('{}: {}'.format(_('Plan start'), local_now_display()))
self._run()

View File

@@ -1,48 +1,30 @@
# -*- coding: utf-8 -*-
#
import time
from django.utils import timezone
from django.utils.translation import gettext_lazy as _
from common.utils import get_logger
from assets.automations.base.manager import BaseManager
from common.utils.timezone import local_now_display
from .handlers import AccountBackupHandler
logger = get_logger(__name__)
class AccountBackupManager:
def __init__(self, execution):
self.execution = execution
self.date_start = timezone.now()
self.time_start = time.time()
self.date_end = None
self.time_end = None
self.timedelta = 0
class AccountBackupManager(BaseManager):
def do_run(self):
execution = self.execution
logger.info('\n\033[33m# 账号备份计划正在执行\033[0m')
handler = AccountBackupHandler(execution)
account_backup_execution_being_executed = _('The account backup plan is being executed')
print(f'\033[33m# {account_backup_execution_being_executed}\033[0m')
handler = AccountBackupHandler(self, execution)
handler.run()
def pre_run(self):
self.execution.date_start = self.date_start
self.execution.save()
def send_report_if_need(self):
pass
def post_run(self):
self.time_end = time.time()
self.date_end = timezone.now()
def print_summary(self):
print('\n\n' + '-' * 80)
plan_execution_end = _('Plan execution end')
print('{} {}\n'.format(plan_execution_end, local_now_display()))
time_cost = _('Duration')
print('{}: {}s'.format(time_cost, self.duration))
logger.info('\n\n' + '-' * 80)
logger.info('计划执行结束 {}\n'.format(local_now_display()))
self.timedelta = self.time_end - self.time_start
logger.info('用时: {}s'.format(self.timedelta))
self.execution.timedelta = self.timedelta
self.execution.save()
def run(self):
self.pre_run()
self.do_run()
self.post_run()
def get_report_template(self):
return "accounts/backup_account_report.html"

View File

@@ -1,12 +1,235 @@
from copy import deepcopy
from django.conf import settings
from django.utils import timezone
from django.utils.translation import gettext_lazy as _
from accounts.automations.methods import platform_automation_methods
from accounts.const import SSHKeyStrategy, SecretStrategy, SecretType, ChangeSecretRecordStatusChoice, \
ChangeSecretAccountStatus
from accounts.models import BaseAccountQuerySet
from accounts.utils import SecretGenerator, account_secret_task_status
from assets.automations.base.manager import BasePlaybookManager
from assets.const import HostTypes
from common.db.utils import safe_atomic_db_connection
from common.utils import get_logger
logger = get_logger(__name__)
class AccountBasePlaybookManager(BasePlaybookManager):
template_path = ''
@property
def platform_automation_methods(self):
return platform_automation_methods
class BaseChangeSecretPushManager(AccountBasePlaybookManager):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.secret_type = self.execution.snapshot.get('secret_type')
self.secret_strategy = self.execution.snapshot.get(
'secret_strategy', SecretStrategy.custom
)
self.ssh_key_change_strategy = self.execution.snapshot.get(
'ssh_key_change_strategy', SSHKeyStrategy.set_jms
)
self.account_ids = self.execution.snapshot['accounts']
self.record_map = self.execution.snapshot.get('record_map', {}) # 这个是某个失败的记录重试
self.name_record_mapper = {} # 做个映射,方便后面处理
def gen_account_inventory(self, account, asset, h, path_dir):
raise NotImplementedError
def get_ssh_params(self, secret, secret_type):
kwargs = {}
if secret_type != SecretType.SSH_KEY:
return kwargs
kwargs['strategy'] = self.ssh_key_change_strategy
kwargs['exclusive'] = 'yes' if kwargs['strategy'] == SSHKeyStrategy.set else 'no'
if kwargs['strategy'] == SSHKeyStrategy.set_jms:
kwargs['regexp'] = '.*{}$'.format(secret.split()[2].strip())
return kwargs
def get_secret(self, account):
if self.secret_strategy == SecretStrategy.custom:
new_secret = self.execution.snapshot['secret']
else:
generator = SecretGenerator(
self.secret_strategy, self.secret_type,
self.execution.snapshot.get('password_rules')
)
new_secret = generator.get_secret()
return new_secret
def get_accounts(self, privilege_account) -> BaseAccountQuerySet | None:
if not privilege_account:
print('Not privilege account')
return
asset = privilege_account.asset
accounts = asset.all_accounts.all()
accounts = accounts.filter(id__in=self.account_ids, secret_reset=True)
if self.secret_type:
accounts = accounts.filter(secret_type=self.secret_type)
if settings.CHANGE_AUTH_PLAN_SECURE_MODE_ENABLED:
accounts = accounts.filter(privileged=False).exclude(
username__in=['root', 'administrator', privilege_account.username]
)
return accounts
def handle_ssh_secret(self, secret_type, new_secret, path_dir):
private_key_path = None
if secret_type == SecretType.SSH_KEY:
private_key_path = self.generate_private_key_path(new_secret, path_dir)
new_secret = self.generate_public_key(new_secret)
return new_secret, private_key_path
def gen_inventory(self, h, account, new_secret, private_key_path, asset):
secret_type = account.secret_type
h['ssh_params'].update(self.get_ssh_params(new_secret, secret_type))
h['account'] = {
'name': account.name,
'username': account.username,
'full_username': account.full_username,
'secret_type': secret_type,
'secret': account.escape_jinja2_syntax(new_secret),
'private_key_path': private_key_path,
'become': account.get_ansible_become_auth(),
}
if asset.platform.type == 'oracle':
h['account']['mode'] = 'sysdba' if account.privileged else None
return h
def host_callback(self, host, asset=None, account=None, automation=None, path_dir=None, **kwargs):
host = super().host_callback(
host, asset=asset, account=account, automation=automation,
path_dir=path_dir, **kwargs
)
if host.get('error'):
return host
inventory_hosts = []
if asset.type == HostTypes.WINDOWS:
if self.secret_type == SecretType.SSH_KEY:
host['error'] = _("Windows does not support SSH key authentication")
return host
new_secret = self.get_secret(account)
if '>' in new_secret or '^' in new_secret:
host['error'] = _("Windows password cannot contain special characters like > ^")
return host
host['ssh_params'] = {}
accounts = self.get_accounts(account)
existing_ids = set(map(str, accounts.values_list('id', flat=True)))
missing_ids = set(map(str, self.account_ids)) - existing_ids
for account_id in missing_ids:
self.clear_account_queue_status(account_id)
error_msg = _("No pending accounts found")
if not accounts:
print(f'{asset}: {error_msg}')
return []
if asset.type == HostTypes.WINDOWS:
accounts = accounts.filter(secret_type=SecretType.PASSWORD)
for account in accounts:
h = deepcopy(host)
h['name'] += '(' + account.username + ')' # To distinguish different accounts
account_status = account_secret_task_status.get_status(account.id)
if account_status == ChangeSecretAccountStatus.PROCESSING:
h['error'] = f'Account is already being processed, skipping: {account}'
inventory_hosts.append(h)
continue
try:
h, record = self.gen_account_inventory(account, asset, h, path_dir)
h['check_conn_after_change'] = record.execution.snapshot.get('check_conn_after_change', True)
account_secret_task_status.set_status(
account.id,
ChangeSecretAccountStatus.PROCESSING,
metadata={'execution_id': self.execution.id}
)
except Exception as e:
h['error'] = str(e)
self.clear_account_queue_status(account.id)
inventory_hosts.append(h)
return inventory_hosts
@staticmethod
def save_record(record):
record.save(update_fields=['error', 'status', 'date_finished'])
@staticmethod
def clear_account_queue_status(account_id):
account_secret_task_status.clear(account_id)
def on_host_success(self, host, result):
record = self.name_record_mapper.get(host)
if not record:
return
record.status = ChangeSecretRecordStatusChoice.success.value
record.date_finished = timezone.now()
account = record.account
if not account:
print("Account not found, deleted ?")
return
account.secret = getattr(record, 'new_secret', account.secret)
account.date_updated = timezone.now()
account.date_change_secret = timezone.now()
account.change_secret_status = ChangeSecretRecordStatusChoice.success
self.summary['ok_accounts'] += 1
self.result['ok_accounts'].append(
{
"asset": str(account.asset),
"username": account.username,
}
)
super().on_host_success(host, result)
with safe_atomic_db_connection():
account.save(update_fields=['secret', 'date_updated', 'date_change_secret', 'change_secret_status'])
self.save_record(record)
self.clear_account_queue_status(account.id)
def on_host_error(self, host, error, result):
record = self.name_record_mapper.get(host)
if not record:
return
record.status = ChangeSecretRecordStatusChoice.failed.value
record.date_finished = timezone.now()
record.error = error
account = record.account
if not account:
print("Account not found, deleted ?")
return
account.date_updated = timezone.now()
account.date_change_secret = timezone.now()
account.change_secret_status = ChangeSecretRecordStatusChoice.failed
self.summary['fail_accounts'] += 1
self.result['fail_accounts'].append(
{
"asset": str(record.asset),
"username": record.account.username,
}
)
super().on_host_error(host, error, result)
with safe_atomic_db_connection():
account.save(update_fields=['change_secret_status', 'date_change_secret', 'date_updated'])
self.save_record(record)
self.clear_account_queue_status(account.id)

View File

@@ -0,0 +1,67 @@
- hosts: custom
gather_facts: no
vars:
ansible_connection: local
ansible_become: false
tasks:
- name: Test privileged account (paramiko)
ssh_ping:
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_secret_type: "{{ jms_account.secret_type }}"
login_private_key_path: "{{ jms_account.private_key_path }}"
become: "{{ jms_custom_become | default(False) }}"
become_method: "{{ jms_custom_become_method | default('su') }}"
become_user: "{{ jms_custom_become_user | default('') }}"
become_password: "{{ jms_custom_become_password | default('') }}"
become_private_key_path: "{{ jms_custom_become_private_key_path | default(None) }}"
old_ssh_version: "{{ jms_asset.old_ssh_version | default(False) }}"
gateway_args: "{{ jms_asset.ansible_ssh_common_args | default(None) }}"
recv_timeout: "{{ params.recv_timeout | default(30) }}"
register: ping_info
delegate_to: localhost
- name: Change asset password (paramiko)
custom_command:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
login_secret_type: "{{ jms_account.secret_type }}"
login_private_key_path: "{{ jms_account.private_key_path }}"
become: "{{ jms_custom_become | default(False) }}"
become_method: "{{ jms_custom_become_method | default('su') }}"
become_user: "{{ jms_custom_become_user | default('') }}"
become_password: "{{ jms_custom_become_password | default('') }}"
become_private_key_path: "{{ jms_custom_become_private_key_path | default(None) }}"
name: "{{ account.username }}"
password: "{{ account.secret }}"
commands: "{{ params.commands }}"
answers: "{{ params.answers }}"
recv_timeout: "{{ params.recv_timeout | default(30) }}"
delay_time: "{{ params.delay_time | default(2) }}"
prompt: "{{ params.prompt | default('.*') }}"
ignore_errors: true
when: ping_info is succeeded and check_conn_after_change
register: change_info
delegate_to: localhost
- name: Verify password (paramiko)
ssh_ping:
login_user: "{{ account.username }}"
login_password: "{{ account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
become: "{{ account.become.ansible_become | default(False) }}"
become_method: su
become_user: "{{ account.become.ansible_user | default('') }}"
become_password: "{{ account.become.ansible_password | default('') }}"
become_private_key_path: "{{ account.become.ansible_ssh_private_key_file | default(None) }}"
old_ssh_version: "{{ jms_asset.old_ssh_version | default(False) }}"
gateway_args: "{{ jms_asset.ansible_ssh_common_args | default(None) }}"
recv_timeout: "{{ params.recv_timeout | default(30) }}"
delegate_to: localhost
when: check_conn_after_change

View File

@@ -0,0 +1,132 @@
id: change_secret_by_ssh
name: "{{ 'SSH account change secret' | trans }}"
category:
- device
- host
type:
- all
method: change_secret
protocol: ssh
priority: 50
params:
- name: commands
type: text
label: "{{ 'Params commands label' | trans }}"
default: ''
help_text: "{{ 'Params commands help text' | trans }}"
- name: recv_timeout
type: int
label: "{{ 'Params recv_timeout label' | trans }}"
default: 30
help_text: "{{ 'Params recv_timeout help text' | trans }}"
- name: delay_time
type: int
label: "{{ 'Params delay_time label' | trans }}"
default: 2
help_text: "{{ 'Params delay_time help text' | trans }}"
- name: prompt
type: str
label: "{{ 'Params prompt label' | trans }}"
default: '.*'
help_text: "{{ 'Params prompt help text' | trans }}"
- name: answers
type: text
label: "{{ 'Params answer label' | trans }}"
default: '.*'
help_text: "{{ 'Params answer help text' | trans }}"
i18n:
SSH account change secret:
zh: '使用 SSH 命令行自定义改密'
ja: 'SSH コマンドライン方式でカスタムパスワード変更'
en: 'Custom password change by SSH command line'
Params commands help text:
zh: |
请将命令中的指定位置改成特殊符号 <br />
1. 改密账号 -> {username} <br />
2. 改密密码 -> {password} <br />
3. 登录用户密码 -> {login_password} <br />
<strong>多条命令使用换行分割,</strong>执行任务时系统会根据特殊符号替换真实数据。<br />
比如针对 Cisco 主机进行改密,一般需要配置五条命令:<br />
enable <br />
{login_password} <br />
configure terminal <br />
username {username} privilege 0 password {password} <br />
end <br />
ja: |
コマンド内の指定された位置を特殊記号に変更してください。<br />
新しいパスワード(アカウント変更) -> {username} <br />
新しいパスワード(パスワード変更) -> {password} <br />
ログインユーザーパスワード -> {login_password} <br />
<strong>複数のコマンドは改行で区切り、</strong>タスクを実行するときにシステムは特殊記号を使用して実際のデータを置き換えます。<br />
例えば、Cisco機器のパスワードを変更する場合、一般的には5つのコマンドを設定する必要があります<br />
enable <br />
{login_password} <br />
configure terminal <br />
username {username} privilege 0 password {password} <br />
end <br />
en: |
Please change the specified positions in the command to special symbols. <br />
Change password account -> {username} <br />
Change password -> {password} <br />
Login user password -> {login_password} <br />
<strong>Multiple commands are separated by new lines,</strong> and when executing tasks, <br />
the system will replace the special symbols with real data. <br />
For example, to change the password for a Cisco device, you generally need to configure five commands: <br />
enable <br />
{login_password} <br />
configure terminal <br />
username {username} privilege 0 password {password} <br />
end <br />
Params commands label:
zh: '自定义命令'
ja: 'カスタムコマンド'
en: 'Custom command'
Params recv_timeout label:
zh: '超时时间'
ja: 'タイムアウト'
en: 'Timeout'
Params recv_timeout help text:
zh: '等待命令结果返回的超时时间(秒)'
ja: 'コマンドの結果を待つタイムアウト時間(秒)'
en: 'The timeout for waiting for the command result to return (Seconds)'
Params delay_time label:
zh: '延迟发送时间'
ja: '遅延送信時間'
en: 'Delayed send time'
Params delay_time help text:
zh: '每条命令延迟发送的时间间隔(秒)'
ja: '各コマンド送信の遅延間隔(秒)'
en: 'Time interval for each command delay in sending (Seconds)'
Params prompt label:
zh: '提示符'
ja: 'ヒント'
en: 'Prompt'
Params prompt help text:
zh: '终端连接后显示的提示符信息(正则表达式)'
ja: 'ターミナル接続後に表示されるプロンプト情報(正規表現)'
en: 'Prompt information displayed after terminal connection (Regular expression)'
Params answer label:
zh: '命令结果'
ja: 'コマンド結果'
en: 'Command result'
Params answer help text:
zh: |
根据结果匹配度决定是否执行下一条命令,输入框的内容和上方 “自定义命令” 内容按行一一对应(正则表达式)
ja: |
結果の一致度に基づいて次のコマンドを実行するかどうかを決定します。
入力欄の内容は、上の「カスタムコマンド」の内容と行ごとに対応しています(せいきひょうげん)
en: |
Decide whether to execute the next command based on the result match.
The input content corresponds line by line with the content
of the `Custom command` above. (Regular expression)

View File

@@ -1,7 +1,7 @@
- hosts: mongodb
gather_facts: no
vars:
ansible_python_interpreter: /usr/local/bin/python
ansible_python_interpreter: "{{ local_python_interpreter }}"
tasks:
- name: Test MongoDB connection
@@ -11,9 +11,9 @@
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
login_database: "{{ jms_asset.spec_info.db_name }}"
ssl: "{{ jms_asset.spec_info.use_ssl }}"
ssl_ca_certs: "{{ jms_asset.secret_info.ca_cert }}"
ssl_certfile: "{{ jms_asset.secret_info.client_key }}"
ssl: "{{ jms_asset.spec_info.use_ssl | default('') }}"
ssl_ca_certs: "{{ jms_asset.secret_info.ca_cert | default('') }}"
ssl_certfile: "{{ jms_asset.secret_info.client_key | default('') }}"
connection_options:
- tlsAllowInvalidHostnames: "{{ jms_asset.spec_info.allow_invalid_cert}}"
register: db_info
@@ -31,15 +31,15 @@
login_port: "{{ jms_asset.port }}"
login_database: "{{ jms_asset.spec_info.db_name }}"
ssl: "{{ jms_asset.spec_info.use_ssl }}"
ssl_ca_certs: "{{ jms_asset.secret_info.ca_cert }}"
ssl_certfile: "{{ jms_asset.secret_info.client_key }}"
ssl_ca_certs: "{{ jms_asset.secret_info.ca_cert | default('') }}"
ssl_certfile: "{{ jms_asset.secret_info.client_key | default('') }}"
connection_options:
- tlsAllowInvalidHostnames: "{{ jms_asset.spec_info.allow_invalid_cert}}"
db: "{{ jms_asset.spec_info.db_name }}"
name: "{{ account.username }}"
password: "{{ account.secret }}"
ignore_errors: true
when: db_info is succeeded
register: change_info
- name: Verify password
mongodb_ping:
@@ -49,10 +49,10 @@
login_port: "{{ jms_asset.port }}"
login_database: "{{ jms_asset.spec_info.db_name }}"
ssl: "{{ jms_asset.spec_info.use_ssl }}"
ssl_ca_certs: "{{ jms_asset.secret_info.ca_cert }}"
ssl_certfile: "{{ jms_asset.secret_info.client_key }}"
ssl_ca_certs: "{{ jms_asset.secret_info.ca_cert | default('') }}"
ssl_certfile: "{{ jms_asset.secret_info.client_key | default('') }}"
connection_options:
- tlsAllowInvalidHostnames: "{{ jms_asset.spec_info.allow_invalid_cert}}"
when:
- db_info is succeeded
- change_info is succeeded
when: check_conn_after_change
register: result
failed_when: not result.is_available

View File

@@ -1,6 +1,12 @@
id: change_secret_mongodb
name: Change secret for MongoDB
name: "{{ 'MongoDB account change secret' | trans }}"
category: database
type:
- mongodb
method: change_secret
i18n:
MongoDB account change secret:
zh: 使用 Ansible 模块 mongodb 执行 MongoDB 账号改密
ja: Ansible mongodb モジュールを使用して MongoDB アカウントのパスワード変更
en: Using Ansible module mongodb to change MongoDB account secret

View File

@@ -1,8 +1,12 @@
- hosts: mysql
gather_facts: no
vars:
ansible_python_interpreter: /usr/local/bin/python
ansible_python_interpreter: "{{ local_python_interpreter }}"
db_name: "{{ jms_asset.spec_info.db_name }}"
check_ssl: "{{ jms_asset.spec_info.use_ssl and not jms_asset.spec_info.allow_invalid_cert }}"
ca_cert: "{{ jms_asset.secret_info.ca_cert | default('') }}"
ssl_cert: "{{ jms_asset.secret_info.client_cert | default('') }}"
ssl_key: "{{ jms_asset.secret_info.client_key | default('') }}"
tasks:
- name: Test MySQL connection
@@ -11,6 +15,10 @@
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
check_hostname: "{{ check_ssl if check_ssl else omit }}"
ca_cert: "{{ ca_cert if check_ssl and ca_cert | length > 0 else omit }}"
client_cert: "{{ ssl_cert if check_ssl and ssl_cert | length > 0 else omit }}"
client_key: "{{ ssl_key if check_ssl and ssl_key | length > 0 else omit }}"
filter: version
register: db_info
@@ -24,12 +32,17 @@
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
check_hostname: "{{ check_ssl if check_ssl else omit }}"
ca_cert: "{{ ca_cert if check_ssl and ca_cert | length > 0 else omit }}"
client_cert: "{{ ssl_cert if check_ssl and ssl_cert | length > 0 else omit }}"
client_key: "{{ ssl_key if check_ssl and ssl_key | length > 0 else omit }}"
name: "{{ account.username }}"
password: "{{ account.secret }}"
host: "%"
priv: "{{ account.username + '.*:USAGE' if db_name == '' else db_name + '.*:ALL' }}"
priv: "{{ omit if db_name == '' else db_name + '.*:ALL' }}"
append_privs: "{{ db_name != '' | bool }}"
ignore_errors: true
when: db_info is succeeded
register: change_info
- name: Verify password
community.mysql.mysql_info:
@@ -37,7 +50,9 @@
login_password: "{{ account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
check_hostname: "{{ check_ssl if check_ssl else omit }}"
ca_cert: "{{ ca_cert if check_ssl and ca_cert | length > 0 else omit }}"
client_cert: "{{ ssl_cert if check_ssl and ssl_cert | length > 0 else omit }}"
client_key: "{{ ssl_key if check_ssl and ssl_key | length > 0 else omit }}"
filter: version
when:
- db_info is succeeded
- change_info is succeeded
when: check_conn_after_change

View File

@@ -1,7 +1,13 @@
id: change_secret_mysql
name: Change secret for MySQL
name: "{{ 'MySQL account change secret' | trans }}"
category: database
type:
- mysql
- mariadb
method: change_secret
i18n:
MySQL account change secret:
zh: 使用 Ansible 模块 mysql 执行 MySQL 账号改密
ja: Ansible mysql モジュールを使用して MySQL アカウントのパスワード変更
en: Using Ansible module mysql to change MySQL account secret

View File

@@ -1,7 +1,7 @@
- hosts: oracle
gather_facts: no
vars:
ansible_python_interpreter: /usr/local/bin/python
ansible_python_interpreter: "{{ local_python_interpreter }}"
tasks:
- name: Test Oracle connection
@@ -29,8 +29,8 @@
mode: "{{ jms_account.mode }}"
name: "{{ account.username }}"
password: "{{ account.secret }}"
ignore_errors: true
when: db_info is succeeded
register: change_info
- name: Verify password
oracle_ping:
@@ -39,6 +39,5 @@
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
login_database: "{{ jms_asset.spec_info.db_name }}"
when:
- db_info is succeeded
- change_info is succeeded
mode: "{{ account.mode }}"
when: check_conn_after_change

View File

@@ -1,6 +1,11 @@
id: change_secret_oracle
name: Change secret for Oracle
name: "{{ 'Oracle account change secret' | trans }}"
category: database
type:
- oracle
method: change_secret
i18n:
Oracle account change secret:
zh: Oracle 账号改密
ja: Oracle アカウントのパスワード変更

View File

@@ -1,7 +1,11 @@
- hosts: postgre
gather_facts: no
vars:
ansible_python_interpreter: /usr/local/bin/python
ansible_python_interpreter: "{{ local_python_interpreter }}"
check_ssl: "{{ jms_asset.spec_info.use_ssl }}"
ca_cert: "{{ jms_asset.secret_info.ca_cert | default('') }}"
ssl_cert: "{{ jms_asset.secret_info.client_cert | default('') }}"
ssl_key: "{{ jms_asset.secret_info.client_key | default('') }}"
tasks:
- name: Test PostgreSQL connection
@@ -11,6 +15,10 @@
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
login_db: "{{ jms_asset.spec_info.db_name }}"
ca_cert: "{{ ca_cert if check_ssl and ca_cert | length > 0 else omit }}"
ssl_cert: "{{ ssl_cert if check_ssl and ssl_cert | length > 0 else omit }}"
ssl_key: "{{ ssl_key if check_ssl and ssl_key | length > 0 else omit }}"
ssl_mode: "{{ jms_asset.spec_info.pg_ssl_mode }}"
register: result
failed_when: not result.is_available
@@ -28,9 +36,13 @@
db: "{{ jms_asset.spec_info.db_name }}"
name: "{{ account.username }}"
password: "{{ account.secret }}"
ca_cert: "{{ ca_cert if check_ssl and ca_cert | length > 0 else omit }}"
ssl_cert: "{{ ssl_cert if check_ssl and ssl_cert | length > 0 else omit }}"
ssl_key: "{{ ssl_key if check_ssl and ssl_key | length > 0 else omit }}"
ssl_mode: "{{ jms_asset.spec_info.pg_ssl_mode }}"
role_attr_flags: LOGIN
ignore_errors: true
when: result is succeeded
register: change_info
- name: Verify password
community.postgresql.postgresql_ping:
@@ -39,8 +51,10 @@
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
db: "{{ jms_asset.spec_info.db_name }}"
when:
- result is succeeded
- change_info is succeeded
ca_cert: "{{ ca_cert if check_ssl and ca_cert | length > 0 else omit }}"
ssl_cert: "{{ ssl_cert if check_ssl and ssl_cert | length > 0 else omit }}"
ssl_key: "{{ ssl_key if check_ssl and ssl_key | length > 0 else omit }}"
ssl_mode: "{{ jms_asset.spec_info.pg_ssl_mode }}"
when: check_conn_after_change
register: result
failed_when: not result.is_available

View File

@@ -1,6 +1,11 @@
id: change_secret_postgresql
name: Change secret for PostgreSQL
name: "{{ 'PostgreSQL account change secret' | trans }}"
category: database
type:
- postgresql
method: change_secret
i18n:
PostgreSQL account change secret:
zh: PostgreSQL 账号改密
ja: PostgreSQL アカウントのパスワード変更

View File

@@ -1,16 +1,18 @@
- hosts: sqlserver
gather_facts: no
vars:
ansible_python_interpreter: /usr/local/bin/python
ansible_python_interpreter: "{{ local_python_interpreter }}"
tasks:
- name: Test SQLServer connection
community.general.mssql_script:
mssql_script:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
name: '{{ jms_asset.spec_info.db_name }}'
encryption: "{{ jms_asset.encryption | default(None) }}"
tds_version: "{{ jms_asset.tds_version | default(None) }}"
script: |
SELECT @@version
register: db_info
@@ -23,47 +25,53 @@
var: info
- name: Check whether SQLServer User exist
community.general.mssql_script:
mssql_script:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
name: '{{ jms_asset.spec_info.db_name }}'
encryption: "{{ jms_asset.encryption | default(None) }}"
tds_version: "{{ jms_asset.tds_version | default(None) }}"
script: "SELECT 1 from sys.sql_logins WHERE name='{{ account.username }}';"
when: db_info is succeeded
register: user_exist
- name: Change SQLServer password
community.general.mssql_script:
mssql_script:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
name: '{{ jms_asset.spec_info.db_name }}'
script: "ALTER LOGIN {{ account.username }} WITH PASSWORD = '{{ account.secret }}'; select @@version"
encryption: "{{ jms_asset.encryption | default(None) }}"
tds_version: "{{ jms_asset.tds_version | default(None) }}"
script: "ALTER LOGIN {{ account.username }} WITH PASSWORD = '{{ account.secret }}', DEFAULT_DATABASE = {{ jms_asset.spec_info.db_name }}; select @@version"
ignore_errors: true
when: user_exist.query_results[0] | length != 0
register: change_info
- name: Add SQLServer user
community.general.mssql_script:
mssql_script:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
name: '{{ jms_asset.spec_info.db_name }}'
script: "CREATE LOGIN {{ account.username }} WITH PASSWORD = '{{ account.secret }}'; select @@version"
encryption: "{{ jms_asset.encryption | default(None) }}"
tds_version: "{{ jms_asset.tds_version | default(None) }}"
script: "CREATE LOGIN {{ account.username }} WITH PASSWORD = '{{ account.secret }}', DEFAULT_DATABASE = {{ jms_asset.spec_info.db_name }}; CREATE USER {{ account.username }} FOR LOGIN {{ account.username }}; select @@version"
ignore_errors: true
when: user_exist.query_results[0] | length == 0
register: change_info
- name: Verify password
community.general.mssql_script:
mssql_script:
login_user: "{{ account.username }}"
login_password: "{{ account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
name: '{{ jms_asset.spec_info.db_name }}'
encryption: "{{ jms_asset.encryption | default(None) }}"
tds_version: "{{ jms_asset.tds_version | default(None) }}"
script: |
SELECT @@version
when:
- db_info is succeeded
- change_info is succeeded
when: check_conn_after_change

View File

@@ -1,6 +1,11 @@
id: change_secret_sqlserver
name: Change secret for SQLServer
name: "{{ 'SQLServer account change secret' | trans }}"
category: database
type:
- sqlserver
method: change_secret
i18n:
SQLServer account change secret:
zh: SQLServer 账号改密
ja: SQLServer アカウントのパスワード変更

View File

@@ -1,54 +1,123 @@
- hosts: demo
gather_facts: no
tasks:
- name: Test privileged account
- name: "Test privileged {{ jms_account.username }} account"
ansible.builtin.ping:
- name: Change password
- name: "Check if {{ account.username }} user exists"
getent:
database: passwd
key: "{{ account.username }}"
register: user_info
failed_when: false
changed_when: false
- name: "Add {{ account.username }} user"
ansible.builtin.user:
name: "{{ account.username }}"
uid: "{{ params.uid | int if params.uid | length > 0 else omit }}"
shell: "{{ params.shell if params.shell | length > 0 else omit }}"
home: "{{ params.home if params.home | length > 0 else '/home/' + account.username }}"
group: "{{ params.group if params.group | length > 0 else omit }}"
groups: "{{ params.groups if params.groups | length > 0 else omit }}"
append: "{{ true if params.groups | length > 0 else false }}"
expires: -1
state: present
when: user_info.msg is defined
- name: "Set {{ account.username }} sudo setting"
ansible.builtin.lineinfile:
dest: /etc/sudoers
state: present
regexp: "^{{ account.username }} ALL="
line: "{{ account.username + ' ALL=(ALL) NOPASSWD: ' + params.sudo }}"
validate: visudo -cf %s
when:
- user_info.msg is defined or params.modify_sudo
- params.sudo
- name: "Change {{ account.username }} password"
ansible.builtin.user:
name: "{{ account.username }}"
password: "{{ account.secret | password_hash('des') }}"
update_password: always
when: secret_type == "password"
ignore_errors: true
register: change_secret_result
when: account.secret_type == "password"
- name: create user If it already exists, no operation will be performed
ansible.builtin.user:
name: "{{ account.username }}"
when: secret_type == "ssh_key"
- name: "Get home directory for {{ account.username }}"
ansible.builtin.shell: "getent passwd {{ account.username }} | cut -d: -f6"
register: home_dir
when: account.secret_type == "ssh_key"
ignore_errors: yes
- name: remove jumpserver ssh key
- name: "Check if home directory exists for {{ account.username }}"
ansible.builtin.stat:
path: "{{ home_dir.stdout.strip() }}"
register: home_dir_stat
when: account.secret_type == "ssh_key"
ignore_errors: yes
- name: "Ensure {{ account.username }} home directory exists"
ansible.builtin.file:
path: "{{ home_dir.stdout.strip() }}"
state: directory
owner: "{{ account.username }}"
group: "{{ account.username }}"
mode: '0750'
when:
- account.secret_type == "ssh_key"
- home_dir_stat.stat.exists == false
ignore_errors: yes
- name: Remove jumpserver ssh key
ansible.builtin.lineinfile:
dest: "{{ kwargs.dest }}"
regexp: "{{ kwargs.regexp }}"
dest: "{{ home_dir.stdout.strip() }}/.ssh/authorized_keys"
regexp: "{{ ssh_params.regexp }}"
state: absent
when:
- secret_type == "ssh_key"
- kwargs.strategy == "set_jms"
- account.secret_type == "ssh_key"
- ssh_params.strategy == "set_jms"
ignore_errors: yes
- name: Change SSH key
- name: "Change {{ account.username }} SSH key"
ansible.builtin.authorized_key:
user: "{{ account.username }}"
key: "{{ account.secret }}"
exclusive: "{{ kwargs.exclusive }}"
when: secret_type == "ssh_key"
exclusive: "{{ ssh_params.exclusive }}"
register: change_secret_result
when: account.secret_type == "ssh_key"
- name: Refresh connection
ansible.builtin.meta: reset_connection
- name: Verify password
ansible.builtin.ping:
become: no
vars:
ansible_user: "{{ account.username }}"
ansible_password: "{{ account.secret }}"
ansible_become: no
when: secret_type == "password"
- name: "Verify {{ account.username }} password (paramiko)"
ssh_ping:
login_user: "{{ account.username }}"
login_password: "{{ account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
gateway_args: "{{ jms_asset.ansible_ssh_common_args | default(None) }}"
become: "{{ account.become.ansible_become | default(False) }}"
become_method: su
become_user: "{{ account.become.ansible_user | default('') }}"
become_password: "{{ account.become.ansible_password | default('') }}"
become_private_key_path: "{{ account.become.ansible_ssh_private_key_file | default(None) }}"
old_ssh_version: "{{ jms_asset.old_ssh_version | default(False) }}"
when:
- account.secret_type == "password"
- check_conn_after_change or change_secret_result.failed | default(false)
delegate_to: localhost
- name: Verify SSH key
ansible.builtin.ping:
become: no
vars:
ansible_user: "{{ account.username }}"
ansible_ssh_private_key_file: "{{ account.private_key_path }}"
ansible_become: no
when: secret_type == "ssh_key"
- name: "Verify {{ account.username }} SSH KEY (paramiko)"
ssh_ping:
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
login_user: "{{ account.username }}"
login_private_key_path: "{{ account.private_key_path }}"
gateway_args: "{{ jms_asset.ansible_ssh_common_args | default(None) }}"
old_ssh_version: "{{ jms_asset.old_ssh_version | default(False) }}"
when:
- account.secret_type == "ssh_key"
- check_conn_after_change or change_secret_result.failed | default(false)
delegate_to: localhost

View File

@@ -1,6 +1,108 @@
id: change_secret_aix
name: Change secret for aix
name: "{{ 'AIX account change secret' | trans }}"
category: host
type:
- AIX
method: change_secret
params:
- name: modify_sudo
type: bool
label: "{{ 'Modify sudo label' | trans }}"
default: False
help_text: "{{ 'Modify params sudo help text' | trans }}"
- name: sudo
type: str
label: 'Sudo'
default: '/bin/whoami'
help_text: "{{ 'Params sudo help text' | trans }}"
- name: shell
type: str
label: 'Shell'
default: '/bin/bash'
- name: home
type: str
label: "{{ 'Params home label' | trans }}"
default: ''
help_text: "{{ 'Params home help text' | trans }}"
- name: group
type: str
label: "{{ 'Params group label' | trans }}"
default: ''
help_text: "{{ 'Params group help text' | trans }}"
- name: groups
type: str
label: "{{ 'Params groups label' | trans }}"
default: ''
help_text: "{{ 'Params groups help text' | trans }}"
- name: uid
type: str
label: "{{ 'Params uid label' | trans }}"
default: ''
help_text: "{{ 'Params uid help text' | trans }}"
i18n:
AIX account change secret:
zh: '使用 Ansible 模块 user 执行账号改密 (DES)'
ja: 'Ansible user モジュールを使用してアカウントのパスワード変更 (DES)'
en: 'Using Ansible module user to change account secret (DES)'
Modify params sudo help text:
zh: '如果用户存在可以修改sudo权限'
ja: 'ユーザーが存在する場合、sudo権限を変更できます'
en: 'If the user exists, sudo permissions can be modified'
Params sudo help text:
zh: '使用逗号分隔多个命令,如: /bin/whoami,/sbin/ifconfig'
ja: 'コンマで区切って複数のコマンドを入力してください。例: /bin/whoami,/sbin/ifconfig'
en: 'Use commas to separate multiple commands, such as: /bin/whoami,/sbin/ifconfig'
Params home help text:
zh: '默认家目录 /home/{账号用户名}'
ja: 'デフォルトのホームディレクトリ /home/{アカウントユーザ名}'
en: 'Default home directory /home/{account username}'
Params group help text:
zh: '请输入用户组(名字或数字),只能输入一个(需填写已存在的用户组)'
ja: 'ユーザー グループ (名前または番号) を入力してください。入力できるのは 1 つだけです (既存のユーザー グループを入力する必要があります)'
en: 'Please enter a user group (name or number), only one can be entered (must fill in an existing user group)'
Params groups help text:
zh: '请输入用户组,多个用户组使用逗号分隔(需填写已存在的用户组)'
ja: 'グループを入力してください。複数のグループはコンマで区切ってください(既存のグループを入力してください)'
en: 'Please enter the group. Multiple groups are separated by commas (please enter the existing group)'
Params uid help text:
zh: '请输入用户ID'
ja: 'ユーザーIDを入力してください'
en: 'Please enter the user ID'
Modify sudo label:
zh: '修改 sudo 权限'
ja: 'sudo 権限を変更'
en: 'Modify sudo'
Params home label:
zh: '家目录'
ja: 'ホームディレクトリ'
en: 'Home'
Params groups label:
zh: '用户组'
ja: 'グループ'
en: 'Groups'
Params group label:
zh: '主组'
ja: '主组'
en: 'Main group'
Params uid label:
zh: '用户ID'
ja: 'ユーザーID'
en: 'User ID'

View File

@@ -1,54 +1,123 @@
- hosts: demo
gather_facts: no
tasks:
- name: Test privileged account
- name: "Test privileged {{ jms_account.username }} account"
ansible.builtin.ping:
- name: Change password
- name: "Check if {{ account.username }} user exists"
getent:
database: passwd
key: "{{ account.username }}"
register: user_info
failed_when: false
changed_when: false
- name: "Add {{ account.username }} user"
ansible.builtin.user:
name: "{{ account.username }}"
uid: "{{ params.uid | int if params.uid | length > 0 else omit }}"
shell: "{{ params.shell if params.shell | length > 0 else omit }}"
home: "{{ params.home if params.home | length > 0 else '/home/' + account.username }}"
group: "{{ params.group if params.group | length > 0 else omit }}"
groups: "{{ params.groups if params.groups | length > 0 else omit }}"
append: "{{ true if params.groups | length > 0 else false }}"
expires: -1
state: present
when: user_info.msg is defined
- name: "Set {{ account.username }} sudo setting"
ansible.builtin.lineinfile:
dest: /etc/sudoers
state: present
regexp: "^{{ account.username }} ALL="
line: "{{ account.username + ' ALL=(ALL) NOPASSWD: ' + params.sudo }}"
validate: visudo -cf %s
when:
- user_info.msg is defined or params.modify_sudo
- params.sudo
- name: "Change {{ account.username }} password"
ansible.builtin.user:
name: "{{ account.username }}"
password: "{{ account.secret | password_hash('sha512') }}"
update_password: always
when: secret_type == "password"
ignore_errors: true
register: change_secret_result
when: account.secret_type == "password"
- name: create user If it already exists, no operation will be performed
ansible.builtin.user:
name: "{{ account.username }}"
when: secret_type == "ssh_key"
- name: "Get home directory for {{ account.username }}"
ansible.builtin.shell: "getent passwd {{ account.username }} | cut -d: -f6"
register: home_dir
when: account.secret_type == "ssh_key"
ignore_errors: yes
- name: remove jumpserver ssh key
- name: "Check if home directory exists for {{ account.username }}"
ansible.builtin.stat:
path: "{{ home_dir.stdout.strip() }}"
register: home_dir_stat
when: account.secret_type == "ssh_key"
ignore_errors: yes
- name: "Ensure {{ account.username }} home directory exists"
ansible.builtin.file:
path: "{{ home_dir.stdout.strip() }}"
state: directory
owner: "{{ account.username }}"
group: "{{ account.username }}"
mode: '0750'
when:
- account.secret_type == "ssh_key"
- home_dir_stat.stat.exists == false
ignore_errors: yes
- name: Remove jumpserver ssh key
ansible.builtin.lineinfile:
dest: "{{ kwargs.dest }}"
regexp: "{{ kwargs.regexp }}"
dest: "{{ home_dir.stdout.strip() }}/.ssh/authorized_keys"
regexp: "{{ ssh_params.regexp }}"
state: absent
when:
- secret_type == "ssh_key"
- kwargs.strategy == "set_jms"
- account.secret_type == "ssh_key"
- ssh_params.strategy == "set_jms"
ignore_errors: yes
- name: Change SSH key
- name: "Change {{ account.username }} SSH key"
ansible.builtin.authorized_key:
user: "{{ account.username }}"
key: "{{ account.secret }}"
exclusive: "{{ kwargs.exclusive }}"
when: secret_type == "ssh_key"
exclusive: "{{ ssh_params.exclusive }}"
register: change_secret_result
when: account.secret_type == "ssh_key"
- name: Refresh connection
ansible.builtin.meta: reset_connection
- name: Verify password
ansible.builtin.ping:
become: no
vars:
ansible_user: "{{ account.username }}"
ansible_password: "{{ account.secret }}"
ansible_become: no
when: secret_type == "password"
- name: "Verify {{ account.username }} password (paramiko)"
ssh_ping:
login_user: "{{ account.username }}"
login_password: "{{ account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
gateway_args: "{{ jms_asset.ansible_ssh_common_args | default(None) }}"
become: "{{ account.become.ansible_become | default(False) }}"
become_method: su
become_user: "{{ account.become.ansible_user | default('') }}"
become_password: "{{ account.become.ansible_password | default('') }}"
become_private_key_path: "{{ account.become.ansible_ssh_private_key_file | default(None) }}"
old_ssh_version: "{{ jms_asset.old_ssh_version | default(False) }}"
when:
- account.secret_type == "password"
- check_conn_after_change or change_secret_result.failed | default(false)
delegate_to: localhost
- name: Verify SSH key
ansible.builtin.ping:
become: no
vars:
ansible_user: "{{ account.username }}"
ansible_ssh_private_key_file: "{{ account.private_key_path }}"
ansible_become: no
when: secret_type == "ssh_key"
- name: "Verify {{ account.username }} SSH KEY (paramiko)"
ssh_ping:
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
login_user: "{{ account.username }}"
login_private_key_path: "{{ account.private_key_path }}"
gateway_args: "{{ jms_asset.ansible_ssh_common_args | default(None) }}"
old_ssh_version: "{{ jms_asset.old_ssh_version | default(False) }}"
when:
- account.secret_type == "ssh_key"
- check_conn_after_change or change_secret_result.failed | default(false)
delegate_to: localhost

View File

@@ -1,7 +1,110 @@
id: change_secret_posix
name: Change secret for posix
name: "{{ 'Posix account change secret' | trans }}"
category: host
type:
- unix
- linux
method: change_secret
params:
- name: modify_sudo
type: bool
label: "{{ 'Modify sudo label' | trans }}"
default: False
help_text: "{{ 'Modify params sudo help text' | trans }}"
- name: sudo
type: str
label: 'Sudo'
default: '/bin/whoami'
help_text: "{{ 'Params sudo help text' | trans }}"
- name: shell
type: str
label: 'Shell'
default: '/bin/bash'
help_text: ''
- name: home
type: str
label: "{{ 'Params home label' | trans }}"
default: ''
help_text: "{{ 'Params home help text' | trans }}"
- name: group
type: str
label: "{{ 'Params group label' | trans }}"
default: ''
help_text: "{{ 'Params group help text' | trans }}"
- name: groups
type: str
label: "{{ 'Params groups label' | trans }}"
default: ''
help_text: "{{ 'Params groups help text' | trans }}"
- name: uid
type: str
label: "{{ 'Params uid label' | trans }}"
default: ''
help_text: "{{ 'Params uid help text' | trans }}"
i18n:
Posix account change secret:
zh: '使用 Ansible 模块 user 执行账号改密 (SHA512)'
ja: 'Ansible user モジュールを使用して アカウントのパスワード変更 (SHA512)'
en: 'Using Ansible module user to change account secret (SHA512)'
Modify params sudo help text:
zh: '如果用户存在可以修改sudo权限'
ja: 'ユーザーが存在する場合、sudo権限を変更できます'
en: 'If the user exists, sudo permissions can be modified'
Params sudo help text:
zh: '使用逗号分隔多个命令,如: /bin/whoami,/sbin/ifconfig'
ja: 'コンマで区切って複数のコマンドを入力してください。例: /bin/whoami,/sbin/ifconfig'
en: 'Use commas to separate multiple commands, such as: /bin/whoami,/sbin/ifconfig'
Params home help text:
zh: '默认家目录 /home/{账号用户名}'
ja: 'デフォルトのホームディレクトリ /home/{アカウントユーザ名}'
en: 'Default home directory /home/{account username}'
Params group help text:
zh: '请输入用户组(名字或数字),只能输入一个(需填写已存在的用户组)'
ja: 'ユーザー グループ (名前または番号) を入力してください。入力できるのは 1 つだけです (既存のユーザー グループを入力する必要があります)'
en: 'Please enter a user group (name or number), only one can be entered (must fill in an existing user group)'
Params groups help text:
zh: '请输入用户组,多个用户组使用逗号分隔(需填写已存在的用户组)'
ja: 'グループを入力してください。複数のグループはコンマで区切ってください(既存のグループを入力してください)'
en: 'Please enter the group. Multiple groups are separated by commas (please enter the existing group)'
Params uid help text:
zh: '请输入用户ID'
ja: 'ユーザーIDを入力してください'
en: 'Please enter the user ID'
Modify sudo label:
zh: '修改 sudo 权限'
ja: 'sudo 権限を変更'
en: 'Modify sudo'
Params home label:
zh: '家目录'
ja: 'ホームディレクトリ'
en: 'Home'
Params groups label:
zh: '用户组'
ja: 'グループ'
en: 'Groups'
Params group label:
zh: '主组'
ja: '主组'
en: 'Main group'
Params uid label:
zh: '用户ID'
ja: 'ユーザーID'
en: 'User ID'

View File

@@ -4,23 +4,16 @@
- name: Test privileged account
ansible.windows.win_ping:
# - name: Print variables
# debug:
# msg: "Username: {{ account.username }}, Password: {{ account.secret }}"
- name: Get groups of a Windows user
ansible.windows.win_user:
name: "{{ jms_account.username }}"
register: user_info
- name: Change password
ansible.windows.win_user:
fullname: "{{ account.username}}"
name: "{{ account.username }}"
password: "{{ account.secret }}"
groups: "{{ user_info.groups[0].name }}"
password_never_expires: yes
groups: "{{ params.groups }}"
groups_action: add
update_password: always
ignore_errors: true
when: account.secret_type == "password"
- name: Refresh connection
@@ -31,4 +24,4 @@
vars:
ansible_user: "{{ account.username }}"
ansible_password: "{{ account.secret }}"
when: account.secret_type == "password"
when: account.secret_type == "password" and check_conn_after_change

View File

@@ -1,7 +1,30 @@
id: change_secret_local_windows
name: Change secret local account for Windows
name: "{{ 'Windows account change secret' | trans }}"
version: 1
method: change_secret
category: host
type:
- windows
params:
- name: groups
type: str
label: "{{ 'Params groups label' | trans }}"
default: 'Users,Remote Desktop Users'
help_text: "{{ 'Params groups help text' | trans }}"
i18n:
Windows account change secret:
zh: '使用 Ansible 模块 win_user 执行 Windows 账号改密'
ja: 'Ansible win_user モジュールを使用して Windows アカウントのパスワード変更'
en: 'Using Ansible module win_user to change Windows account secret'
Params groups help text:
zh: '请输入用户组,多个用户组使用逗号分隔(需填写已存在的用户组)'
ja: 'グループを入力してください。複数のグループはコンマで区切ってください(既存のグループを入力してください)'
en: 'Please enter the group. Multiple groups are separated by commas (please enter the existing group)'
Params groups label:
zh: '用户组'
ja: 'グループ'
en: 'Groups'

View File

@@ -0,0 +1,27 @@
- hosts: demo
gather_facts: no
tasks:
- name: Test privileged account
ansible.windows.win_ping:
- name: Change password
community.windows.win_domain_user:
name: "{{ account.username }}"
password: "{{ account.secret }}"
update_password: always
password_never_expires: yes
state: present
groups: "{{ params.groups }}"
groups_action: add
ignore_errors: true
when: account.secret_type == "password"
- name: Refresh connection
ansible.builtin.meta: reset_connection
- name: Verify password
ansible.windows.win_ping:
vars:
ansible_user: "{{ account.full_username }}"
ansible_password: "{{ account.secret }}"
when: account.secret_type == "password" and check_conn_after_change

View File

@@ -0,0 +1,32 @@
id: change_secret_ad_windows
name: "{{ 'Windows account change secret' | trans }}"
version: 1
method: change_secret
category:
- ds
type:
- windows_ad
params:
- name: groups
type: str
label: "{{ 'Params groups label' | trans }}"
default: 'Users,Remote Desktop Users'
help_text: "{{ 'Params groups help text' | trans }}"
i18n:
Windows account change secret:
zh: '使用 Ansible 模块 win_domain_user 执行 Windows 账号改密'
ja: 'Ansible win_domain_user モジュールを使用して Windows アカウントのパスワード変更'
en: 'Using Ansible module win_domain_user to change Windows account secret'
Params groups help text:
zh: '请输入用户组,多个用户组使用逗号分隔(需填写已存在的用户组)'
ja: 'グループを入力してください。複数のグループはコンマで区切ってください(既存のグループを入力してください)'
en: 'Please enter the group. Multiple groups are separated by commas (please enter the existing group)'
Params groups label:
zh: '用户组'
ja: 'グループ'
en: 'Groups'

View File

@@ -0,0 +1,31 @@
- hosts: demo
gather_facts: no
tasks:
- name: Test privileged account
ansible.windows.win_ping:
- name: Change password
ansible.windows.win_user:
fullname: "{{ account.username}}"
name: "{{ account.username }}"
password: "{{ account.secret }}"
password_never_expires: yes
groups: "{{ params.groups }}"
groups_action: add
update_password: always
ignore_errors: true
when: account.secret_type == "password"
- name: Refresh connection
ansible.builtin.meta: reset_connection
- name: Verify password (pyfreerdp)
rdp_ping:
login_host: "{{ jms_asset.origin_address }}"
login_port: "{{ jms_asset.protocols | selectattr('name', 'equalto', 'rdp') | map(attribute='port') | first }}"
login_user: "{{ account.username }}"
login_password: "{{ account.secret }}"
login_secret_type: "{{ account.secret_type }}"
gateway_args: "{{ jms_gateway | default({}) }}"
when: account.secret_type == "password" and check_conn_after_change
delegate_to: localhost

View File

@@ -0,0 +1,32 @@
id: change_secret_windows_rdp_verify
name: "{{ 'Windows account change secret rdp verify' | trans }}"
version: 1
method: change_secret
category: host
type:
- windows
priority: 49
params:
- name: groups
type: str
label: "{{ 'Params groups label' | trans }}"
default: 'Users,Remote Desktop Users'
help_text: "{{ 'Params groups help text' | trans }}"
i18n:
Windows account change secret rdp verify:
zh: '使用 Ansible 模块 win_user 执行 Windows 账号改密(最后使用 Python 模块 pyfreerdp 验证账号的可连接性)'
ja: 'Ansible モジュール win_user を使用して Windows アカウントのパスワードを変更します (最後に Python モジュール pyfreerdp を使用してアカウントの接続を確認します)'
en: 'Use the Ansible module win_user to change the Windows account password (finally use the Python module pyfreerdp to verify the account connectivity)'
Params groups help text:
zh: '请输入用户组,多个用户组使用逗号分隔(需填写已存在的用户组)'
ja: 'グループを入力してください。複数のグループはコンマで区切ってください(既存のグループを入力してください)'
en: 'Please enter the group. Multiple groups are separated by commas (please enter the existing group)'
Params groups label:
zh: '用户组'
ja: 'グループ'
en: 'Groups'

View File

@@ -1,166 +1,57 @@
import os
import time
from collections import defaultdict
from copy import deepcopy
from django.conf import settings
from django.utils import timezone
from openpyxl import Workbook
from django.utils.translation import gettext_lazy as _
from xlsxwriter import Workbook
from accounts.const import AutomationTypes, SecretType, SSHKeyStrategy, SecretStrategy
from accounts.const import (
AutomationTypes, SecretStrategy, ChangeSecretRecordStatusChoice
)
from accounts.models import ChangeSecretRecord
from accounts.notifications import ChangeSecretExecutionTaskMsg
from accounts.serializers import ChangeSecretRecordBackUpSerializer
from assets.const import HostTypes
from common.utils import get_logger, lazyproperty
from common.utils import get_logger
from common.utils.file import encrypt_and_compress_zip_file
from common.utils.timezone import local_now_display
from users.models import User
from ..base.manager import AccountBasePlaybookManager
from ...utils import SecretGenerator
from common.utils.timezone import local_now_filename
from ..base.manager import BaseChangeSecretPushManager
logger = get_logger(__name__)
class ChangeSecretManager(AccountBasePlaybookManager):
class ChangeSecretManager(BaseChangeSecretPushManager):
ansible_account_prefer = ''
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.method_hosts_mapper = defaultdict(list)
self.secret_type = self.execution.snapshot['secret_type']
self.secret_strategy = self.execution.snapshot.get(
'secret_strategy', SecretStrategy.custom
)
self.ssh_key_change_strategy = self.execution.snapshot.get(
'ssh_key_change_strategy', SSHKeyStrategy.add
)
self.snapshot_account_usernames = self.execution.snapshot['accounts']
self.name_recorder_mapper = {} # 做个映射,方便后面处理
@classmethod
def method_type(cls):
return AutomationTypes.change_secret
def get_kwargs(self, account, secret):
kwargs = {}
if self.secret_type != SecretType.SSH_KEY:
return kwargs
kwargs['strategy'] = self.ssh_key_change_strategy
kwargs['exclusive'] = 'yes' if kwargs['strategy'] == SSHKeyStrategy.set else 'no'
def gen_account_inventory(self, account, asset, h, path_dir):
record = self.get_or_create_record(asset, account, h['name'])
new_secret, private_key_path = self.handle_ssh_secret(account.secret_type, record.new_secret, path_dir)
h = self.gen_inventory(h, account, new_secret, private_key_path, asset)
return h, record
if kwargs['strategy'] == SSHKeyStrategy.set_jms:
kwargs['dest'] = '/home/{}/.ssh/authorized_keys'.format(account.username)
kwargs['regexp'] = '.*{}$'.format(secret.split()[2].strip())
return kwargs
def get_or_create_record(self, asset, account, name):
asset_account_id = f'{asset.id}-{account.id}'
@lazyproperty
def secret_generator(self):
return SecretGenerator(
self.secret_strategy, self.secret_type,
self.execution.snapshot.get('password_rules')
)
def get_secret(self):
if self.secret_strategy == SecretStrategy.custom:
return self.execution.snapshot['secret']
if asset_account_id in self.record_map:
record_id = self.record_map[asset_account_id]
record = ChangeSecretRecord.objects.filter(id=record_id).first()
else:
return self.secret_generator.get_secret()
new_secret = self.get_secret(account)
record = self.create_record(asset, account, new_secret)
def host_callback(
self, host, asset=None, account=None,
automation=None, path_dir=None, **kwargs
):
host = super().host_callback(
host, asset=asset, account=account, automation=automation,
path_dir=path_dir, **kwargs
self.name_record_mapper[name] = record
return record
def create_record(self, asset, account, new_secret):
record = ChangeSecretRecord(
asset=asset, account=account, execution=self.execution,
old_secret=account.secret, new_secret=new_secret,
comment=f'{account.username}@{asset.address}'
)
if host.get('error'):
return host
accounts = asset.accounts.all()
if account:
accounts = accounts.exclude(username=account.username)
if '*' not in self.snapshot_account_usernames:
accounts = accounts.filter(username__in=self.snapshot_account_usernames)
accounts = accounts.filter(secret_type=self.secret_type)
if not accounts:
print('没有发现待改密账号: %s 用户名: %s 类型: %s' % (
asset.name, self.snapshot_account_usernames, self.secret_type
))
return []
method_attr = getattr(automation, self.method_type() + '_method')
method_hosts = self.method_hosts_mapper[method_attr]
method_hosts = [h for h in method_hosts if h != host['name']]
inventory_hosts = []
records = []
host['secret_type'] = self.secret_type
if asset.type == HostTypes.WINDOWS and self.secret_type == SecretType.SSH_KEY:
print(f'Windows {asset} does not support ssh key push \n')
return inventory_hosts
for account in accounts:
h = deepcopy(host)
h['name'] += '(' + account.username + ')'
new_secret = self.get_secret()
recorder = ChangeSecretRecord(
asset=asset, account=account, execution=self.execution,
old_secret=account.secret, new_secret=new_secret,
)
records.append(recorder)
self.name_recorder_mapper[h['name']] = recorder
private_key_path = None
if self.secret_type == SecretType.SSH_KEY:
private_key_path = self.generate_private_key_path(new_secret, path_dir)
new_secret = self.generate_public_key(new_secret)
h['kwargs'] = self.get_kwargs(account, new_secret)
h['account'] = {
'name': account.name,
'username': account.username,
'secret_type': account.secret_type,
'secret': new_secret,
'private_key_path': private_key_path
}
if asset.platform.type == 'oracle':
h['account']['mode'] = 'sysdba' if account.privileged else None
inventory_hosts.append(h)
method_hosts.append(h['name'])
self.method_hosts_mapper[method_attr] = method_hosts
ChangeSecretRecord.objects.bulk_create(records)
return inventory_hosts
def on_host_success(self, host, result):
recorder = self.name_recorder_mapper.get(host)
if not recorder:
return
recorder.status = 'success'
recorder.date_finished = timezone.now()
recorder.save()
account = recorder.account
if not account:
print("Account not found, deleted ?")
return
account.secret = recorder.new_secret
account.save(update_fields=['secret'])
def on_host_error(self, host, error, result):
recorder = self.name_recorder_mapper.get(host)
if not recorder:
return
recorder.status = 'failed'
recorder.date_finished = timezone.now()
recorder.error = error
recorder.save()
def on_runner_failed(self, runner, e):
logger.error("Change secret error: ", e)
return record
def check_secret(self):
if self.secret_strategy == SecretStrategy.custom \
@@ -169,51 +60,80 @@ class ChangeSecretManager(AccountBasePlaybookManager):
return False
return True
def run(self, *args, **kwargs):
if not self.check_secret():
return
super().run(*args, **kwargs)
recorders = self.name_recorder_mapper.values()
recorders = list(recorders)
self.send_recorder_mail(recorders)
@staticmethod
def get_summary(records):
total, succeed, failed = 0, 0, 0
for record in records:
if record.status == ChangeSecretRecordStatusChoice.success.value:
succeed += 1
else:
failed += 1
total += 1
summary = _('Success: %s, Failed: %s, Total: %s') % (succeed, failed, total)
return summary
def print_summary(self):
records = list(self.name_record_mapper.values())
summary = self.get_summary(records)
print('\n\n' + '-' * 80)
plan_execution_end = _('Plan execution end')
print('{} {}\n'.format(plan_execution_end, local_now_filename()))
time_cost = _('Duration')
print('{}: {}s'.format(time_cost, self.duration))
print(summary)
def send_report_if_need(self, *args, **kwargs):
if self.secret_type and not self.check_secret():
return
records = list(self.name_record_mapper.values())
if self.record_map:
return
def send_recorder_mail(self, recorders):
recipients = self.execution.recipients
if not recorders or not recipients:
if not recipients:
return
recipients = User.objects.filter(id__in=list(recipients.keys()))
if not records:
return
summary = self.get_summary(records)
self.send_record_mail(recipients, records, summary)
def send_record_mail(self, recipients, records, summary):
name = self.execution.snapshot['name']
path = os.path.join(os.path.dirname(settings.BASE_DIR), 'tmp')
filename = os.path.join(path, f'{name}-{local_now_display()}-{time.time()}.xlsx')
if not self.create_file(recorders, filename):
filename = os.path.join(path, f'{name}-{local_now_filename()}-{time.time()}.xlsx')
if not self.create_file(records, filename):
return
for user in recipients:
attachments = []
if user.secret_key:
password = user.secret_key.encode('utf8')
attachment = os.path.join(path, f'{name}-{local_now_display()}-{time.time()}.zip')
encrypt_and_compress_zip_file(attachment, password, [filename])
attachment = os.path.join(path, f'{name}-{local_now_filename()}-{time.time()}.zip')
encrypt_and_compress_zip_file(attachment, user.secret_key, [filename])
attachments = [attachment]
ChangeSecretExecutionTaskMsg(name, user).publish(attachments)
ChangeSecretExecutionTaskMsg(name, user, summary).publish(attachments)
os.remove(filename)
@staticmethod
def create_file(recorders, filename):
def create_file(records, filename):
serializer_cls = ChangeSecretRecordBackUpSerializer
serializer = serializer_cls(recorders, many=True)
serializer = serializer_cls(records, many=True)
header = [str(v.label) for v in serializer.child.fields.values()]
rows = [list(row.values()) for row in serializer.data]
rows = [[str(i) for i in row.values()] for row in serializer.data]
if not rows:
return False
rows.insert(0, header)
wb = Workbook(filename)
ws = wb.create_sheet('Sheet1')
for row in rows:
ws.append(row)
wb.save(filename)
ws = wb.add_worksheet('Sheet1')
for row_index, row_data in enumerate(rows):
for col_index, col_data in enumerate(row_data):
ws.write_string(row_index, col_index, col_data)
wb.close()
return True
def get_report_template(self):
return "accounts/change_secret_report.html"

View File

@@ -0,0 +1,78 @@
#!/usr/bin/env python
#
import re
import sqlite3
import sys
def is_weak_password(password):
if len(password) < 8:
return True
# 判断是否只有一种字符类型
if password.isdigit() or password.isalpha():
return True
# 判断是否只包含数字或字母
if password.islower() or password.isupper():
return True
# 判断是否包含常见弱密码
common_passwords = ["123456", "password", "12345678", "qwerty", "abc123"]
if password.lower() in common_passwords:
return True
# 正则表达式判断字符多样性(数字、字母、特殊字符)
if (
not re.search(r"[A-Za-z]", password)
or not re.search(r"[0-9]", password)
or not re.search(r"[\W_]", password)
):
return True
return False
def parse_it(fname):
count = 0
lines = []
with open(fname, 'rb') as f:
for line in f:
try:
line = line.decode().strip()
except UnicodeDecodeError:
continue
if len(line) > 32:
continue
if is_weak_password(line):
continue
lines.append(line)
count += 0
print(line)
return lines
def insert_to_db(lines):
conn = sqlite3.connect('./leak_passwords.db')
cursor = conn.cursor()
create_table_sql = '''
CREATE TABLE IF NOT EXISTS passwords (
id INTEGER PRIMARY KEY AUTOINCREMENT,
password CHAR(32)
)
'''
create_index_sql = 'CREATE INDEX IF NOT EXISTS idx_password ON passwords(password)'
cursor.execute(create_table_sql)
cursor.execute(create_index_sql)
for line in lines:
cursor.execute('INSERT INTO passwords (password) VALUES (?)', [line])
conn.commit()
if __name__ == '__main__':
filename = sys.argv[1]
lines = parse_it(filename)
insert_to_db(lines)

View File

@@ -0,0 +1,292 @@
import hashlib
import os
import re
import sqlite3
import uuid
from django.conf import settings
from django.utils import timezone
from django.utils.translation import gettext_lazy as _
from accounts.models import Account, AccountRisk, RiskChoice
from assets.automations.base.manager import BaseManager
from common.const import ConfirmOrIgnore
from common.decorators import bulk_create_decorator, bulk_update_decorator
from settings.models import LeakPasswords
# 已设置手动 finish
@bulk_create_decorator(AccountRisk)
def create_risk(data):
return AccountRisk(**data)
# 已设置手动 finish
@bulk_update_decorator(AccountRisk, update_fields=["details", "status"])
def update_risk(risk):
return risk
class BaseCheckHandler:
risk = ''
def __init__(self, assets):
self.assets = assets
def check(self, account):
pass
def clean(self):
pass
class CheckSecretHandler(BaseCheckHandler):
risk = RiskChoice.weak_password
@staticmethod
def is_weak_password(password):
# 判断密码长度
if len(password) < 8:
return True
# 判断是否只有一种字符类型
if password.isdigit() or password.isalpha():
return True
# 判断是否只包含数字或字母
if password.islower() or password.isupper():
return True
# 判断是否包含常见弱密码
common_passwords = ["123456", "password", "12345678", "qwerty", "abc123"]
if password.lower() in common_passwords:
return True
# 正则表达式判断字符多样性(数字、字母、特殊字符)
if (
not re.search(r"[A-Za-z]", password)
or not re.search(r"[0-9]", password)
or not re.search(r"[\W_]", password)
):
return True
return False
def check(self, account):
if not account.secret:
return False
return self.is_weak_password(account.secret)
class CheckRepeatHandler(BaseCheckHandler):
risk = RiskChoice.repeated_password
def __init__(self, assets):
super().__init__(assets)
self.path, self.conn, self.cursor = self.init_repeat_check_db()
self.add_password_for_check_repeat()
@staticmethod
def init_repeat_check_db():
path = os.path.join('/tmp', 'accounts_' + str(uuid.uuid4()) + '.db')
sql = """
CREATE TABLE IF NOT EXISTS accounts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
digest CHAR(32)
)
"""
index = "CREATE INDEX IF NOT EXISTS idx_digest ON accounts(digest)"
conn = sqlite3.connect(path)
cursor = conn.cursor()
cursor.execute(sql)
cursor.execute(index)
return path, conn, cursor
def check(self, account):
if not account.secret:
return False
digest = self.digest(account.secret)
sql = 'SELECT COUNT(*) FROM accounts WHERE digest = ?'
self.cursor.execute(sql, [digest])
result = self.cursor.fetchone()
if not result:
return False
return result[0] > 1
@staticmethod
def digest(secret):
return hashlib.md5(secret.encode()).hexdigest()
def add_password_for_check_repeat(self):
accounts = Account.objects.all().only('id', '_secret', 'secret_type')
sql = "INSERT INTO accounts (digest) VALUES (?)"
for account in accounts:
secret = account.secret
if not secret:
continue
digest = self.digest(secret)
self.cursor.execute(sql, [digest])
self.conn.commit()
def clean(self):
self.cursor.close()
self.conn.close()
os.remove(self.path)
class CheckLeakHandler(BaseCheckHandler):
risk = RiskChoice.leaked_password
def __init__(self, *args):
super().__init__(*args)
self.conn, self.cursor = self.init_leak_password_db()
@staticmethod
def init_leak_password_db():
db_path = os.path.join(
settings.APPS_DIR, 'accounts', 'automations',
'check_account', 'leak_passwords.db'
)
if settings.LEAK_PASSWORD_DB_PATH and os.path.isfile(settings.LEAK_PASSWORD_DB_PATH):
db_path = settings.LEAK_PASSWORD_DB_PATH
db_conn = sqlite3.connect(db_path)
db_cursor = db_conn.cursor()
return db_conn, db_cursor
def check(self, account):
if not account.secret:
return False
is_exist = LeakPasswords.objects.using('sqlite').filter(password=account.secret).exists()
return is_exist
def clean(self):
self.cursor.close()
self.conn.close()
class CheckAccountManager(BaseManager):
batch_size = 100
tmpl = 'Checked the status of account %s: %s'
def __init__(self, execution):
super().__init__(execution)
self.assets = []
self.batch_risks = []
self.handlers = []
def add_risk(self, risk, account):
self.summary[risk] += 1
self.result[risk].append({
'asset': str(account.asset), 'username': account.username,
})
risk_obj = {'account': account, 'risk': risk}
self.batch_risks.append(risk_obj)
def commit_risks(self, assets):
account_risks = AccountRisk.objects.filter(asset__in=assets)
ori_risk_map = {}
for risk in account_risks:
key = f'{risk.account_id}_{risk.risk}'
ori_risk_map[key] = risk
now = timezone.now().isoformat()
for d in self.batch_risks:
account = d["account"]
key = f'{account.id}_{d["risk"]}'
origin_risk = ori_risk_map.get(key)
if origin_risk and origin_risk.status != ConfirmOrIgnore.pending:
details = origin_risk.details or []
details.append({"datetime": now, 'type': 'refind'})
if len(details) > 10:
details = [*details[:5], *details[-5:]]
origin_risk.details = details
origin_risk.status = ConfirmOrIgnore.pending
update_risk(origin_risk)
else:
create_risk({
"account": account,
"asset": account.asset,
"username": account.username,
"risk": d["risk"],
"details": [{"datetime": now, 'type': 'init'}],
})
create_risk.finish()
update_risk.finish()
def pre_run(self):
super().pre_run()
self.assets = self.execution.get_all_assets()
def batch_check(self, handler):
print("Engine: {}".format(handler.__class__.__name__))
for i in range(0, len(self.assets), self.batch_size):
_assets = self.assets[i: i + self.batch_size]
accounts = Account.objects.filter(asset__in=_assets)
print("Start to check accounts: {}".format(len(accounts)))
for account in accounts:
error = handler.check(account)
msg = handler.risk if error else 'ok'
print("Check: {} => {}".format(account, msg))
if not error:
AccountRisk.objects.filter(
asset=account.asset,
username=account.username,
risk=handler.risk
).delete()
continue
self.add_risk(handler.risk, account)
self.commit_risks(_assets)
def do_run(self, *args, **kwargs):
engines = self.execution.snapshot.get("engines", [])
if engines == '__all__':
engines = ['check_account_secret', 'check_account_repeat', 'check_account_leak']
for engine in engines:
if engine == "check_account_secret":
handler = CheckSecretHandler(self.assets)
elif engine == "check_account_repeat":
handler = CheckRepeatHandler(self.assets)
elif engine == "check_account_leak":
handler = CheckLeakHandler(self.assets)
else:
print("Unknown engine: {}".format(engine))
continue
self.handlers.append(handler)
self.batch_check(handler)
def post_run(self):
super().post_run()
for handler in self.handlers:
handler.clean()
def get_report_subject(self):
return _("Check account report of {}").format(self.execution.id)
def get_report_template(self):
return "accounts/check_account_report.html"
def print_summary(self):
tmpl = _("---\nSummary: \nok: {}, weak password: {}, leaked password: {}, "
"repeated password: {}, no secret: {}, using time: {}s").format(
self.summary["ok"],
self.summary[RiskChoice.weak_password],
self.summary[RiskChoice.leaked_password],
self.summary[RiskChoice.repeated_password],
self.summary["no_secret"],
self.duration
)
print(tmpl)

View File

@@ -1,8 +1,10 @@
from .push_account.manager import PushAccountManager
from .change_secret.manager import ChangeSecretManager
from .verify_account.manager import VerifyAccountManager
from .backup_account.manager import AccountBackupManager
from .gather_accounts.manager import GatherAccountsManager
from .change_secret.manager import ChangeSecretManager
from .check_account.manager import CheckAccountManager
from .gather_account.manager import GatherAccountsManager
from .push_account.manager import PushAccountManager
from .remove_account.manager import RemoveAccountManager
from .verify_account.manager import VerifyAccountManager
from .verify_gateway_account.manager import VerifyGatewayAccountManager
from ..const import AutomationTypes
@@ -12,10 +14,11 @@ class ExecutionManager:
AutomationTypes.push_account: PushAccountManager,
AutomationTypes.change_secret: ChangeSecretManager,
AutomationTypes.verify_account: VerifyAccountManager,
AutomationTypes.remove_account: RemoveAccountManager,
AutomationTypes.gather_accounts: GatherAccountsManager,
AutomationTypes.verify_gateway_account: VerifyGatewayAccountManager,
# TODO 后期迁移到自动化策略中
'backup_account': AccountBackupManager,
AutomationTypes.check_account: CheckAccountManager,
AutomationTypes.backup_account: AccountBackupManager,
}
def __init__(self, execution):
@@ -24,3 +27,6 @@ class ExecutionManager:
def run(self, *args, **kwargs):
return self._runner.run(*args, **kwargs)
def __getattr__(self, item):
return getattr(self._runner, item)

View File

@@ -1,7 +1,7 @@
- hosts: mongodb
gather_facts: no
vars:
ansible_python_interpreter: /usr/local/bin/python
ansible_python_interpreter: "{{ local_python_interpreter }}"
tasks:
- name: Get info
@@ -12,10 +12,10 @@
login_port: "{{ jms_asset.port }}"
login_database: "{{ jms_asset.spec_info.db_name }}"
ssl: "{{ jms_asset.spec_info.use_ssl }}"
ssl_ca_certs: "{{ jms_asset.secret_info.ca_cert }}"
ssl_certfile: "{{ jms_asset.secret_info.client_key }}"
ssl_ca_certs: "{{ jms_asset.secret_info.ca_cert | default('') }}"
ssl_certfile: "{{ jms_asset.secret_info.client_key | default('') }}"
connection_options:
- tlsAllowInvalidHostnames: "{{ jms_asset.spec_info.allow_invalid_cert}}"
- tlsAllowInvalidHostnames: "{{ jms_asset.spec_info.allow_invalid_cert }}"
filter: users
register: db_info

View File

@@ -0,0 +1,11 @@
id: gather_accounts_mongodb
name: "{{ 'MongoDB account gather' | trans }}"
category: database
type:
- mongodb
method: gather_accounts
i18n:
MongoDB account gather:
zh: MongoDB 账号收集
ja: MongoDB アカウントの収集

View File

@@ -0,0 +1,29 @@
- hosts: mysql
gather_facts: no
vars:
ansible_python_interpreter: "{{ local_python_interpreter }}"
check_ssl: "{{ jms_asset.spec_info.use_ssl and not jms_asset.spec_info.allow_invalid_cert }}"
ca_cert: "{{ jms_asset.secret_info.ca_cert | default('') }}"
ssl_cert: "{{ jms_asset.secret_info.client_cert | default('') }}"
ssl_key: "{{ jms_asset.secret_info.client_key | default('') }}"
tasks:
- name: Get info
community.mysql.mysql_info:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
check_hostname: "{{ check_ssl if check_ssl else omit }}"
ca_cert: "{{ ca_cert if check_ssl and ca_cert | length > 0 else omit }}"
client_cert: "{{ ssl_cert if check_ssl and ssl_cert | length > 0 else omit }}"
client_key: "{{ ssl_key if check_ssl and ssl_key | length > 0 else omit }}"
filter: users
register: db_info
- name: Define info by set_fact
set_fact:
info: "{{ db_info.users }}"
- debug:
var: info

View File

@@ -0,0 +1,12 @@
id: gather_accounts_mysql
name: "{{ 'MySQL account gather' | trans }}"
category: database
type:
- mysql
- mariadb
method: gather_accounts
i18n:
MySQL account gather:
zh: MySQL 账号收集
ja: MySQL アカウントの収集

View File

@@ -1,7 +1,7 @@
- hosts: oralce
gather_facts: no
vars:
ansible_python_interpreter: /usr/local/bin/python
ansible_python_interpreter: "{{ local_python_interpreter }}"
tasks:
- name: Get info

View File

@@ -0,0 +1,11 @@
id: gather_accounts_oracle
name: "{{ 'Oracle account gather' | trans }}"
category: database
type:
- oracle
method: gather_accounts
i18n:
Oracle account gather:
zh: Oracle 账号收集
ja: Oracle アカウントの収集

View File

@@ -0,0 +1,30 @@
- hosts: postgresql
gather_facts: no
vars:
ansible_python_interpreter: "{{ local_python_interpreter }}"
check_ssl: "{{ jms_asset.spec_info.use_ssl }}"
ca_cert: "{{ jms_asset.secret_info.ca_cert | default('') }}"
ssl_cert: "{{ jms_asset.secret_info.client_cert | default('') }}"
ssl_key: "{{ jms_asset.secret_info.client_key | default('') }}"
tasks:
- name: Get info
community.postgresql.postgresql_info:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
login_db: "{{ jms_asset.spec_info.db_name }}"
ca_cert: "{{ ca_cert if check_ssl and ca_cert | length > 0 else omit }}"
ssl_cert: "{{ ssl_cert if check_ssl and ssl_cert | length > 0 else omit }}"
ssl_key: "{{ ssl_key if check_ssl and ssl_key | length > 0 else omit }}"
ssl_mode: "{{ jms_asset.spec_info.pg_ssl_mode }}"
filter: "roles"
register: db_info
- name: Define info by set_fact
set_fact:
info: "{{ db_info.roles }}"
- debug:
var: info

View File

@@ -0,0 +1,11 @@
id: gather_accounts_postgresql
name: "{{ 'PostgreSQL account gather' | trans }}"
category: database
type:
- postgresql
method: gather_accounts
i18n:
PostgreSQL account gather:
zh: PostgreSQL 账号收集
ja: PostgreSQL アカウントの収集

View File

@@ -0,0 +1,45 @@
- hosts: sqlserver
gather_facts: no
vars:
ansible_python_interpreter: "{{ local_python_interpreter }}"
tasks:
- name: Test SQLServer connection
mssql_script:
login_user: "{{ jms_account.username }}"
login_password: "{{ jms_account.secret }}"
login_host: "{{ jms_asset.address }}"
login_port: "{{ jms_asset.port }}"
name: '{{ jms_asset.spec_info.db_name }}'
encryption: "{{ jms_asset.encryption | default(None) }}"
tds_version: "{{ jms_asset.tds_version | default(None) }}"
script: |
SELECT
l.name,
l.modify_date,
l.is_disabled,
l.create_date,
l.default_database_name,
LOGINPROPERTY(name, 'DaysUntilExpiration') AS days_until_expiration,
MAX(s.login_time) AS last_login_time
FROM
sys.sql_logins l
LEFT JOIN
sys.dm_exec_sessions s
ON
l.name = s.login_name
WHERE
s.is_user_process = 1 OR s.login_name IS NULL
GROUP BY
l.name, l.create_date, l.modify_date, l.is_disabled, l.default_database_name
ORDER BY
last_login_time DESC;
output: dict
register: db_info
- name: Define info by set_fact
set_fact:
info: "{{ db_info.query_results_dict }}"
- debug:
var: info

View File

@@ -0,0 +1,10 @@
id: gather_accounts_sqlserver
name: "{{ 'SQLServer account gather' | trans }}"
category: database
type:
- sqlserver
method: gather_accounts
i18n:
SQLServer account gather:
zh: SQLServer 账号收集
ja: SQLServer アカウントの収集

View File

@@ -0,0 +1,270 @@
from datetime import datetime
from django.utils import timezone
__all__ = ['GatherAccountsFilter']
def parse_date(date_str, default=None):
if not date_str:
return default
if date_str in ['Never', 'null']:
return default
formats = [
'%Y/%m/%d %H:%M:%S',
'%Y-%m-%dT%H:%M:%S',
'%Y-%m-%d %H:%M:%S',
'%d-%m-%Y %H:%M:%S',
'%Y/%m/%d',
'%d-%m-%Y',
]
for fmt in formats:
try:
dt = datetime.strptime(date_str, fmt)
return timezone.make_aware(dt, timezone.get_current_timezone())
except ValueError:
continue
return default
class GatherAccountsFilter:
def __init__(self, tp):
self.tp = tp
@staticmethod
def mysql_filter(info):
result = {}
for host, user_dict in info.items():
for username, user_info in user_dict.items():
password_last_changed = parse_date(user_info.get('password_last_changed'))
password_lifetime = user_info.get('password_lifetime')
user = {
'username': username,
'date_password_change': password_last_changed,
'date_password_expired': password_last_changed + timezone.timedelta(
days=password_lifetime) if password_last_changed and password_lifetime else None,
'date_last_login': None,
'groups': '',
}
result[username] = user
return result
@staticmethod
def postgresql_filter(info):
result = {}
for username, user_info in info.items():
user = {
'username': username,
'date_password_change': None,
'date_password_expired': parse_date(user_info.get('valid_until')),
'date_last_login': None,
'groups': '',
}
detail = {
'can_login': user_info.get('canlogin'),
'superuser': user_info.get('superuser'),
}
user['detail'] = detail
result[username] = user
return result
@staticmethod
def sqlserver_filter(info):
if not info:
return {}
result = {}
for user_info in info[0][0]:
days_until_expiration = user_info.get('days_until_expiration')
date_password_expired = timezone.now() + timezone.timedelta(
days=int(days_until_expiration)) if days_until_expiration else None
user = {
'username': user_info.get('name', ''),
'date_password_change': parse_date(user_info.get('modify_date')),
'date_password_expired': date_password_expired,
'date_last_login': parse_date(user_info.get('last_login_time')),
'groups': '',
}
detail = {
'create_date': user_info.get('create_date', ''),
'is_disabled': user_info.get('is_disabled', ''),
'default_database_name': user_info.get('default_database_name', ''),
}
user['detail'] = detail
result[user['username']] = user
return result
@staticmethod
def oracle_filter(info):
result = {}
for default_tablespace, users in info.items():
for username, user_info in users.items():
user = {
'username': username,
'date_password_change': parse_date(user_info.get('password_change_date')),
'date_password_expired': parse_date(user_info.get('expiry_date')),
'date_last_login': parse_date(user_info.get('last_login')),
'groups': '',
}
detail = {
'uid': user_info.get('user_id', ''),
'create_date': user_info.get('created', ''),
'account_status': user_info.get('account_status', ''),
'default_tablespace': default_tablespace,
'roles': user_info.get('roles', []),
'privileges': user_info.get('privileges', []),
}
user['detail'] = detail
result[user['username']] = user
return result
@staticmethod
def posix_filter(info):
user_groups = info.pop('user_groups', [])
username_groups = {}
for line in user_groups:
if ':' not in line:
continue
username, groups = line.split(':', 1)
username_groups[username.strip()] = groups.strip()
user_sudo = info.pop('user_sudo', [])
username_sudo = {}
for line in user_sudo:
if ':' not in line:
continue
username, sudo = line.split(':', 1)
if not sudo.strip():
continue
username_sudo[username.strip()] = sudo.strip()
last_login = info.pop('last_login', '')
user_last_login = {}
for line in last_login:
if not line.strip() or ' ' not in line:
continue
username, login = line.split(' ', 1)
user_last_login[username] = login.split()
user_authorized = info.pop('user_authorized', [])
username_authorized = {}
for line in user_authorized:
if ':' not in line:
continue
username, authorized = line.split(':', 1)
username_authorized[username.strip()] = authorized.strip()
passwd_date = info.pop('passwd_date', [])
username_password_date = {}
for line in passwd_date:
if ':' not in line:
continue
username, password_date = line.split(':', 1)
username_password_date[username.strip()] = password_date.strip().split()
result = {}
users = info.pop('users', '')
for username in users:
if not username:
continue
user = dict()
login = user_last_login.get(username) or ''
if login and len(login) == 3:
user['address_last_login'] = login[0][:32]
try:
login_date = timezone.datetime.fromisoformat(login[1])
user['date_last_login'] = login_date
except ValueError:
pass
start_date = timezone.make_aware(timezone.datetime(1970, 1, 1))
_password_date = username_password_date.get(username) or ''
if _password_date and len(_password_date) == 2:
if _password_date[0]:
user['date_password_change'] = start_date + timezone.timedelta(days=int(_password_date[0]))
if _password_date[1]:
user['date_password_expired'] = start_date + timezone.timedelta(days=int(_password_date[1]))
detail = {
'groups': username_groups.get(username) or '',
'sudoers': username_sudo.get(username) or '',
'authorized_keys': username_authorized.get(username) or ''
}
user['detail'] = detail
result[username] = user
return result
@staticmethod
def windows_filter(info):
result = {}
for user_details in info['user_details']:
user_info = {}
lines = user_details['stdout_lines']
for line in lines:
if not line.strip():
continue
parts = line.split(' ', 1)
if len(parts) == 2:
key, value = parts
user_info[key.strip()] = value.strip()
detail = {'groups': user_info.get('Global Group memberships', ''), }
username = user_info.get('User name')
if not username:
continue
result[username] = {
'username': username,
'date_password_change': parse_date(user_info.get('Password last set')),
'date_password_expired': parse_date(user_info.get('Password expires')),
'date_last_login': parse_date(user_info.get('Last logon')),
'groups': detail,
}
return result
@staticmethod
def windows_ad_filter(info):
result = {}
for user_info in info['user_details']:
detail = {'groups': user_info.get('GlobalGroupMemberships', ''), }
username = user_info.get('SamAccountName')
if not username:
continue
result[username] = {
'username': username,
'date_password_change': parse_date(user_info.get('PasswordLastSet')),
'date_password_expired': parse_date(user_info.get('PasswordExpires')),
'date_last_login': parse_date(user_info.get('LastLogonDate')),
'groups': detail,
}
return result
@staticmethod
def mongodb_filter(info):
result = {}
for db, users in info.items():
for username, user_info in users.items():
user = {
'username': username,
'date_password_change': None,
'date_password_expired': None,
'date_last_login': None,
'groups': '',
}
result['detail'] = {'db': db, 'roles': user_info.get('roles', [])}
result[username] = user
return result
def run(self, method_id_meta_mapper, info):
run_method_name = None
for k, v in method_id_meta_mapper.items():
if self.tp not in v['type']:
continue
run_method_name = k.replace(f'{v["method"]}_', '')
if not run_method_name:
return info
if hasattr(self, f'{run_method_name}_filter'):
return getattr(self, f'{run_method_name}_filter')(info)
return info

Some files were not shown because too many files have changed in this diff Show More