private static void Put(bool create, bool read, bool update, bool delete, bool execute) { IPropertyPrivilege propertyPrivilege = PropertyPrivilegeImpl.Create(create, read, update, delete); int index = CalcIndex(create, read, update, delete, execute); array[index] = new SimplePrivilegeImpl(create, read, update, delete, execute, propertyPrivilege); }
public SimplePrivilegeImpl(bool create, bool read, bool update, bool delete, bool execute, IPropertyPrivilege defaultPropertyPrivileges) : base(create, read, update, delete, execute, null, null) { this.create = create; this.read = read; this.update = update; this.delete = delete; this.execute = execute; this.defaultPropertyPrivileges = defaultPropertyPrivileges; }
protected IPrivilege CreatePrivilegeFromServiceResult(IObjRef objRef, IPrivilegeOfService privilegeOfService) { IPropertyPrivilegeOfService[] propertyPrivilegesOfService = privilegeOfService.PropertyPrivileges; if (propertyPrivilegesOfService == null || propertyPrivilegesOfService.Length == 0) { return(SimplePrivilegeImpl.CreateFrom(privilegeOfService)); } String[] propertyPrivilegeNames = privilegeOfService.PropertyPrivilegeNames; IEntityMetaData metaData = EntityMetaDataProvider.GetMetaData(objRef.RealType); IPropertyPrivilege[] primitivePropertyPrivileges = new IPropertyPrivilege[metaData.PrimitiveMembers.Length]; IPropertyPrivilege[] relationPropertyPrivileges = new IPropertyPrivilege[metaData.RelationMembers.Length]; IPropertyPrivilege defaultPropertyPrivilege = PropertyPrivilegeImpl.CreateFrom(privilegeOfService); Arrays.Fill(primitivePropertyPrivileges, defaultPropertyPrivilege); Arrays.Fill(relationPropertyPrivileges, defaultPropertyPrivilege); for (int b = propertyPrivilegesOfService.Length; b-- > 0;) { IPropertyPrivilegeOfService propertyPrivilegeOfService = propertyPrivilegesOfService[b]; String propertyName = InterningFeature.Intern(propertyPrivilegeNames[b]); IPropertyPrivilege propertyPrivilege = PropertyPrivilegeImpl.Create(propertyPrivilegeOfService.CreateAllowed, propertyPrivilegeOfService.ReadAllowed, propertyPrivilegeOfService.UpdateAllowed, propertyPrivilegeOfService.DeleteAllowed); if (metaData.IsRelationMember(propertyName)) { relationPropertyPrivileges[metaData.GetIndexByRelationName(propertyName)] = propertyPrivilege; } if (metaData.IsPrimitiveMember(propertyName)) { primitivePropertyPrivileges[metaData.GetIndexByPrimitiveName(propertyName)] = propertyPrivilege; } } return(EntityPrivilegeFactoryProvider.GetEntityPrivilegeFactory(metaData.EntityType, privilegeOfService.CreateAllowed, privilegeOfService.ReadAllowed, privilegeOfService.UpdateAllowed, privilegeOfService.DeleteAllowed, privilegeOfService.ExecuteAllowed).CreatePrivilege(privilegeOfService.CreateAllowed, privilegeOfService.ReadAllowed, privilegeOfService.UpdateAllowed, privilegeOfService.DeleteAllowed, privilegeOfService.ExecuteAllowed, primitivePropertyPrivileges, relationPropertyPrivileges)); }