Ejemplo n.º 1
0
        private void FillRemovePrivilege(PrivilegeDepthExtended initialValue
                                         , PrivilegeDepthExtended currentValue
                                         , PrivilegeType privilegeType
                                         , HashSet <Guid> privilegesRemove
                                         )
        {
            if (currentValue == initialValue)
            {
                return;
            }

            if (privilegeType == PrivilegeType.None ||
                EntityPrivileges == null ||
                !EntityPrivileges.Any()
                )
            {
                return;
            }

            var privilege = EntityPrivileges.FirstOrDefault(p => p.PrivilegeType == privilegeType);

            if (privilege == null)
            {
                return;
            }

            if (currentValue == PrivilegeDepthExtended.None)
            {
                privilegesRemove.Add(privilege.PrivilegeId);
            }
        }
        public static bool GetCanBeDepth(SecurityPrivilegeMetadata priv, PrivilegeDepthExtended privilegeDepth)
        {
            switch (privilegeDepth)
            {
            case PrivilegeDepthExtended.None:
                return(true);

            case PrivilegeDepthExtended.Basic:
                return(priv.CanBeBasic);

            case PrivilegeDepthExtended.Local:
                return(priv.CanBeLocal);

            case PrivilegeDepthExtended.Deep:
                return(priv.CanBeDeep);

            case PrivilegeDepthExtended.Global:
                return(priv.CanBeGlobal);

            default:
                break;
            }

            return(false);
        }
        public void LoadData(Role role, IEnumerable <RolePrivileges> rolePrivileges, Privilege privilege)
        {
            this.Role      = role;
            this.Privilege = privilege;

            this._Right = this._initialRight = GetPrivilegeLevel(this.Privilege.PrivilegeId.Value, rolePrivileges);

            this.OnPropertyChanging(nameof(IsChanged));
            this.IsChanged = false;
            this.OnPropertyChanged(nameof(IsChanged));
        }
Ejemplo n.º 4
0
        private void SetSelectedRolesPrivilege(PrivilegeDepthExtended privilegeDepth)
        {
            Privilege privilege = GetSelectedOtherPrivilege()?.Privilege;

            if (privilege == null)
            {
                return;
            }

            var list = lstVwSecurityRoles.SelectedItems.Cast <OtherPrivilegeRolePrivilegeViewItem>().ToList();

            if (!list.Any())
            {
                return;
            }

            bool canBePrivilegeDepth = false;

            switch (privilegeDepth)
            {
            case PrivilegeDepthExtended.Basic:
                canBePrivilegeDepth = privilege.CanBeBasic.GetValueOrDefault();
                break;

            case PrivilegeDepthExtended.Local:
                canBePrivilegeDepth = privilege.CanBeLocal.GetValueOrDefault();
                break;

            case PrivilegeDepthExtended.Deep:
                canBePrivilegeDepth = privilege.CanBeDeep.GetValueOrDefault();
                break;

            case PrivilegeDepthExtended.Global:
                canBePrivilegeDepth = privilege.CanBeGlobal.GetValueOrDefault();
                break;

            case PrivilegeDepthExtended.None:
                canBePrivilegeDepth = true;
                break;

            default:
                break;
            }

            if (canBePrivilegeDepth)
            {
                foreach (var item in list)
                {
                    item.Right = privilegeDepth;
                }
            }
        }
        private void LoadData1(Privilege privilege1, IEnumerable <RolePrivilege> rolePrivileges1)
        {
            this.Privilege1 = privilege1;
            this._Right1    = this._initialRight1 = GetPrivilegeLevel(this.Privilege1.PrivilegeId.Value, rolePrivileges1);

            if (privilege1.AccessRight.HasValue &&
                Enum.IsDefined(typeof(AccessRights), privilege1.AccessRight.Value)
                )
            {
                this.PrivilegeAccessRights1 = (AccessRights)privilege1.AccessRight.Value;
            }
            else
            {
                this.PrivilegeAccessRights1 = null;
            }
        }
        public OtherPrivilegeViewItem(Privilege privilege, IEnumerable <RolePrivilege> rolePrivileges, bool isCustomizable = false)
        {
            this.IsCustomizable = isCustomizable;
            this.Privilege      = privilege;

            this._Right = this._initialRight = GetPrivilegeLevel(rolePrivileges);

            if (privilege.AccessRight.HasValue &&
                Enum.IsDefined(typeof(AccessRights), privilege.AccessRight.Value)
                )
            {
                this.PrivilegeAccessRights = (AccessRights)privilege.AccessRight.Value;
            }

            this._IsChanged = false;
        }
        protected static void SetPrivilegeLevel(
            Dictionary <PrivilegeType, SecurityPrivilegeMetadata> availablePrivilegesTypes
            , PrivilegeDepthExtended initialValue
            , PrivilegeDepthExtended currentValue
            , PrivilegeType privilegeType
            , Dictionary <Guid, PrivilegeDepth> privilegesAdd
            , HashSet <Guid> privilegesRemove
            )
        {
            if (currentValue == initialValue)
            {
                return;
            }

            if (privilegeType == PrivilegeType.None ||
                !availablePrivilegesTypes.ContainsKey(privilegeType)
                )
            {
                return;
            }

            var privilege = availablePrivilegesTypes[privilegeType];

            if (privilege == null)
            {
                return;
            }

            if (currentValue == PrivilegeDepthExtended.None)
            {
                privilegesRemove.Add(privilege.PrivilegeId);
            }
            else
            {
                if (privilegesAdd.ContainsKey(privilege.PrivilegeId))
                {
                    privilegesAdd[privilege.PrivilegeId] = (PrivilegeDepth)Math.Max((int)currentValue, (int)privilegesAdd[privilege.PrivilegeId]);
                }
                else
                {
                    privilegesAdd.Add(privilege.PrivilegeId, (PrivilegeDepth)currentValue);
                }
            }
        }
