Exemplo n.º 1
0
        public ActionExecutePermissionDescriptorsList(Type type, String targetAction, IList <IPermissionData> permissionData, bool executeFromType)
        {
            this.executeFromType   = executeFromType;
            this.type              = type;
            this.targetAction      = targetAction;
            AllowNew               = true;
            AllowRemove            = true;
            RaiseListChangedEvents = false;
            ITypeInfo typeInfo = XafTypesInfo.Instance.FindTypeInfo(type);

            if (permissionData != null)
            {
                foreach (PermissionData info in permissionData)
                {
                    ActionOperationPermissionData data = info as ActionOperationPermissionData;
                    if (data != null && data.TargetType == type)
                    {
                        ActionExecutePermissionDescriptor newPermissionDescriptor = CreateNewActionOperationPermissionDescriptor(type, targetAction, executeFromType);
                        newPermissionDescriptor.Criteria = data.Criteria;
                        newPermissionDescriptor.Execute  = data.AllowExecute;
                        //newPermissionDescriptor.TargetAction = data.TargetAction; // Свойство только для чтения
                        Add(newPermissionDescriptor);
                    }
                }
            }
            RaiseListChangedEvents = true;
            IsModified             = false;
        }
Exemplo n.º 2
0
        public ActionOperationPermissionData CreateActionOperationPermissionData(Session session)
        {
            if (IsEmpty())
            {
                return(null);
            }
            ActionOperationPermissionData data = new ActionOperationPermissionData(session);

            data.TargetType   = owner.ObjectType;
            data.Criteria     = Criteria;
            data.TargetAction = TargetAction;
            data.AllowExecute = execute.HasValue ? execute.Value : false;
            data.Save();
            return(data);
        }