Skip to content

Conversation

@sebjulliand
Copy link
Member

Changes

Resolves #3049

This PR adds support for checking password expiry date and for changing passwords.

New component: Password Manager

The password manager is a new IBM i component that can:

  • Return how many days are left before the current user's password is going to expire and the expiration date
  • Change the current user's password using a temporary Java program. The Java program is compiled on the IBM i, in a temporary folder that gets deleted after it's done. The program contains the old and new password so they are not printed in the output when it's called. It uses the JTOpen jar shipped with the OS to perform the change.

New Change password status bar action

image image

A new Change password action located in the connection's status bar menu allows users to change their password the IBM i they's connected to.
The action opens a webview asking for the current password and the new password (twice, for confirmation).

This webview will also display errors occurring before submitting the form and after, if the password change program fails.

Password expiry check

After a user connects, a password expiry check is performed.
The check is performed once for any new connection, and it's performed again one week later (in case the expiry policy changes over time).

After the check, if the password expires in less than two weeks, a modal notification shows up and offer to change the password.
image

Clicking on Change password will open the webview above.

How to test this PR

  1. Connect to an IBM i
  2. Hover over the connection status bar and select "Change password"
  3. Try to change your password

Password expiry - if you have a *SECADM profile to play with:

  1. Create a dummy profile with PWDEXPITV(5)
  2. Create a new connection and connect with this profile
  3. The password expiry dialog must show up
  4. Close the dialog
  5. Re-connect
  6. The dialog must not show up...until tomorrow

Checklist

  • have tested my change

This avoids it being written in plain text in the output when called afterwards

Signed-off-by: Seb Julliand <[email protected]>
@sebjulliand sebjulliand added this to the 3.0.0 milestone Feb 2, 2026
@sebjulliand sebjulliand requested a review from a team February 2, 2026 17:06
@sebjulliand sebjulliand self-assigned this Feb 2, 2026
@sebjulliand sebjulliand added the enhancement New feature or request label Feb 2, 2026
@sebjulliand sebjulliand temporarily deployed to testing_environment February 2, 2026 17:06 — with GitHub Actions Inactive
@github-actions
Copy link
Contributor

github-actions bot commented Feb 2, 2026

👋 A new build is available for this PR based on 3ef036a.

Copy link
Member

@worksofliam worksofliam left a comment

Choose a reason for hiding this comment

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

Can we use QSYCHGPW via SQL instead?

@sebjulliand
Copy link
Member Author

Can we use QSYCHGPW via SQL instead?

@worksofliam following up on our internal discussion: yes we can, and now we do 😄 Sorry for overlooking that.
Back to you for a review!

Signed-off-by: Seb Julliand <[email protected]>
@sebjulliand sebjulliand temporarily deployed to testing_environment February 3, 2026 09:16 — with GitHub Actions Inactive
@worksofliam worksofliam self-requested a review February 5, 2026 15:53
@sebjulliand sebjulliand temporarily deployed to testing_environment February 5, 2026 16:06 — with GitHub Actions Inactive
@sebjulliand
Copy link
Member Author

@worksofliam it's ready for a final review ! 😄

@github-actions
Copy link
Contributor

github-actions bot commented Feb 5, 2026

👋 A new build is available for this PR based on 89fd00a.

@sebjulliand sebjulliand temporarily deployed to testing_environment February 5, 2026 18:02 — with GitHub Actions Inactive
@sebjulliand sebjulliand temporarily deployed to testing_environment February 10, 2026 21:17 — with GitHub Actions Inactive
@sebjulliand sebjulliand temporarily deployed to testing_environment February 10, 2026 21:18 — with GitHub Actions Inactive
@sebjulliand
Copy link
Member Author

Thanks @SanjulaGanepola !
I extended the delay between two checks to two weeks if there's no expiration. And two weeks before expiration if expiration is greater than 2 weeks.

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.

Password expiry warning

3 participants