Skip to content

Conversation

@Musicminion
Copy link
Member

@Musicminion Musicminion commented Feb 6, 2026

User Admin Panel need to be more specific, so we add some changes to CEP admin panel.

  • add features for UserApi
  • add reset password and Features for user info update
image image image

Description

We want a more detailed admin panel for user management.

Related issues / Pull Requests

Contributor Agreement

- add `features` for UserApi
- add `reset password` and `Features` for user info update
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e967ba486d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

}
let isPasswordReused
try {
isPasswordReused = await HaveIBeenPwned.promises.isPasswordReused(value)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Call exported HIBP checker for admin password updates

When an admin sets a password, this calls HaveIBeenPwned.promises.isPasswordReused, but HaveIBeenPwned only exports promises.checkPasswordForReuse (see services/web/app/src/Features/Authentication/HaveIBeenPwned.mjs). The resulting TypeError is swallowed by the catch, so the reused-password check is silently skipped and weak/reused passwords can still be accepted.

Useful? React with 👍 / 👎.

Comment on lines +626 to +628
// delete password from response for security reasons
if (update.password) {
delete update.password

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Remove hashed password from update response

In the password-update path, update.hashedPassword is set and later returned via res.json(update), but this sanitization block only deletes update.password. As a result, changing a user's password exposes the bcrypt hash in the API response and propagates it to frontend state (performUpdateUser merges response fields), which is an unnecessary credential leak.

Useful? React with 👍 / 👎.

@Musicminion
Copy link
Member Author

@codex, I have fixed now

@Musicminion Musicminion self-assigned this Feb 6, 2026
@Musicminion Musicminion added the enhancement New feature or request label Feb 6, 2026
@chatgpt-codex-connector
Copy link

Thanks — I verified the two previously flagged P1 issues appear fixed in the current branch.

What I checked

Checks run

  • git status --short && git rev-parse --abbrev-ref HEAD && git log --oneline -n 5
  • sed -n '560,700p' services/web/modules/admin-tools/app/src/UserListController.mjs
  • nl -ba services/web/modules/admin-tools/app/src/UserListController.mjs | sed -n '570,590p'
  • nl -ba services/web/modules/admin-tools/app/src/UserListController.mjs | sed -n '585,675p'

No additional code changes were needed from my side, so I did not create a commit or PR.

View task →

@Musicminion
Copy link
Member Author

Need to test on cloud VM before merged. I am interested in if some features is really limited by db params.

@Musicminion Musicminion merged commit ab12471 into server-pro Feb 6, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant