feat : role And permission

This commit is contained in:
2025-09-06 14:50:02 +03:30
parent bdf5344451
commit 34609d22a1
34 changed files with 657 additions and 306 deletions

View File

@@ -1,3 +1,5 @@
import 'package:rasadyar_chicken/presentation/routes/routes.dart';
String getFaUserRole(String? role) {
switch (role) {
case "Admin":
@@ -76,3 +78,83 @@ String getFaUserRole(String? role) {
return "نامشخص";
}
}
Map<String, String?> getFaUserRoleWithOnTap(String? role) {
switch (role) {
case "Admin":
return {"ادمین استان": null};
case "CityOperator":
return {"تعاونی": null};
case "Poultry":
return {"مرغدار": null};
case "ProvinceOperator":
return {"مدیر اجرایی": null};
case "ProvinceFinancial":
return {"مالی اتحادیه": null};
case "KillHouse":
return {"کشتارگاه": null};
case "KillHouseVet":
return {"دامپزشک کشتارگاه": null};
case "VetFarm":
return {"دامپزشک فارم": null};
case "Driver":
return {"راننده": null};
case "ProvinceInspector":
return {"بازرس اتحادیه": null};
case "VetSupervisor":
return {"دامپزشک کل": null};
case "Jahad":
return {"جهاد کشاورزی استان": null};
case "CityJahad":
return {"جهاد کشاورزی شهرستان": null};
case "ProvincialGovernment":
return {"استانداری": null};
case "Guilds":
return {"صنف": null};
case "Commerce":
return {"معاونت بازرگانی استان": null};
case "CityCommerce":
return {"بازرگانی شهرستان": null};
case "UnitWindow":
return {"پنجره واحد": null};
case "CityVet":
return {"دامپزشک شهرستان": null};
case "Observatory":
return {"رصدخانه": null};
case "ProvinceSupervisor":
return {"ناظر استان": null};
case "GuildRoom":
return {"اتاق اصناف": null};
case "PosCompany":
return {"شرکت psp": null};
case "LiveStockSupport":
return {"پشتیبانی امور دام": null};
case "SuperAdmin":
return {"ادمین کل": null};
case "ChainCompany":
return {"شرکت زنجیره": null};
case "AdminX":
return {"ادمین ایکس": null};
case "Supporter":
return {"پشتیبان سامانه": null};
case "Dispenser":
return {"پخش کننده": null};
case "CityPoultry":
return {"طیور شهرستان": null};
case "ParentCompany":
return {"شرکت مادر": null};
case "ColdHouseSteward":
return {"مباشر سردخانه": null};
case "CityGuild":
return {"اتحادیه پروتئینی": null};
case "LiveStockProvinceJahad":
return {"جهاد استان": null};
case "Steward":
return {"مباشر": ChickenRoutes.initSteward};
case "PoultryScience":
return {"کارشناس طیور": ChickenRoutes.initPoultryScience
};
default:
return {"نامشخص": null};
}
}

View File

@@ -15,7 +15,11 @@ import 'package:rasadyar_core/core.dart';
GetIt diChicken = GetIt.asNewInstance();
Future<void> setupChickenDI() async {
if (diChicken.isRegistered<DioErrorHandler>()) {
await diChicken.unregister<DioErrorHandler>();
}
diChicken.registerSingleton(DioErrorHandler());
var tokenService = Get.find<TokenStorageService>();
diChicken.registerLazySingleton<AppInterceptor>(
@@ -23,10 +27,10 @@ Future<void> setupChickenDI() async {
// سامانه مرغ فعلاً رفرش توکن ندارد
refreshTokenCallback: () async => null,
saveTokenCallback: (String newToken) async {
await tokenService.saveAccessToken(newToken);
await tokenService.saveAccessToken(Module.chicken, newToken);
},
clearTokenCallback: () async {
await tokenService.deleteTokens();
await tokenService.deleteAllTokens();
Get.offAllNamed(ChickenRoutes.auth, arguments: Module.chicken);
},
),
@@ -69,7 +73,7 @@ Future<void> newSetupAuthDI(String newUrl) async {
var tokenService = Get.find<TokenStorageService>();
// همیشه baseUrl جدید رو ذخیره کن
await tokenService.saveBaseUrl(newUrl);
await tokenService.saveBaseUrl(Module.chicken, newUrl);
// Re-register AppInterceptor
if (diChicken.isRegistered<AppInterceptor>(instanceName: 'chickenInterceptor')) {
@@ -79,10 +83,10 @@ Future<void> newSetupAuthDI(String newUrl) async {
() => AppInterceptor(
refreshTokenCallback: () async => null,
saveTokenCallback: (String newToken) async {
await tokenService.saveAccessToken(newToken);
// await tokenService.saveAccessToken(newToken);
},
clearTokenCallback: () async {
await tokenService.deleteTokens();
await tokenService.deleteAllTokens();
Get.offAllNamed(ChickenRoutes.auth, arguments: Module.chicken);
},
),

View File

@@ -0,0 +1,8 @@
import 'package:rasadyar_core/core.dart';
class ChickenStorageService extends GetxService {
}