diff options
| author | Marie <github@yuugi.dev> | 2024-10-07 19:34:26 +0000 |
|---|---|---|
| committer | Marie <github@yuugi.dev> | 2024-10-07 19:34:26 +0000 |
| commit | ba5eec2129f1976c817925a1ec8ef10e23749d84 (patch) | |
| tree | 0c235c30592f7508584452a863ad4ecf2614b921 /packages/backend/src/server/api/endpoints/admin | |
| parent | merge: Display instance follow/following relationships in instance view (part... (diff) | |
| parent | prevent login and password reset for system accounts (diff) | |
| download | sharkey-ba5eec2129f1976c817925a1ec8ef10e23749d84.tar.gz sharkey-ba5eec2129f1976c817925a1ec8ef10e23749d84.tar.bz2 sharkey-ba5eec2129f1976c817925a1ec8ef10e23749d84.zip | |
merge: Prevent deletion or suspension of system accounts (resolves #625) (!666)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/666
Closes #625
Approved-by: dakkar <dakkar@thenautilus.net>
Approved-by: Marie <github@yuugi.dev>
Diffstat (limited to 'packages/backend/src/server/api/endpoints/admin')
| -rw-r--r-- | packages/backend/src/server/api/endpoints/admin/reset-password.ts | 5 | ||||
| -rw-r--r-- | packages/backend/src/server/api/endpoints/admin/show-user.ts | 10 |
2 files changed, 15 insertions, 0 deletions
diff --git a/packages/backend/src/server/api/endpoints/admin/reset-password.ts b/packages/backend/src/server/api/endpoints/admin/reset-password.ts index 828dbae712..e4bb545f5d 100644 --- a/packages/backend/src/server/api/endpoints/admin/reset-password.ts +++ b/packages/backend/src/server/api/endpoints/admin/reset-password.ts @@ -11,6 +11,7 @@ import type { UsersRepository, UserProfilesRepository } from '@/models/_.js'; import { DI } from '@/di-symbols.js'; import { secureRndstr } from '@/misc/secure-rndstr.js'; import { ModerationLogService } from '@/core/ModerationLogService.js'; +import { isSystemAccount } from '@/misc/is-system-account.js'; export const meta = { tags: ['admin'], @@ -63,6 +64,10 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- throw new Error('cannot reset password of root'); } + if (isSystemAccount(user)) { + throw new Error('cannot reset password of system account'); + } + const passwd = secureRndstr(8); // Generate hash of password diff --git a/packages/backend/src/server/api/endpoints/admin/show-user.ts b/packages/backend/src/server/api/endpoints/admin/show-user.ts index a7ca7f9547..2ba064b9dd 100644 --- a/packages/backend/src/server/api/endpoints/admin/show-user.ts +++ b/packages/backend/src/server/api/endpoints/admin/show-user.ts @@ -11,6 +11,7 @@ import { RoleService } from '@/core/RoleService.js'; import { RoleEntityService } from '@/core/entities/RoleEntityService.js'; import { IdService } from '@/core/IdService.js'; import { notificationRecieveConfig } from '@/models/json-schema/user.js'; +import { isSystemAccount } from '@/misc/is-system-account.js'; export const meta = { tags: ['admin'], @@ -31,6 +32,10 @@ export const meta = { type: 'boolean', optional: false, nullable: false, }, + approved: { + type: 'boolean', + optional: false, nullable: false, + }, autoAcceptFollowed: { type: 'boolean', optional: false, nullable: false, @@ -111,6 +116,10 @@ export const meta = { type: 'boolean', optional: false, nullable: false, }, + isSystem: { + type: 'boolean', + optional: false, nullable: false, + }, isSilenced: { type: 'boolean', optional: false, nullable: false, @@ -240,6 +249,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint- mutedInstances: profile.mutedInstances, notificationRecieveConfig: profile.notificationRecieveConfig, isModerator: isModerator, + isSystem: isSystemAccount(user), isSilenced: isSilenced, isSuspended: user.isSuspended, isHibernated: user.isHibernated, |