feat: My Settings — password change (local only), timezone, MFA, auth_provider field
- MySettingsPage: timezone, password change (local users), MFA setup/disable - Password change hidden for federated users (auth_provider != local) - Federated users see info message: "managed by Oracle IAM" - Backend: auth_provider + oidc_subject columns in users table (migration) - /users/me returns auth_provider field - User interface updated with auth_provider - i18n: 12 new keys (pt/en) for password change
This commit is contained in:
@@ -465,7 +465,7 @@ def init_db():
|
||||
c.execute(f"ALTER TABLE oci_configs ADD COLUMN {col}")
|
||||
except sqlite3.OperationalError:
|
||||
pass
|
||||
for col in ["timezone TEXT DEFAULT 'America/Sao_Paulo'"]:
|
||||
for col in ["timezone TEXT DEFAULT 'America/Sao_Paulo'", "auth_provider TEXT DEFAULT 'local'", "oidc_subject TEXT"]:
|
||||
try:
|
||||
c.execute(f"ALTER TABLE users ADD COLUMN {col}")
|
||||
except sqlite3.OperationalError:
|
||||
@@ -835,7 +835,8 @@ async def list_users(u=Depends(require("admin"))):
|
||||
|
||||
@app.get("/api/users/me")
|
||||
async def me(u=Depends(current_user)):
|
||||
return {k: u[k] for k in ("id","first_name","last_name","username","email","role","mfa_enabled","timezone")}
|
||||
fields = ("id","first_name","last_name","username","email","role","mfa_enabled","timezone","auth_provider")
|
||||
return {k: u.get(k, "local" if k == "auth_provider" else None) for k in fields}
|
||||
|
||||
@app.put("/api/users/{uid}")
|
||||
async def update_user(uid: str, req: UserUpdateReq, adm=Depends(require("admin"))):
|
||||
|
||||
Reference in New Issue
Block a user