Ejemplo n.º 1
0
 public static IEnumerable<IOperationPermission> GetPermissions(IDCTypePermissions typePermissions) {
     List<IOperationPermission> result = new List<IOperationPermission>();
     if(typePermissions.TargetType != null) {
         if(typePermissions.AllowRead) {
             result.Add(new TypeOperationPermission(typePermissions.TargetType, SecurityOperations.Read));
         }
         if(typePermissions.AllowWrite) {
             result.Add(new TypeOperationPermission(typePermissions.TargetType, SecurityOperations.Write));
         }
         if(typePermissions.AllowCreate) {
             result.Add(new TypeOperationPermission(typePermissions.TargetType, SecurityOperations.Create));
         }
         if(typePermissions.AllowDelete) {
             result.Add(new TypeOperationPermission(typePermissions.TargetType, SecurityOperations.Delete));
         }
         if(typePermissions.AllowNavigate) {
             result.Add(new TypeOperationPermission(typePermissions.TargetType, SecurityOperations.Navigate));
         }
         foreach(IDCMemberPermissions memberPermissionOperations in typePermissions.MemberPermissions) {
             result.AddRange(memberPermissionOperations.GetPermissions());
         }
         foreach(IDCObjectPermissions objectPermissionOperations in typePermissions.ObjectPermissions) {
             result.AddRange(objectPermissionOperations.GetPermissions());
         }
     }
     return result;
 }
Ejemplo n.º 2
0
 public static String Get_Object(IDCTypePermissions typePermissions) {
     if(typePermissions.TargetType != null) {
         String classCaption = CaptionHelper.GetClassCaption(typePermissions.TargetType.FullName);
         return String.IsNullOrEmpty(classCaption) ? typePermissions.TargetType.Name : classCaption;
     }
     return String.Empty;
 }
Ejemplo n.º 3
0
 public static String Get_Object(IDCTypePermissions typePermissions)
 {
     if (typePermissions.TargetType != null)
     {
         String classCaption = CaptionHelper.GetClassCaption(typePermissions.TargetType.FullName);
         return(String.IsNullOrEmpty(classCaption) ? typePermissions.TargetType.Name : classCaption);
     }
     return(String.Empty);
 }
Ejemplo n.º 4
0
        private IDCRole GetDefaultRole()
        {
            IDCRole defaultRole = ObjectSpace.FindObject <IDCRole>(new BinaryOperator("Name", "Default"));

            if (defaultRole == null)
            {
                defaultRole      = ObjectSpace.CreateObject <IDCRole>();
                defaultRole.Name = "Default";

                IDCTypePermissions securityDemoUserPermissions = ObjectSpace.CreateObject <IDCTypePermissions>();
                securityDemoUserPermissions.TargetType = typeof(IDCUser);
                defaultRole.TypePermissions.Add(securityDemoUserPermissions);

                IDCObjectPermissions myDetailsPermission = ObjectSpace.CreateObject <IDCObjectPermissions>();
                myDetailsPermission.Criteria      = "[Oid] = CurrentUserId()";
                myDetailsPermission.AllowNavigate = true;
                myDetailsPermission.AllowRead     = true;
                securityDemoUserPermissions.ObjectPermissions.Add(myDetailsPermission);

                IDCTypePermissions userPermissions = ObjectSpace.CreateObject <IDCTypePermissions>();
                userPermissions.TargetType = typeof(IDCUser);
                defaultRole.TypePermissions.Add(userPermissions);

                IDCMemberPermissions ownPasswordPermission = ObjectSpace.CreateObject <IDCMemberPermissions>();
                ownPasswordPermission.Members    = "ChangePasswordOnFirstLogon; StoredPassword";
                ownPasswordPermission.AllowWrite = true;
                userPermissions.MemberPermissions.Add(ownPasswordPermission);

                IDCTypePermissions securityRolePermissions = ObjectSpace.CreateObject <IDCTypePermissions>();
                securityRolePermissions.TargetType = typeof(IDCRole);
                defaultRole.TypePermissions.Add(userPermissions);

                IDCObjectPermissions defaultRolePermission = ObjectSpace.CreateObject <IDCObjectPermissions>();
                defaultRolePermission.Criteria      = "[Name] = 'Default'";
                defaultRolePermission.AllowNavigate = true;
                defaultRolePermission.AllowRead     = true;
                securityRolePermissions.ObjectPermissions.Add(defaultRolePermission);
            }
            return(defaultRole);
        }
