Esempio n. 1
0
        private Task ReplyPermissions(IClaimCollection claims)
        {
            var b = new StringBuilder();

            b.AppendLine($"The following permissions are set for {claims.Subject.MentionString}:");
            if (claims !.Claims.Count > 0)
            {
                var maxWidth = claims.Claims.Max(c => c.Identifier.Length);
                foreach (var claim in claims.Claims)
                {
                    b.AppendLine($"`{claim.Identifier.PadRight(maxWidth)}   {claim.Allow}`");
                }
            }
Esempio n. 2
0
        public static bool IsAllowed(IClaimCollection claims, string requiredPermission, bool inheritParentPermission)
        {
            var permissionName = requiredPermission;

            do
            {
                var claim = claims.Claims.FirstOrDefault(c => c.Identifier == permissionName);
                if (claim is not null)
                {
                    return(claim.Allow);
                }

                var parentNameEndIndex = permissionName.IndexOf('.');
                if (parentNameEndIndex == -1)
                {
                    break;
                }

                permissionName = permissionName.Substring(0, parentNameEndIndex);
            } while (inheritParentPermission);

            return(false);
        }