Пример #1
0
        public static PermissionRange GetPermissionRange(string permissionRange)
        {
            PermissionRange result = PermissionRange.All;

            switch (permissionRange)
            {
            case Constants.PERMISSION_RANGE_NONE:
                result = PermissionRange.None;
                break;

            case Constants.PERMISSION_RANGE_OWNER:
                result = PermissionRange.Owner;
                break;

            case Constants.PERMISSION_RANGE_GROUP:
                result = PermissionRange.Group;
                break;

            case Constants.PERMISSION_RANGE_DEPARTMENT:
                result = PermissionRange.Department;
                break;

            case Constants.PERMISSION_RANGE_OFFICE:
                result = PermissionRange.Office;
                break;

            case Constants.PERMISSION_RANGE_COMPANY:
                result = PermissionRange.Company;
                break;
            }
            return(result);
        }
Пример #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);
        }
        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);
        }
Пример #5
0
        public static int GetPermissionToDelete(ModelUpdate model, PermissionRange permissionRange, ICurrentUser currentUser)
        {
            int code = 0;

            switch (permissionRange)
            {
            case PermissionRange.None:
                code = 403;
                break;

            case PermissionRange.Owner:
                if (model.PartnerGroup.Contains("CUSTOMER"))
                {
                    if (model.Salemans.FindAll(x => x.SaleManId == currentUser.UserID).Count == 0 && model.UserCreator != currentUser.UserID)
                    {
                        code = 403;
                    }
                }
                else
                {
                    if (model.UserCreator != currentUser.UserID)
                    {
                        code = 403;
                    }
                }
                break;

            case PermissionRange.Group:
                if (model.GroupId != currentUser.GroupId && model.DepartmentId == currentUser.DepartmentId)
                {
                    code = 403;
                }
                break;

            case PermissionRange.Department:
                if (model.DepartmentId != currentUser.DepartmentId)
                {
                    code = 403;
                }
                break;

            case PermissionRange.Office:
                if (model.OfficeId != currentUser.OfficeID)
                {
                    code = 403;
                }
                break;

            case PermissionRange.Company:
                if (model.CompanyId != currentUser.CompanyID)
                {
                    code = 403;
                }
                break;
            }
            return(code);
        }
Пример #6
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);
        }