Ejemplo n.º 5
0
        public static IEnumerable <IOperationPermission> GetPermissions(IDCTypePermissions typePermissions)
        {
            List <IOperationPermission> result = new List <IOperationPermission>();

            if (typePermissions.TargetType != null)
            {
                if (typePermissions.AllowRead)
                {
                    result.Add(new TypeOperationPermission(typePermissions.TargetType, SecurityOperations.Read));
                }
                if (typePermissions.AllowWrite)
                {
                    result.Add(new TypeOperationPermission(typePermissions.TargetType, SecurityOperations.Write));
                }
                if (typePermissions.AllowCreate)
                {
                    result.Add(new TypeOperationPermission(typePermissions.TargetType, SecurityOperations.Create));
                }
                if (typePermissions.AllowDelete)
                {
                    result.Add(new TypeOperationPermission(typePermissions.TargetType, SecurityOperations.Delete));
                }
                if (typePermissions.AllowNavigate)
                {
                    result.Add(new TypeOperationPermission(typePermissions.TargetType, SecurityOperations.Navigate));
                }
                foreach (IDCMemberPermissions memberPermissionOperations in typePermissions.MemberPermissions)
                {
                    result.AddRange(memberPermissionOperations.GetPermissions());
                }
                foreach (IDCObjectPermissions objectPermissionOperations in typePermissions.ObjectPermissions)
                {
                    result.AddRange(objectPermissionOperations.GetPermissions());
                }
            }
            return(result);
        }
