예제 #1
0
        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);
        }
예제 #2
0
 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;
 }
예제 #3
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));
        }