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; }
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); }