Exemplo n.º 1
0
        /// <summary>
        /// Проверка прав на создание документа
        /// </summary>
        /// <returns>Если <c>true</c> нет прав на создание.</returns>
        public static bool CheckCreateDocument(WarehousePermissions edit, params Warehouse[] warehouses)
        {
            warehouses = warehouses.Where(x => x != null).ToArray();
            if (warehouses.Any())
            {
                if (warehouses.Any(x => CurrentPermissions.Warehouse[edit, x]))
                {
                    return(false);
                }

                MessageDialogHelper.RunErrorDialog(
                    string.Format(
                        "У вас нет прав на создание этого документа для склада '{0}'.",
                        string.Join(";", warehouses.Distinct().Select(x => x.Name))
                        )
                    );
            }
            else
            {
                if (CurrentPermissions.Warehouse.Allowed(edit).Any())
                {
                    return(false);
                }

                MessageDialogHelper.RunErrorDialog("У вас нет прав на создание этого документа.");
            }
            return(true);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Проверка прав на изменение документа
 /// </summary>
 /// <returns>Если <c>false</c> нет прав на создание.</returns>
 public static bool CanEditDocument(WarehousePermissions edit, params Warehouse[] warehouses)
 {
     warehouses = warehouses.Where(x => x != null).ToArray();
     if (warehouses.Any())
     {
         return(warehouses.Any(x => CurrentPermissions.Warehouse[edit, x]));
     }
     return(CurrentPermissions.Warehouse.Allowed(edit).Any());
 }
        public bool Validate(WarehousePermissions warehousePermission, Warehouse warehouse)
        {
            if (warehouse == null)
            {
                return(false);
            }

            return(Validate(warehousePermission, warehouse.Id));
        }
Exemplo n.º 4
0
        /// <summary>
        /// Проверка всех прав диалога.
        /// </summary>
        /// <returns>Если <c>true</c> нет прав на просмотр.</returns>
        public static bool CheckAllPermissions(bool isNew, WarehousePermissions edit, params Warehouse[] warehouses)
        {
            if (isNew && CheckCreateDocument(edit, warehouses))
            {
                return(true);
            }

            if (CheckViewWarehouse(edit, warehouses))
            {
                return(true);
            }

            return(false);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Проверка прав на просмотр документа
        /// </summary>
        /// <returns>Если <c>true</c> нет прав на просмотр.</returns>
        public static bool CheckViewWarehouse(WarehousePermissions edit, params Warehouse[] warehouses)
        {
            //Внимание!!! Склад пустой обычно у новых документов. Возможность создания должна проверятся другими условиями. Тут пропускаем.
            warehouses = warehouses.Where(x => x != null).ToArray();
            if (warehouses.Length == 0)
            {
                return(false);
            }

            if (warehouses.Any(x => CurrentPermissions.Warehouse[WarehousePermissions.WarehouseView, x] || CurrentPermissions.Warehouse[edit, x]))
            {
                return(false);
            }

            MessageDialogHelper.RunErrorDialog($"У вас нет прав на просмотр документов склада '{string.Join(";", warehouses.Distinct().Select(x => x.Name))}'.");
            return(true);
        }
Exemplo n.º 6
0
        public static Warehouse GetDefaultWarehouse(IUnitOfWork uow, WarehousePermissions edit)
        {
            if (CurrentUserSettings.Settings.DefaultWarehouse != null)
            {
                var warehouse = uow.GetById <Warehouse>(CurrentUserSettings.Settings.DefaultWarehouse.Id);
                if (CurrentPermissions.Warehouse[WarehousePermissions.WarehouseView, warehouse] && CurrentPermissions.Warehouse[edit, warehouse])
                {
                    return(warehouse);
                }
            }

            if (CurrentPermissions.Warehouse.Allowed(edit).Count() == 1)
            {
                return(CurrentPermissions.Warehouse.Allowed(edit).First());
            }

            return(null);
        }
 public bool Validate(WarehousePermissions warehousePermission, int warehouseId)
 {
     return(permissionMatrix[warehousePermission, warehouseId]);
 }
 public IEnumerable <Warehouse> GetAllowedWarehouses(WarehousePermissions permission)
 {
     return(permissionMatrix.Allowed(permission));
 }