Пример #7
0
        public static int GetPermissionToDelete(ModelUpdate model, PermissionRange permissionRange, ICurrentUser currentUser)
        {
            int code = 403;

            switch (permissionRange)
            {
            case PermissionRange.All:
                code = 200;
                break;

            case PermissionRange.Owner:
                if (model.BillingOpsId == 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);
        }
Пример #8
0
        public IActionResult CheckAllowDelete(Guid id)
        {
            var charge = catChargeService.First(x => x.Id == id);

            if (charge == null)
            {
                return(Ok(false));
            }
            ICurrentUser    _user           = PermissionExtention.GetUserMenuPermission(currentUser, Menu.catCharge);
            PermissionRange permissionRange = PermissionExtention.GetPermissionRange(_user.UserMenuPermission.Delete);

            return(Ok(catChargeService.CheckAllowPermissionAction(id, permissionRange)));
        }
Пример #9
0
        public override bool CheckPermisstion()
        {
            if (this.Type == typeof(AuditOrder).Name)
            {
                return(true);
            }
            PermissionRange range = PermissionRange.Employee;

            if (FBBasePage.DictLessPermission.Keys.Contains(this.Type))
            {
                range = FBBasePage.DictLessPermission[this.Type];
            }

            int perm = PermissionHelper.GetPermissionValue(this.Type, Permissions.Browse);

            // 需要大于等公司的范围权限
            return(!(perm > (int)range || perm < 0));
        }
Пример #10
0
        public IActionResult Update(CatChargeAddOrUpdateModel model)
        {
            ICurrentUser    _user           = PermissionExtention.GetUserMenuPermission(currentUser, Menu.catCharge);
            PermissionRange permissionRange = PermissionExtention.GetPermissionRange(_user.UserMenuPermission.Write);

            if (permissionRange == PermissionRange.None || !catChargeService.CheckAllowPermissionAction(model.Charge.Id, permissionRange))
            {
                return(BadRequest(new ResultHandle {
                    Status = false, Message = stringLocalizer[LanguageSub.DO_NOT_HAVE_PERMISSION].Value
                }));
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            var checkExistMessage = CheckExist(model.Charge.Id, model);

            if (checkExistMessage.Length > 0)
            {
                return(BadRequest(new ResultHandle {
                    Status = false, Message = checkExistMessage
                }));
            }
            var          hs      = catChargeService.UpdateCharge(model);
            var          message = HandleError.GetMessage(hs, Crud.Update);
            ResultHandle result  = new ResultHandle {
                Status = hs.Success, Message = stringLocalizer[message].Value
            };

            if (!hs.Success)
            {
                return(BadRequest(result));
            }
            return(Ok(result));
        }
Пример #11
0
        public IActionResult Delete(Guid id)
        {
            ICurrentUser    _user           = PermissionExtention.GetUserMenuPermission(currentUser, Menu.catCharge);
            PermissionRange permissionRange = PermissionExtention.GetPermissionRange(_user.UserMenuPermission.Delete);

            if (!catChargeService.CheckAllowPermissionAction(id, permissionRange))
            {
                return(BadRequest(new ResultHandle {
                    Status = false, Message = stringLocalizer[LanguageSub.DO_NOT_HAVE_PERMISSION].Value
                }));
            }

            var          hs      = catChargeService.DeleteCharge(id);
            var          message = HandleError.GetMessage(hs, Crud.Delete);
            ResultHandle result  = new ResultHandle {
                Status = hs.Success, Message = stringLocalizer[message].Value
            };

            if (!hs.Success)
            {
                return(BadRequest(result));
            }
            return(Ok(result));
        }
        private bool GetPermissionDetail(PermissionRange permissionRangeWrite, List <CatSaleman> salemans, CatPartnerModel detail)
        {
            bool result = false;

            switch (permissionRangeWrite)
            {
            case PermissionRange.None:
                result = false;
                break;

            case PermissionRange.All:
                result = true;
                break;

            case PermissionRange.Owner:
                if (salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(detail.Id)) || detail.UserCreated == currentUser.UserID)
                {
                    result = true;
                }
                else
                {
                    result = false;
                }
                break;

            case PermissionRange.Group:
                if ((detail.GroupId == currentUser.GroupId && detail.DepartmentId == currentUser.DepartmentId && detail.OfficeId == currentUser.OfficeID && detail.CompanyId == currentUser.CompanyID || detail.UserCreated == currentUser.UserID)
                    )
                {
                    result = true;
                }
                else
                {
                    result = false;
                }
                break;

            case PermissionRange.Department:
                if ((detail.DepartmentId == currentUser.DepartmentId && detail.OfficeId == currentUser.OfficeID && detail.CompanyId == currentUser.CompanyID) || salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(detail.Id)) || detail.UserCreated == currentUser.UserID)
                {
                    result = true;
                }
                else
                {
                    result = false;
                }
                break;

            case PermissionRange.Office:
                if ((detail.OfficeId == currentUser.OfficeID && detail.CompanyId == currentUser.CompanyID) || salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(detail.Id)) || detail.UserCreated == currentUser.UserID)
                {
                    result = true;
                }
                else
                {
                    result = false;
                }
                break;

            case PermissionRange.Company:
                if (detail.CompanyId == currentUser.CompanyID || salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(detail.Id)) || detail.UserCreated == currentUser.UserID)
                {
                    result = true;
                }
                else
                {
                    result = false;
                }
                break;
            }
            return(result);
        }
        private int GetPermissionToDelete(ModelUpdate model, PermissionRange permissionRange)
        {
            int code = PermissionEx.GetPermissionToDelete(model, permissionRange, currentUser);

            return(code);
        }
        private int GetPermissionToUpdate(ModelUpdate model, PermissionRange permissionRange, int?flagDetail)
        {
            int code = PermissionEx.GetPermissionToUpdate(model, permissionRange, currentUser, flagDetail);

            return(code);
        }
        public IQueryable <CatPartnerViewModel> Paging(CatPartnerCriteria criteria, int page, int size, out int rowsCount)
        {
            var data = QueryPaging(criteria);

            if (data == null)
            {
                rowsCount = 0;
                return(null);
            }
            var             salemans    = salemanRepository.Get().ToList();
            ICurrentUser    _user       = PermissionExtention.GetUserMenuPermission(currentUser, Menu.catPartnerdata);//Set default
            PermissionRange rangeSearch = PermissionExtention.GetPermissionRange(_user.UserMenuPermission.List);

            switch (rangeSearch)
            {
            case PermissionRange.None:
                data = null;
                break;

            case PermissionRange.All:
                break;

            case PermissionRange.Owner:
                if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0)
                {
                    data = data.Where(x => salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id)) ||
                                      x.UserCreated == currentUser.UserID).ToList();
                }
                else
                {
                    data = data.Where(x => x.UserCreated == currentUser.UserID).ToList();
                }
                break;

            case PermissionRange.Group:
                if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0)
                {
                    data = data.Where(x => (x.GroupId == currentUser.GroupId && (x.DepartmentId == currentUser.DepartmentId) && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID ||
                                      salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id))
                                      ).ToList();
                }
                else
                {
                    data = data.Where(x => (x.GroupId == currentUser.GroupId && x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID
                                      ).ToList();
                }
                break;

            case PermissionRange.Department:
                if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0)
                {
                    data = data.Where(x => (x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID ||
                                      salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id))
                                      ).ToList();
                }
                else
                {
                    data = data.Where(x => (x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.DepartmentId == currentUser.DepartmentId && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID
                                      ).ToList();
                }
                break;

            case PermissionRange.Office:
                if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0)
                {
                    data = data.Where(x => (x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID ||
                                      salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id))
                                      ).ToList();
                }
                else
                {
                    data = data.Where(x => (x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID
                                      ).ToList();
                }
                break;

            case PermissionRange.Company:
                if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0)
                {
                    data = data.Where(x => (x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID ||
                                      salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id))
                                      ).ToList();
                }
                else
                {
                    data = data.Where(x => (x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID
                                      ).ToList();
                }
                break;
            }

            if (data == null)
            {
                rowsCount = 0;
                return(null);
            }
            rowsCount = data.Select(x => x.Id).Count();
            IQueryable <CatPartnerViewModel> results = null;

            if (size > 1)
            {
                if (page < 1)
                {
                    page = 1;
                }
                results = data.OrderByDescending(x => x.DatetimeModified).Skip((page - 1) * size).Take(size).AsQueryable();
            }
            return(results);
        }
        public IQueryable <CatPartnerViewModel> QueryExport(CatPartnerCriteria criteria)
        {
            var data = QueryPaging(criteria);

            if (data == null)
            {
                return(null);
            }
            var             salemans    = salemanRepository.Get().ToList();
            ICurrentUser    _user       = PermissionExtention.GetUserMenuPermission(currentUser, Menu.catPartnerdata);//Set default
            PermissionRange rangeSearch = PermissionExtention.GetPermissionRange(_user.UserMenuPermission.List);

            switch (rangeSearch)
            {
            case PermissionRange.None:
                data = null;
                break;

            case PermissionRange.All:
                break;

            case PermissionRange.Owner:
                if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0)
                {
                    data = data.Where(x => salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id)) ||
                                      x.UserCreated == currentUser.UserID).ToList();
                }
                else
                {
                    data = data.Where(x => x.UserCreated == currentUser.UserID).ToList();
                }
                break;

            case PermissionRange.Group:
                if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0)
                {
                    data = data.Where(x => (x.GroupId == currentUser.GroupId && (x.DepartmentId == currentUser.DepartmentId) && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID ||
                                      salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id))
                                      ).ToList();
                }
                else
                {
                    data = data.Where(x => (x.GroupId == currentUser.GroupId && x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID
                                      ).ToList();
                }
                break;

            case PermissionRange.Department:
                if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0)
                {
                    data = data.Where(x => (x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID ||
                                      salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id))
                                      ).ToList();
                }
                else
                {
                    data = data.Where(x => (x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.DepartmentId == currentUser.DepartmentId && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID
                                      ).ToList();
                }
                break;

            case PermissionRange.Office:
                if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0)
                {
                    data = data.Where(x => (x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID ||
                                      salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id))
                                      ).ToList();
                }
                else
                {
                    data = data.Where(x => (x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID
                                      ).ToList();
                }
                break;

            case PermissionRange.Company:
                if (criteria.PartnerGroup.ToString() == DataEnums.CustomerPartner || criteria.PartnerGroup == 0)
                {
                    data = data.Where(x => (x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID ||
                                      salemans.Any(y => y.SaleManId == currentUser.UserID && y.PartnerId.Equals(x.Id))
                                      ).ToList();
                }
                else
                {
                    data = data.Where(x => (x.CompanyId == currentUser.CompanyID) ||
                                      x.UserCreated == currentUser.UserID
                                      ).ToList();
                }
                break;
            }

            if (data == null)
            {
                return(null);
            }
            return(data.AsQueryable());
        }
