Esempio n. 1
0
        internal Access GetAccess(AccessRight right, string role)
        {
            AccessPermission permission =
                //AccessPermissions.SingleOrDefault(x => x.AccessRight == right.Value && x.Role == role) ??
                AccessPermissions
                .Where(x => x.AccessRight >= right.Value && x.Access != Access.Inherit && x.Role == role)
                .OrderBy(x => x.AccessRight)
                .FirstOrDefault();

            return(permission == null ? Access.Inherit : permission.Access);
        }
        public AccessPermissionBuilder To(params string[] roles)
        {
            foreach (var role in roles)
            {
                var permission = _permissions
                                 .SingleOrDefault(x => x.AccessRight == _right.Value && x.Role == role);

                if (permission == null)
                {
                    permission = new AccessPermission {
                        AccessRight = _right.Value, Role = role
                    };
                    _permissions.Add(permission);
                }

                permission.Access = _access;
            }

            return(this);
        }