public bool CheckAllowPermissionAction(Guid id, PermissionRange range) { var result = new TariffModel(); result.setTariff = GetTariffById(id); if (result.setTariff == null) { return(false); } BaseUpdateModel baseModel = new BaseUpdateModel { UserCreated = result.setTariff.UserCreated, CompanyId = result.setTariff.CompanyId, DepartmentId = result.setTariff.DepartmentId, OfficeId = result.setTariff.OfficeId, GroupId = result.setTariff.GroupId }; int code = PermissionExtention.GetPermissionCommonItem(baseModel, range, currentUser); if (code == 403) { return(false); } return(true); }
public bool CheckAllowPermissionAction(int id, PermissionRange range) { var detail = DataContext.Get(x => x.Id == id)?.FirstOrDefault(); if (detail == null) { return(false); } BaseUpdateModel baseModel = new BaseUpdateModel { UserCreated = detail.UserCreated, CompanyId = detail.CompanyId, DepartmentId = detail.DepartmentId, OfficeId = detail.OfficeId, GroupId = detail.GroupId }; int code = PermissionExtention.GetPermissionCommonItem(baseModel, range, currentUser); if (code == 403) { return(false); } return(true); }
public bool CheckAllowPermissionAction(Guid id, PermissionRange range) { CatCharge charge = DataContext.Get(o => o.Id == id).FirstOrDefault(); if (charge == null) { return(false); } BaseUpdateModel baseModel = new BaseUpdateModel { UserCreated = charge.UserCreated, CompanyId = charge.CompanyId, DepartmentId = charge.DepartmentId, OfficeId = charge.OfficeId, GroupId = charge.GroupId }; int code = PermissionExtention.GetPermissionCommonItem(baseModel, range, currentUser); if (code == 403) { return(false); } return(true); }
public SetTariffModel GetTariffById(Guid tariffId) { ICurrentUser _user = PermissionExtention.GetUserMenuPermission(currentUser, Menu.settingTariff); var permissionRangeWrite = PermissionExtention.GetPermissionRange(currentUser.UserMenuPermission.Write); var permissionRangeDelete = PermissionExtention.GetPermissionRange(currentUser.UserMenuPermission.Delete); var tariff = DataContext.Get(x => x.Id == tariffId).FirstOrDefault(); var data = mapper.Map <SetTariffModel>(tariff); BaseUpdateModel baseModel = new BaseUpdateModel { UserCreated = data.UserCreated, CompanyId = data.CompanyId, DepartmentId = data.DepartmentId, OfficeId = data.OfficeId, GroupId = data.GroupId }; data.Permission = new PermissionAllowBase { AllowUpdate = PermissionExtention.GetPermissionDetail(permissionRangeWrite, baseModel, currentUser), AllowDelete = PermissionExtention.GetPermissionDetail(permissionRangeDelete, baseModel, currentUser), }; data.UserCreatedName = userRepository.Get(x => x.Id == data.UserCreated).FirstOrDefault()?.Username; data.UserModifieddName = userRepository.Get(x => x.Id == data.UserModified).FirstOrDefault()?.Username; return(data); }
public CatChargeAddOrUpdateModel GetChargeById(Guid id) { CatChargeAddOrUpdateModel returnCharge = new CatChargeAddOrUpdateModel(); var charge = DataContext.Get(x => x.Id == id).FirstOrDefault(); var listChargeDefault = chargeDefaultRepository.Get(x => x.ChargeId == id).ToList(); returnCharge.Charge = charge; // Update permission ICurrentUser _user = PermissionExtention.GetUserMenuPermission(currentUser, Menu.catCharge); var permissionRangeWrite = PermissionExtention.GetPermissionRange(currentUser.UserMenuPermission.Write); BaseUpdateModel baseModel = new BaseUpdateModel { UserCreated = returnCharge.Charge.UserCreated, CompanyId = returnCharge.Charge.CompanyId, DepartmentId = returnCharge.Charge.DepartmentId, OfficeId = returnCharge.Charge.OfficeId, GroupId = returnCharge.Charge.GroupId }; returnCharge.Permission = new PermissionAllowBase { AllowUpdate = PermissionExtention.GetPermissionDetail(permissionRangeWrite, baseModel, currentUser), }; returnCharge.ListChargeDefaultAccount = listChargeDefault; return(returnCharge); }
private int CheckForbitUpdate(string action) { var permissionRange = PermissionExtention.GetPermissionRange(action); var modelCheckUpdate = new BaseUpdateModel { UserCreated = currentUser.UserID, GroupId = currentUser.GroupId, DepartmentId = currentUser.DepartmentId, OfficeId = currentUser.OfficeID, CompanyId = currentUser.CompanyID }; return(PermissionExtention.GetPermissionCommonItem(modelCheckUpdate, permissionRange, currentUser)); }
public static bool GetPermissionDetail(PermissionRange permissionRange, BaseUpdateModel model, ICurrentUser currentUser) { bool result = false; switch (permissionRange) { case PermissionRange.All: result = true; break; case PermissionRange.Owner: if (model.UserCreated == currentUser.UserID) { result = true; } break; case PermissionRange.Group: if (model.GroupId == currentUser.GroupId && model.DepartmentId == currentUser.DepartmentId && model.OfficeId == currentUser.OfficeID && model.CompanyId == currentUser.CompanyID ) { result = true; } break; case PermissionRange.Department: if (model.DepartmentId == currentUser.DepartmentId && model.OfficeId == currentUser.OfficeID && model.CompanyId == currentUser.CompanyID) { result = true; } break; case PermissionRange.Office: if (model.OfficeId == currentUser.OfficeID && model.CompanyId == currentUser.CompanyID) { result = true; } break; case PermissionRange.Company: if (model.CompanyId == currentUser.CompanyID) { result = true; } break; } return(result); }
public static int GetPermissionCommonItem(BaseUpdateModel model, PermissionRange permissionRange, ICurrentUser currentUser) { int code = 403; switch (permissionRange) { case PermissionRange.All: code = 200; break; case PermissionRange.Owner: if (model.UserCreated == currentUser.UserID) { code = 200; } break; case PermissionRange.Group: if (model.GroupId == currentUser.GroupId && model.DepartmentId == currentUser.DepartmentId && model.OfficeId == currentUser.OfficeID && model.CompanyId == currentUser.CompanyID) { code = 200; } break; case PermissionRange.Department: if (model.DepartmentId == currentUser.DepartmentId && model.OfficeId == currentUser.OfficeID && model.CompanyId == currentUser.CompanyID) { code = 200; } break; case PermissionRange.Office: if (model.OfficeId == currentUser.OfficeID && model.CompanyId == currentUser.CompanyID) { code = 200; } break; case PermissionRange.Company: if (model.CompanyId == currentUser.CompanyID) { code = 200; } break; } return(code); }
public CatPlaceModel GetDetail(Guid id) { ICurrentUser _user = null; CatPlace data = DataContext.First(x => x.Id == id); if (data == null) { return(null); } CatPlaceModel result = mapper.Map <CatPlaceModel>(data); if (data.PlaceTypeId == CatPlaceTypeEnum.Warehouse.ToString()) { _user = PermissionExtention.GetUserMenuPermission(currentUser, Menu.catWarehouse); } if (data.PlaceTypeId == CatPlaceTypeEnum.Port.ToString()) { _user = PermissionExtention.GetUserMenuPermission(currentUser, Menu.catPortindex); } if (data.PlaceTypeId == CatPlaceTypeEnum.Province.ToString() || data.PlaceTypeId == CatPlaceTypeEnum.District.ToString() || data.PlaceTypeId == CatPlaceTypeEnum.Ward.ToString()) { _user = PermissionExtention.GetUserMenuPermission(currentUser, Menu.catLocation); } var permissionRangeWrite = PermissionExtention.GetPermissionRange(currentUser.UserMenuPermission.Write); BaseUpdateModel baseModel = new BaseUpdateModel { UserCreated = result.UserCreated, CompanyId = result.CompanyId, DepartmentId = result.DepartmentId, OfficeId = result.OfficeId, GroupId = result.GroupId }; result.Permission = new PermissionAllowBase { AllowUpdate = PermissionExtention.GetPermissionDetail(permissionRangeWrite, baseModel, currentUser), }; return(result); }
/// <summary> /// Compares values of all UpdateModel properties and updates Entity properties as necessary /// </summary> /// <typeparam name="TEntity"></typeparam> /// <param name="updateModel"></param> /// <param name="entity"></param> /// <returns></returns> public static bool MapUpdatesToEntity <TEntity>(this BaseUpdateModel updateModel, ref TEntity entity) { bool isEntityModified = false; //loop through all properties in the UpdateModel and update Entity if required foreach (var modelProp in updateModel.GetType().GetProperties().Where(x => x.Name != "Id" && x.Name != "UpdatedUserId")) { var entityProp = entity.GetType().GetProperties().FirstOrDefault(x => x.Name == modelProp.Name); //same property exists on both UpdateModel and Entity if (entityProp != null) { var previousValue = entityProp.GetValue(entity, null); var updatedValue = modelProp.GetValue(updateModel, null); //compare Entity property value to UpdateModel property value if ((previousValue != null && updatedValue == null) || (previousValue == null && updatedValue != null) || (previousValue != null && !previousValue.Equals(updatedValue))) { entity.GetType().GetProperty(entityProp.Name).SetValue(entity, updatedValue); isEntityModified = true; } } } if (isEntityModified) { var entityUpdatedUserIdProp = entity.GetType().GetProperties().First(x => x.Name == "UpdatedUserId"); var modelUpdatedUserIdProp = updateModel.GetType().GetProperties().FirstOrDefault(x => x.Name == entityUpdatedUserIdProp.Name); var updatedUserId = modelUpdatedUserIdProp.GetValue(updateModel, null); //set Entity.UpdatedUserId property value = UpdateModel.UpdatedUserId property value entity.GetType().GetProperty(entityUpdatedUserIdProp.Name).SetValue(entity, updatedUserId); } return(isEntityModified); }
public SetEcusConnectionModel GetConnectionDetails(int id) { ICurrentUser _user = PermissionExtention.GetUserMenuPermission(currentUser, Menu.settingEcusConnection); var permissionRangeWrite = PermissionExtention.GetPermissionRange(currentUser.UserMenuPermission.Write); var data = Get(x => x.Id == id); if (data == null) { return(null); } var result = data.FirstOrDefault(); var users = userRepository.Get(); result.Username = users.FirstOrDefault(x => x.Id == result.UserId)?.Username; result.UserCreatedName = users.FirstOrDefault(x => x.Id == result.UserCreated)?.Username; result.UserModifiedName = users.FirstOrDefault(x => x.Id == result.UserModified)?.Username; BaseUpdateModel baseModel = new BaseUpdateModel { UserCreated = result.UserCreated, CompanyId = result.CompanyId, DepartmentId = result.DepartmentId, OfficeId = result.OfficeId, GroupId = result.GroupId }; result.Permission = new PermissionAllowBase { AllowUpdate = PermissionExtention.GetPermissionDetail(permissionRangeWrite, baseModel, currentUser), }; return(result); }