Ejemplo n.º 8
0
        public void LoadData(EntityMetadata entityMetadata, IEnumerable <RolePrivilege> rolePrivileges)
        {
            this.EntityMetadata = entityMetadata;
            this._availablePrivilegesTypes.Clear();
            this.DisplayName = CreateFileHandler.GetLocalizedLabel(entityMetadata.DisplayName);

            this._CreateRight = this._initialCreate = GetPrivilegeLevel(rolePrivileges, PrivilegeType.Create);
            this._ReadRight   = this._initialRead = GetPrivilegeLevel(rolePrivileges, PrivilegeType.Read);
            this._UpdateRight = this._initialUpdate = GetPrivilegeLevel(rolePrivileges, PrivilegeType.Write);
            this._DeleteRight = this._initialDelete = GetPrivilegeLevel(rolePrivileges, PrivilegeType.Delete);

            this._AppendRight   = this._initialAppend = GetPrivilegeLevel(rolePrivileges, PrivilegeType.Append);
            this._AppendToRight = this._initialAppendTo = GetPrivilegeLevel(rolePrivileges, PrivilegeType.AppendTo);

            this._ShareRight  = this._initialShare = GetPrivilegeLevel(rolePrivileges, PrivilegeType.Share);
            this._AssignRight = this._initialAssign = GetPrivilegeLevel(rolePrivileges, PrivilegeType.Assign);

            this._IsChanged = false;
        }
        public void LoadData(Role role, IEnumerable <RolePrivileges> rolePrivileges, IEnumerable <SecurityPrivilegeMetadata> entityPrivileges)
        {
            this.Role             = role;
            this.EntityPrivileges = entityPrivileges.ToArray();
            this._availablePrivilegesTypes.Clear();

            this._CreateRight = this._initialCreate = GetPrivilegeLevel(rolePrivileges, entityPrivileges, PrivilegeType.Create);
            this._ReadRight   = this._initialRead = GetPrivilegeLevel(rolePrivileges, entityPrivileges, PrivilegeType.Read);
            this._UpdateRight = this._initialUpdate = GetPrivilegeLevel(rolePrivileges, entityPrivileges, PrivilegeType.Write);
            this._DeleteRight = this._initialDelete = GetPrivilegeLevel(rolePrivileges, entityPrivileges, PrivilegeType.Delete);

            this._AppendRight   = this._initialAppend = GetPrivilegeLevel(rolePrivileges, entityPrivileges, PrivilegeType.Append);
            this._AppendToRight = this._initialAppendTo = GetPrivilegeLevel(rolePrivileges, entityPrivileges, PrivilegeType.AppendTo);

            this._ShareRight  = this._initialShare = GetPrivilegeLevel(rolePrivileges, entityPrivileges, PrivilegeType.Share);
            this._AssignRight = this._initialAssign = GetPrivilegeLevel(rolePrivileges, entityPrivileges, PrivilegeType.Assign);

            this._IsChanged = false;
        }
Ejemplo n.º 10
0
        private void FillAddPrivilege(PrivilegeDepthExtended initialValue
                                      , PrivilegeDepthExtended currentValue
                                      , PrivilegeType privilegeType
                                      , Dictionary <Guid, PrivilegeDepth> privilegesAdd
                                      )
        {
            if (currentValue == initialValue)
            {
                return;
            }

            if (privilegeType == PrivilegeType.None ||
                EntityPrivileges == null ||
                !EntityPrivileges.Any()
                )
            {
                return;
            }

            var privilege = EntityPrivileges.FirstOrDefault(p => p.PrivilegeType == privilegeType);

            if (privilege == null)
            {
                return;
            }

            if (currentValue != PrivilegeDepthExtended.None)
            {
                if (privilegesAdd.ContainsKey(privilege.PrivilegeId))
                {
                    privilegesAdd[privilege.PrivilegeId] = (PrivilegeDepth)Math.Max((int)currentValue, (int)privilegesAdd[privilege.PrivilegeId]);
                }
                else
                {
                    privilegesAdd.Add(privilege.PrivilegeId, (PrivilegeDepth)currentValue);
                }
            }
        }