Пример #17
0
        public IQueryable <CatChargeModel> QueryByPermission(CatChargeCriteria criteria, PermissionRange range)
        {
            IQueryable <CatChargeModel> data = null;
            var list = QueryCriteria(criteria);

            switch (range)
            {
            case PermissionRange.All:
                data = list;
                break;

            case PermissionRange.Owner:
                data = list.Where(x => x.UserCreated == currentUser.UserID && x.CompanyId == currentUser.CompanyID);
                break;

            case PermissionRange.Group:
                data = list.Where(x => (x.GroupId == currentUser.GroupId && x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                  x.UserCreated == currentUser.UserID);
                break;

            case PermissionRange.Department:
                data = list.Where(x => (x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) ||
                                  x.UserCreated == currentUser.UserID);
                break;

            case PermissionRange.Office:
                data = list.Where(x => (x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID) || x.UserCreated == currentUser.UserID);
                break;

            case PermissionRange.Company:
                data = list.Where(x => x.CompanyId == currentUser.CompanyID || x.UserCreated == currentUser.UserID);
                break;

            default:
                break;
            }

            return(data);
        }
Пример #18
0
        public static int GetPermissionToUpdateHbl(ModelUpdate model, PermissionRange permissionRange, ICurrentUser currentUser, List <string> authorizeUserIds)
        {
            int code = 403;

            switch (permissionRange)
            {
            case PermissionRange.All:
                code = 200;
                break;

            case PermissionRange.Owner:
                if (model.SaleManId == currentUser.UserID ||
                    authorizeUserIds.Contains(model.SaleManId) ||
                    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) ||
                    authorizeUserIds.Contains(model.SaleManId) ||
                    model.UserCreated == currentUser.UserID)
                {
                    code = 200;
                }
                break;

            case PermissionRange.Department:
                if ((model.DepartmentId == currentUser.DepartmentId &&
                     model.OfficeId == currentUser.OfficeID &&
                     model.CompanyId == currentUser.CompanyID) ||
                    authorizeUserIds.Contains(model.SaleManId) ||
                    model.UserCreated == currentUser.UserID)
                {
                    code = 200;
                }
                break;

            case PermissionRange.Office:
                if ((model.OfficeId == currentUser.OfficeID &&
                     model.CompanyId == currentUser.CompanyID) ||
                    authorizeUserIds.Contains(model.SaleManId) ||
                    model.UserCreated == currentUser.UserID)
                {
                    code = 200;
                }
                break;

            case PermissionRange.Company:
                if (model.CompanyId == currentUser.CompanyID ||
                    authorizeUserIds.Contains(model.SaleManId) ||
                    model.UserCreated == currentUser.UserID)
                {
                    code = 200;
                }
                break;
            }
            return(code);
        }