Ejemplo n.º 6
0
        private IDCRole GetSecurityDemoRole()
        {
            IDCRole securityDemoRole = ObjectSpace.FindObject <IDCRole>(new BinaryOperator("Name", "Demo"));

            if (securityDemoRole == null)
            {
                securityDemoRole      = ObjectSpace.CreateObject <IDCRole>();
                securityDemoRole.Name = "Demo";

                // Type Operation Permissions
                IDCTypePermissions fullAccessPermission = ObjectSpace.CreateObject <IDCTypePermissions>();
                fullAccessPermission.TargetType    = typeof(IFullAccessObject);
                fullAccessPermission.AllowCreate   = true;
                fullAccessPermission.AllowDelete   = true;
                fullAccessPermission.AllowNavigate = true;
                fullAccessPermission.AllowRead     = true;
                fullAccessPermission.AllowWrite    = true;
                securityDemoRole.TypePermissions.Add(fullAccessPermission);
                IDCTypePermissions protectedContentPermission = ObjectSpace.CreateObject <IDCTypePermissions>();
                protectedContentPermission.TargetType    = typeof(IProtectedContentObject);
                protectedContentPermission.AllowNavigate = true;
                securityDemoRole.TypePermissions.Add(protectedContentPermission);
                IDCTypePermissions readOnlyPermission = ObjectSpace.CreateObject <IDCTypePermissions>();
                readOnlyPermission.TargetType    = typeof(IReadOnlyObject);
                readOnlyPermission.AllowNavigate = true;
                readOnlyPermission.AllowRead     = true;
                securityDemoRole.TypePermissions.Add(readOnlyPermission);

                IDCTypePermissions irremovablePermission = ObjectSpace.CreateObject <IDCTypePermissions>();
                irremovablePermission.TargetType    = typeof(IIrremovableObject);
                irremovablePermission.AllowCreate   = true;
                irremovablePermission.AllowNavigate = true;
                irremovablePermission.AllowRead     = true;
                irremovablePermission.AllowWrite    = true;
                securityDemoRole.TypePermissions.Add(irremovablePermission);
                IDCTypePermissions uncreatablePermission = ObjectSpace.CreateObject <IDCTypePermissions>();
                uncreatablePermission.TargetType    = typeof(IUncreatableObject);
                uncreatablePermission.AllowDelete   = true;
                uncreatablePermission.AllowNavigate = true;
                uncreatablePermission.AllowRead     = true;
                uncreatablePermission.AllowWrite    = true;
                securityDemoRole.TypePermissions.Add(uncreatablePermission);

                // Member Operation Permissions
                IDCTypePermissions navigateMemberLevelOperationObjectPermission = ObjectSpace.CreateObject <IDCTypePermissions>();
                navigateMemberLevelOperationObjectPermission.TargetType    = typeof(IMemberLevelSecurityObject);
                navigateMemberLevelOperationObjectPermission.AllowCreate   = true;
                navigateMemberLevelOperationObjectPermission.AllowDelete   = true;
                navigateMemberLevelOperationObjectPermission.AllowNavigate = true;
                securityDemoRole.TypePermissions.Add(navigateMemberLevelOperationObjectPermission);

                IDCMemberPermissions readWriteMemberPermission = ObjectSpace.CreateObject <IDCMemberPermissions>();
                readWriteMemberPermission.Members    = "ReadWriteProperty; Name; oid; Oid; OptimisticLockField";
                readWriteMemberPermission.AllowRead  = true;
                readWriteMemberPermission.AllowWrite = true;
                navigateMemberLevelOperationObjectPermission.MemberPermissions.Add(readWriteMemberPermission);

                IDCMemberPermissions protectedContentMemberPermission = ObjectSpace.CreateObject <IDCMemberPermissions>();
                protectedContentMemberPermission.Members = "ProtectedContentProperty; ProtectedContentCollection";
                navigateMemberLevelOperationObjectPermission.MemberPermissions.Add(protectedContentMemberPermission);

                IDCMemberPermissions readOnlyMemberPermission = ObjectSpace.CreateObject <IDCMemberPermissions>();
                readOnlyMemberPermission.Members   = "ReadOnlyProperty; ReadOnlyCollection";
                readOnlyMemberPermission.AllowRead = true;
                navigateMemberLevelOperationObjectPermission.MemberPermissions.Add(readOnlyMemberPermission);

                IDCTypePermissions memberLevelReferencedObject1Permission = ObjectSpace.CreateObject <IDCTypePermissions>();
                memberLevelReferencedObject1Permission.TargetType  = typeof(IMemberLevelReferencedObject1);
                memberLevelReferencedObject1Permission.AllowRead   = true;
                memberLevelReferencedObject1Permission.AllowWrite  = true;
                memberLevelReferencedObject1Permission.AllowCreate = true;
                memberLevelReferencedObject1Permission.AllowDelete = true;
                securityDemoRole.TypePermissions.Add(memberLevelReferencedObject1Permission);

                IDCTypePermissions memberLevelReferencedObject2Permission = ObjectSpace.CreateObject <IDCTypePermissions>();
                memberLevelReferencedObject2Permission.TargetType  = typeof(IMemberLevelReferencedObject2);
                memberLevelReferencedObject2Permission.AllowRead   = true;
                memberLevelReferencedObject2Permission.AllowWrite  = true;
                memberLevelReferencedObject2Permission.AllowCreate = true;
                memberLevelReferencedObject2Permission.AllowDelete = true;
                securityDemoRole.TypePermissions.Add(memberLevelReferencedObject2Permission);

                // Object Operation Permissions
                IDCTypePermissions navigateObjectLevelSecurityObjectPermission = ObjectSpace.CreateObject <IDCTypePermissions>();
                navigateObjectLevelSecurityObjectPermission.TargetType    = typeof(IObjectLevelSecurityObject);
                navigateObjectLevelSecurityObjectPermission.AllowNavigate = true;
                securityDemoRole.TypePermissions.Add(navigateObjectLevelSecurityObjectPermission);

                IDCObjectPermissions fullAccessObjectPermission = ObjectSpace.CreateObject <IDCObjectPermissions>();
                fullAccessObjectPermission.Criteria      = "[Name] Like '%Fully Accessible%'";
                fullAccessObjectPermission.AllowDelete   = true;
                fullAccessObjectPermission.AllowNavigate = true;
                fullAccessObjectPermission.AllowRead     = true;
                fullAccessObjectPermission.AllowWrite    = true;
                navigateObjectLevelSecurityObjectPermission.ObjectPermissions.Add(fullAccessObjectPermission);

                IDCObjectPermissions protectedContentObjectPermission = ObjectSpace.CreateObject <IDCObjectPermissions>();
                protectedContentObjectPermission.Criteria      = "[Name] Like '%Protected%'";
                protectedContentObjectPermission.AllowNavigate = true;
                navigateObjectLevelSecurityObjectPermission.ObjectPermissions.Add(protectedContentObjectPermission);

                IDCObjectPermissions readOnlyObjectPermission = ObjectSpace.CreateObject <IDCObjectPermissions>();
                readOnlyObjectPermission.Criteria      = "[Name] Like '%Read-Only%'";
                readOnlyObjectPermission.AllowNavigate = true;
                readOnlyObjectPermission.AllowRead     = true;
                navigateObjectLevelSecurityObjectPermission.ObjectPermissions.Add(readOnlyObjectPermission);

                IDCObjectPermissions irremovableObjectPermission = ObjectSpace.CreateObject <IDCObjectPermissions>();
                irremovableObjectPermission.Criteria      = "[Name] Like '%Protected Deletion%'";
                irremovableObjectPermission.AllowNavigate = true;
                irremovableObjectPermission.AllowRead     = true;
                irremovableObjectPermission.AllowWrite    = true;
                navigateObjectLevelSecurityObjectPermission.ObjectPermissions.Add(irremovableObjectPermission);
            }
            return(securityDemoRole);
        }