diff --git a/assets/admin/stores/authStore.ts b/assets/admin/stores/authStore.ts
index f72aa931..36fbdb8b 100644
--- a/assets/admin/stores/authStore.ts
+++ b/assets/admin/stores/authStore.ts
@@ -109,9 +109,10 @@ export const useAuthStore = create
()(
});
if (res.success) {
set({
- dbUuid: res.data.db_uuid,
- dbKey: res.data.db_key,
- context: res.data.context,
+ dbUuid: res.data.db_uuid,
+ dbKey: res.data.db_key,
+ context: res.data.context,
+ primaryRole: res.data.context?.role ?? null,
});
}
},
diff --git a/config/packages/lexik_jwt_authentication.yaml b/config/packages/lexik_jwt_authentication.yaml
index dd7a3aa5..11fddbfd 100644
--- a/config/packages/lexik_jwt_authentication.yaml
+++ b/config/packages/lexik_jwt_authentication.yaml
@@ -2,4 +2,4 @@ lexik_jwt_authentication:
secret_key: '%env(resolve:JWT_SECRET_KEY)%'
public_key: '%env(resolve:JWT_PUBLIC_KEY)%'
pass_phrase: '%env(JWT_PASSPHRASE)%'
- token_ttl: 3600
+ token_ttl: 604800
diff --git a/docs/api/auth.md b/docs/api/auth.md
index 052f5808..966e9dc8 100644
--- a/docs/api/auth.md
+++ b/docs/api/auth.md
@@ -265,7 +265,7 @@ Authorization: Bearer
"type": "clinic",
"db_uuid": "clinic-uuid-...",
"name": "کلینیک سلامت",
- "role": "doctor"
+ "role": "clinic"
}
]
}
@@ -287,6 +287,14 @@ Authorization: Bearer
- `ROLE_SECRETARY` → `"secretary"`
- بقیه → `"user"`
+**قانون `context.role`** — نقشی که در آن محیط کاری فعال است:
+- context مطب شخصی دکتر: `"doctor"`
+- context کلینیک که دکتر **عضو** آن است: `"clinic"` (read-only — دسترسی به اطلاعات کلینیک)
+- context کلینیک که دکتر **صاحب** آن است: `"clinic"`
+- context منشی: `"secretary"`
+
+> **نکته frontend:** پس از `switchContext`، `primaryRole` در store باید از `context.role` آپدیت شود.
+
**قانون `db_uuid`**:
- اگر یک context وجود دارد: خودکار فعال میشود
- اگر چند context وجود دارد و کاربر هنوز انتخاب نکرده: `null` — frontend باید صفحه انتخاب نشان دهد
@@ -327,7 +335,7 @@ Authorization: Bearer
"type": "clinic",
"db_uuid": "clinic-uuid-...",
"name": "کلینیک سلامت",
- "role": "doctor"
+ "role": "clinic"
}
}
}
diff --git a/src/Auth/Controller/AuthController.php b/src/Auth/Controller/AuthController.php
index 4e41fb60..c029865c 100644
--- a/src/Auth/Controller/AuthController.php
+++ b/src/Auth/Controller/AuthController.php
@@ -628,7 +628,7 @@ class AuthController extends BaseController
'type' => 'clinic',
'db_uuid' => $clinic->getUuid(),
'name' => $clinic->getName() ?? '',
- 'role' => 'doctor',
+ 'role' => 'clinic',
];
}
}