Пример #19
0
        public static int GetPermissionToDeleteShipmentDocumentation(ModelUpdate model, PermissionRange permissionRange, ICurrentUser currentUser)
        {
            int code = 403;

            switch (permissionRange)
            {
            case PermissionRange.All:
                code = 200;
                break;

            case PermissionRange.Owner:
                if (model.PersonInCharge == currentUser.UserID ||
                    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 IQueryable <sp_GetCatPlace> QueryByPermission(CatPlaceCriteria criteria, PermissionRange range)
        {
            var list = QueryCriteria(criteria);

            if (list == null)
            {
                return(null);
            }
            IQueryable <sp_GetCatPlace> data = null;

            if (list == null)
            {
                return(null);
            }
            switch (range)
            {
            case PermissionRange.Owner:
                data = list.Where(x => x.UserCreated == currentUser.UserID);
                break;

            case PermissionRange.Group:
                data = list.Where(x => x.UserCreated == currentUser.UserID ||
                                  x.GroupId == currentUser.GroupId &&
                                  x.DepartmentId == currentUser.DepartmentId &&
                                  x.OfficeId == currentUser.OfficeID &&
                                  x.CompanyId == currentUser.CompanyID);
                break;

            case PermissionRange.Department:
                data = list.Where(x => x.UserCreated == currentUser.UserID || x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID &&
                                  x.CompanyId == currentUser.CompanyID);
                break;

            case PermissionRange.Office:
                data = list.Where(x => x.UserCreated == currentUser.UserID || x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID);
                break;

            case PermissionRange.Company:
                data = list.Where(x => x.UserCreated == currentUser.UserID || x.CompanyId == currentUser.CompanyID);
                break;

            case PermissionRange.All:
                data = list;
                break;

            default:
                break;
            }

            return(data);
        }
Пример #21
0
        private IQueryable <SetEcusConnectionModel> QueryPermission(SetEcusConnectionCriteria criteria, PermissionRange range)
        {
            var list = Query(criteria);
            IQueryable <SetEcusConnectionModel> data = null;

            if (list == null)
            {
                return(list);
            }
            switch (range)
            {
            case PermissionRange.Owner:
                data = list.Where(x => x.UserCreated == currentUser.UserID);
                break;

            case PermissionRange.Group:
                data = list.Where(x => x.UserCreated == currentUser.UserID ||
                                  x.GroupId == currentUser.GroupId &&
                                  x.DepartmentId == currentUser.DepartmentId &&
                                  x.OfficeId == currentUser.OfficeID &&
                                  x.CompanyId == currentUser.CompanyID);
                break;

            case PermissionRange.Department:
                data = list.Where(x => x.UserCreated == currentUser.UserID || x.DepartmentId == currentUser.DepartmentId && x.OfficeId == currentUser.OfficeID &&
                                  x.CompanyId == currentUser.CompanyID);
                break;

            case PermissionRange.Office:
                data = list.Where(x => x.UserCreated == currentUser.UserID || x.OfficeId == currentUser.OfficeID && x.CompanyId == currentUser.CompanyID);
                break;

            case PermissionRange.Company:
                data = list.Where(x => x.UserCreated == currentUser.UserID || x.CompanyId == currentUser.CompanyID);
                break;

            case PermissionRange.All:
                data = list;
                break;
            }
            return(data);
        }
Пример #22
0
        private IQueryable <TariffViewModel> QueryPermission(TariffCriteria criteria, PermissionRange range)
        {
            var list = Query(criteria);

            if (list == null)
            {
                return(null);
            }
            IQueryable <TariffViewModel> data = null;

            switch (range)
            {
            case PermissionRange.Owner:
                data = list.Where(x => x.UserCreated == currentUser.UserID).AsQueryable();
                break;

            case PermissionRange.Group:
                data = list.Where(x => x.UserCreated == currentUser.UserID ||
                                  x.setTariff.GroupId == currentUser.GroupId &&
                                  x.setTariff.DepartmentId == currentUser.DepartmentId &&
                                  x.setTariff.OfficeId == currentUser.OfficeID &&
                                  x.setTariff.CompanyId == currentUser.CompanyID).AsQueryable();
                break;

            case PermissionRange.Department:
                data = list.Where(x => x.UserCreated == currentUser.UserID || x.setTariff.DepartmentId == currentUser.DepartmentId && x.setTariff.OfficeId == currentUser.OfficeID &&
                                  x.setTariff.CompanyId == currentUser.CompanyID).AsQueryable();
                break;

            case PermissionRange.Office:
                data = list.Where(x => x.UserCreated == currentUser.UserID || x.setTariff.OfficeId == currentUser.OfficeID && x.setTariff.CompanyId == currentUser.CompanyID).AsQueryable();
                break;

            case PermissionRange.Company:
                data = list.Where(x => x.UserCreated == currentUser.UserID || x.setTariff.CompanyId == currentUser.CompanyID).AsQueryable();
                break;

            case PermissionRange.All:
                data = list.AsQueryable();
                break;

            default:
                break;
            }
            return(data);
        }