Example #1
0
        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));
        }
 public override int GetHashCode()
 {
     return(PropertyPrivilegeImpl.CalcIndex(create, read, update, delete));
 }