コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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));
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
ファイル: ModelExtensions.cs プロジェクト: scmdev/EvoContacts
        /// <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);
        }
コード例 #11
0
        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);
        }