return privilege

merge-requests/224/head
Mohammad Aljammal 4 years ago
parent f77d2b497e
commit 952e106531

@ -1,5 +1,6 @@
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/service/weather_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/%E2%80%8B%20health_calculators.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/E-Referral/e_referral_index_page.dart';
@ -33,6 +34,7 @@ import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart';
class AllHabibMedicalService extends StatefulWidget {
@ -66,6 +68,7 @@ class _AllHabibMedicalServiceState extends State<AllHabibMedicalService> {
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
return AppScaffold(
isShowAppBar: true,
appBarTitle: TranslationBase.of(context).alhabiServices,
@ -258,6 +261,7 @@ class _AllHabibMedicalServiceState extends State<AllHabibMedicalService> {
'assets/images/new-design/family_menu_icon_red.png',
title: 'My Family',
),
if(projectViewModel.havePrivilege(35))
ServicesContainer(
onTap: () => Navigator.push(
context,
@ -278,6 +282,7 @@ class _AllHabibMedicalServiceState extends State<AllHabibMedicalService> {
'assets/images/new-design/upcoming_icon_bottom_bar.png',
title: TranslationBase.of(context).todoList,
),
if(projectViewModel.havePrivilege(42))
ServicesContainer(
onTap: () => Navigator.push(
context,
@ -285,6 +290,7 @@ class _AllHabibMedicalServiceState extends State<AllHabibMedicalService> {
),
imageLocation: 'assets/images/new-design/body_icon.png',
title: 'Symptom Checker'),
if(projectViewModel.havePrivilege(36))
ServicesContainer(
onTap: () => Navigator.push(
context,
@ -315,6 +321,7 @@ class _AllHabibMedicalServiceState extends State<AllHabibMedicalService> {
'assets/images/new-design/health_convertor_icon.png',
title: 'Health Converter',
),
if(projectViewModel.havePrivilege(38))
ServicesContainer(
onTap: () => Navigator.push(
context,
@ -325,6 +332,7 @@ class _AllHabibMedicalServiceState extends State<AllHabibMedicalService> {
imageLocation: 'assets/images/new-design/water_icon.png',
title: 'H2O',
),
if(projectViewModel.havePrivilege(41))
ServicesContainer(
onTap: () => Navigator.push(
context,

@ -708,6 +708,7 @@ class _MyFamily extends State<MyFamily> with TickerProviderStateMixin {
loginAfter(result, context) async {
//GifLoaderDialogUtils.hideDialog(context);
Provider.of<ProjectViewModel>(context, listen: false).setPrivilege(privilegeList: result,isLoginChild: true);
var currentLang = await sharedPref.getString(APP_LANGUAGE);
result = list.CheckActivationCode.fromJson(result);
var familyFile = await sharedPref.getObject(FAMILY_FILE);

@ -612,21 +612,13 @@ class _LandingPageState extends State<LandingPage> with WidgetsBindingObserver {
getText(currentTab) {
switch (currentTab) {
case 0:
return TranslationBase
.of(context)
.home;
return TranslationBase.of(context).home;
case 1:
return TranslationBase
.of(context)
.medicalProfile;
return TranslationBase.of(context).medicalProfile;
case 2:
return TranslationBase
.of(context)
.mySchedule;
return TranslationBase.of(context).bookAppo;
case 3:
return TranslationBase
.of(context)
.services;
return TranslationBase.of(context).services;
case 4:
return TranslationBase
.of(context)

@ -510,6 +510,7 @@ class _ConfirmLogin extends State<ConfirmLogin> {
.then((result) => {
if (result is Map)
{
projectViewModel.setPrivilege(privilegeList: result),
result = CheckActivationCode.fromJson(result),
if (this.registerd_data != null &&
this.registerd_data.isRegister == true)

@ -243,7 +243,7 @@ class _Login extends State<Login> {
sharedPref.remove(FAMILY_FILE);
// Register GeoZones after login
registerGeoZones();
projectViewModel.setPrivilege(privilegeList: result);
result = CheckActivationCode.fromJson(result);
result.list.isFamily = false;
// this.sharedPref.setString(BLOOD_TYPE, result['PatientBloodType']),

@ -1,10 +1,12 @@
import 'package:diplomaticquarterapp/core/model/eye/AppoimentAllHistoryResult.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class ContactLensPage extends StatelessWidget {
final ListHISGetContactLensPerscription listHISGetContactLensPerscription;
@ -14,6 +16,7 @@ class ContactLensPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
return AppScaffold(
body: SingleChildScrollView(
child: Container(
@ -82,6 +85,7 @@ class ContactLensPage extends StatelessWidget {
SizedBox(
height: 17,
),
if(projectViewModel.havePrivilege(15))
Container(
width: double.infinity,
child: SecondaryButton(

@ -2,6 +2,7 @@ import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/prescriptions/Prescriptions.dart';
import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/prescriptions_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescription_details_page.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
@ -11,7 +12,7 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../../../widgets/dialogs/confirm_send_email_dialog.dart';
class PrescriptionItemsPage extends StatelessWidget {
@ -21,6 +22,7 @@ class PrescriptionItemsPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
return BaseView<PrescriptionsViewModel>(
onModelReady: (model) =>
model.getPrescriptionReport(prescriptions: prescriptions),
@ -184,6 +186,7 @@ class PrescriptionItemsPage extends StatelessWidget {
child: Column(
children: <Widget>[
Divider(),
if(projectViewModel.havePrivilege(13))
Container(
width: MediaQuery.of(context).size.width * 0.8,
child: Button(

@ -2,6 +2,7 @@ import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/model/radiology/final_radiology.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/radiology_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
@ -10,6 +11,7 @@ import 'package:diplomaticquarterapp/widgets/dialogs/confirm_send_email_dialog.d
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:url_launcher/url_launcher.dart';
class RadiologyDetailsPage extends StatelessWidget {
@ -19,6 +21,7 @@ class RadiologyDetailsPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
return BaseView<RadiologyViewModel>(
onModelReady: (model) => model.getRadImageURL(
projectId: finalRadiology.projectID,
@ -51,7 +54,9 @@ class RadiologyDetailsPage extends StatelessWidget {
],
),
),
bottomSheet: Container(
bottomSheet: (projectViewModel.havePrivilege(9) ||
projectViewModel.havePrivilege(8))
? Container(
width: double.infinity,
height: finalRadiology.dIAPACSURL != ""
? MediaQuery.of(context).size.height * 0.25
@ -61,7 +66,7 @@ class RadiologyDetailsPage extends StatelessWidget {
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Divider(),
if (finalRadiology.dIAPACSURL != "")
if (finalRadiology.dIAPACSURL != "" && projectViewModel.havePrivilege(9))
Container(
width: MediaQuery.of(context).size.width * 0.8,
child: Button(
@ -72,6 +77,7 @@ class RadiologyDetailsPage extends StatelessWidget {
backgroundColor: Colors.grey[800],
),
),
if (projectViewModel.havePrivilege(8))
Container(
width: MediaQuery.of(context).size.width * 0.8,
child: Button(
@ -86,7 +92,7 @@ class RadiologyDetailsPage extends StatelessWidget {
)
],
),
)),
):Container()),
);
}

@ -2,6 +2,7 @@ import 'dart:ui';
import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/reports_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/medical/reports/report_list_widget.dart';
import 'package:diplomaticquarterapp/pages/medical/reports/reports_page.dart';
@ -12,6 +13,7 @@ import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class HomeReportPage extends StatefulWidget {
@override
@ -37,6 +39,7 @@ class _HomeReportPageState extends State<HomeReportPage>
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
imagesInfo.add(ImagesInfo(
imageEn:
'https://hmgwebservices.com/Images/MobileAppDq/imges-info/medical-reorts/en/0.png',
@ -169,7 +172,7 @@ class _HomeReportPageState extends State<HomeReportPage>
)
],
),
bottomSheet: Container(
bottomSheet: projectViewModel.havePrivilege(21) ?Container(
width: double.infinity,
height: 90,
margin: EdgeInsets.all(8.0),
@ -183,7 +186,7 @@ class _HomeReportPageState extends State<HomeReportPage>
),
),
),
),
):null,
),
),
);

@ -74,6 +74,7 @@ class PaymentService extends StatelessWidget {
),
),
),
if(!projectViewModel.havePrivilege(33))
Expanded(
child: InkWell(
onTap: () => navigateToToDoPage(context),
@ -116,6 +117,7 @@ class PaymentService extends StatelessWidget {
)
],
),
if(!projectViewModel.havePrivilege(33))
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [

@ -1,4 +1,5 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/button.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
@ -6,6 +7,7 @@ import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:flutter/cupertino.dart';
import 'package:provider/provider.dart';
import '../base/base_view.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/core/viewModels/vaccine_view_model.dart';
@ -22,6 +24,7 @@ class MyVaccines extends StatefulWidget {
class _MyVaccinesState extends State<MyVaccines> {
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
return BaseView<VaccineViewModel>(
onModelReady: (model) => model.getVaccine(),
builder: (BuildContext context, VaccineViewModel model, Widget child) =>
@ -171,6 +174,7 @@ class _MyVaccinesState extends State<MyVaccines> {
Navigator.push(context, FadePage(page: MyVaccinesItemPage())),
),
),
if(projectViewModel.havePrivilege(27))
Container(
width: double.infinity,
// height: 80.0,

@ -9,6 +9,7 @@ import 'package:provider/provider.dart';
import 'config/shared_pref_kay.dart';
import 'config/size_config.dart';
import 'core/service/AuthenticatedUserObject.dart';
import 'core/service/privilege_service.dart';
import 'core/viewModels/project_view_model.dart';
import 'locator.dart';
import 'models/Authentication/authenticated_user.dart';
@ -24,23 +25,29 @@ class SplashScreen extends StatefulWidget {
}
class _SplashScreenState extends State<SplashScreen> {
//Provider.of<ProjectViewModel>(context, listen: false).isLogin
PrivilegeService _privilegeService = locator<PrivilegeService>();
@override
void initState() {
super.initState();
Timer(
Duration(seconds: 1, milliseconds: 800),
Duration(seconds: 1, milliseconds: 500),
() {
Provider.of<ProjectViewModel>(context, listen: false).loadSharedPrefLanguage().then((value) {
Navigator.of(context).pushReplacement(FadePage(page: LandingPage()));
loadPrivilege().then((value) {
Navigator.of(context).pushReplacement(
MaterialPageRoute(
builder: (BuildContext context) => LandingPage(),
),
);
});
},
);
}
Future getUserData() async {
Provider.of<ProjectViewModel>(context, listen: false).loadSharedPrefLanguage();
/// load the Privilege from service
Future loadPrivilege() async {
await _privilegeService.getPrivilege();
Provider.of<ProjectViewModel>(context, listen: false).setPrivilegeModelList(privilege: _privilegeService.privilegeModelList);
}
@override

@ -1,4 +1,5 @@
import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/locator.dart';
import 'package:diplomaticquarterapp/models/Appointments/toDoCountProviderModel.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/BookingOptions.dart';
@ -49,6 +50,7 @@ class _BottomNavBarState extends State<BottomNavBar> {
@override
Widget build(BuildContext context) {
model = Provider.of<ToDoCountProviderModel>(context);
ProjectViewModel projectViewModel = Provider.of(context);
return BottomAppBar(
elevation: 4,
shape: CircularNotchedRectangle(),
@ -75,7 +77,7 @@ class _BottomNavBarState extends State<BottomNavBar> {
currentIndex: 1,
name: TranslationBase.of(context).medicalProfile,
),
if(widget.index == 0)
if(widget.index == 0 && projectViewModel.havePrivilege(34))
Expanded(
child: SizedBox(
height: 50,
@ -88,7 +90,7 @@ class _BottomNavBarState extends State<BottomNavBar> {
),
),
),
if(widget.index != 0)
if(widget.index != 0 && projectViewModel.havePrivilege(34))
BottomNavigationItem(
icon: EvaIcons.calendar,
activeIcon: EvaIcons.calendar,
@ -106,6 +108,7 @@ class _BottomNavBarState extends State<BottomNavBar> {
currentIndex: 3,
name: TranslationBase.of(context).myFamily,
),
if(projectViewModel.havePrivilege(51))
BottomNavigationItem(
icon: EvaIcons.calendar,
activeIcon: EvaIcons.calendar,

@ -151,7 +151,7 @@ class DoctorCard extends StatelessWidget {
),
),
),
if (onEmailTap != null)
if (onEmailTap != null && projectViewModel.havePrivilege(17))
InkWell(
onTap: onEmailTap,
child: Icon(

@ -155,8 +155,8 @@ class _AppDrawerState extends State<AppDrawer> {
? Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
user.isFamily == null ||
user.isFamily == false
(user.isFamily == null ||
user.isFamily == false)&& projectProvider.havePrivilege(2)
? InkWell(
child: DrawerItem(
TranslationBase.of(context).family,
@ -292,6 +292,8 @@ class _AppDrawerState extends State<AppDrawer> {
}
},
),
if(projectProvider.havePrivilege(1))
InkWell(
child: DrawerItem(
TranslationBase.of(context)
@ -353,6 +355,7 @@ class _AppDrawerState extends State<AppDrawer> {
NotificationsPage()));
},
),
if(projectProvider.havePrivilege(3))
InkWell(
child: DrawerItem(
TranslationBase.of(context).appsetting,
@ -567,6 +570,7 @@ class _AppDrawerState extends State<AppDrawer> {
loginAfter(result, context) async {
result = CheckActivationCode.fromJson(result);
Provider.of<ProjectViewModel>(context, listen: false).setPrivilege(privilegeList: result,isLoginChild: true);
var familyFile = await sharedPref.getObject(FAMILY_FILE);
var currentLang = await sharedPref.getString(APP_LANGUAGE);
var mainUser = await sharedPref.getObject(MAIN_USER);

Loading…
Cancel
Save