================================================================================ STATIC COMPANY PK ($comppk = 5) CHANGES TO DYNAMIC SESSION COMPPK ================================================================================ Date: 2026-01-08 Updated: Centralized session access ================================================================================ SUMMARY: All hardcoded $comppk = 5, $userpk = 3, and $regpk = 1 values have been replaced with dynamic values from the authenticated user's JWT token session. SESSION ACCESS IS NOW CENTRALIZED: - Backend: BaseApiController provides getCompanyPk(), getUserPk(), getRegPk() - Controllers pass session values as parameters to component methods - Components do NOT access Yii::$app->user->identity directly ================================================================================ ARCHITECTURE: ================================================================================ Backend (Yii2): -------------- 1. BaseApiController (centralized session helper) - getCompanyPk() - returns company PK from JWT - getUserPk() - returns user PK from JWT - getRegPk() - returns registration PK from JWT 2. Controllers extend BaseApiController - Use $this->getCompanyPk(), $this->getUserPk(), $this->getRegPk() - Pass session values as parameters to component methods 3. Components receive session data as parameters - savedivision($data, $companyPk, $userPk) - savedepartment($data, $companyPk, $userPk) - departmentlisting($data, $companyPk, $regPk) - saveuser($data, $regPk, $userPk) - getuserlist($data, $companyPk) - Editdepartment($data, $regPk) Frontend (Angular): ------------------ 1. AppLocalStorageService (centralized session service) - getSession() - returns full session object - getCompanyPk() - returns company PK - getUserPk() - returns user PK - getRegPk() - returns registration PK 2. Components use AppLocalStorageService - No direct localStorage access in components - All session data accessed through service ================================================================================ FILES CHANGED: ================================================================================ 1. b2g_usermgmt/controllers/BaseApiController.php - Centralized session helper methods - getCompanyPk(), getUserPk(), getRegPk() 2. b2g_usermgmt/modules/apium/controllers/UmController.php - Now extends BaseApiController - Removed duplicate helper methods - Passes session values to component methods 3. b2g_usermgmt/modules/apium/components/umcomponent.php - Removed direct session access methods - All functions now receive session data as parameters 4. b2g_usermgmt/modules/reg/components/umcomponent.php - Same changes as apium/components/umcomponent.php ================================================================================ HOW IT WORKS: ================================================================================ 1. User logs in via RegistrationController::actionLogin() 2. JWT token is generated with companyPk, regPk, userPk in payload 3. Frontend stores JWT and sends it with every request 4. HttpBearerAuth validates JWT via User::findIdentityByAccessToken() 5. BaseApiController::beforeAction() extracts session data from JWT 6. Controller actions use $this->getCompanyPk() etc. 7. Controllers pass session values to component methods as parameters ================================================================================