コード例 #1
0
ファイル: Permission.cs プロジェクト: webtrad3r/vc-platform
        public override object Clone()
        {
            var result = MemberwiseClone() as Permission;

            result.AssignedScopes = AssignedScopes?.Select(x => x.Clone()).OfType <PermissionScope>().ToList();

            return(result);
        }
コード例 #2
0
ファイル: Permission.cs プロジェクト: zhoubin023/vc-platform
        public virtual Claim ToClaim(JsonSerializerSettings jsonSettings)
        {
            var result = Name;

            if (!AssignedScopes.IsNullOrEmpty())
            {
                result += _scopeCharSeparator + JsonConvert.SerializeObject(AssignedScopes, jsonSettings);
            }
            return(new Claim(PlatformConstants.Security.Claims.PermissionClaimType, result));
        }
コード例 #3
0
ファイル: Permission.cs プロジェクト: petterlopes/vc-platform
        /// <summary>
        /// Generate permissions string with scope combination
        /// </summary>
        public IEnumerable <string> GetPermissionWithScopeCombinationNames()
        {
            var retVal = new List <string>();

            if (AssignedScopes != null && AssignedScopes.Any())
            {
                retVal.AddRange(AssignedScopes.Select(x => Id + ":" + x.ToString()));
            }
            else
            {
                retVal.Add(Id);
            }
            return(retVal);
        }
コード例 #4
0
ファイル: Permission.cs プロジェクト: zhoubin023/vc-platform
 public virtual void Patch(Permission target)
 {
     target.Name      = Name;
     target.ModuleId  = ModuleId;
     target.GroupName = GroupName;
     if (!AssignedScopes.IsNullOrEmpty())
     {
         AssignedScopes.Patch(target.AssignedScopes, (sourceScope, targetScope) => sourceScope.Patch(targetScope));
     }
     if (!AvailableScopes.IsNullOrEmpty())
     {
         AvailableScopes.Patch(target.AvailableScopes, (sourceScope, targetScope) => sourceScope.Patch(targetScope));
     }
 }
コード例 #5
0
ファイル: Permission.cs プロジェクト: zhoubin023/vc-platform
        protected override IEnumerable <object> GetEqualityComponents()
        {
            yield return(Name);

            yield return(ModuleId);

            if (!AssignedScopes.IsNullOrEmpty())
            {
                foreach (var scope in AssignedScopes)
                {
                    yield return(scope);
                }
            }
        }
コード例 #6
0
ファイル: Permission.cs プロジェクト: zhiguohe/vc-platform
        public virtual object Clone()
        {
            var clone = (Permission)MemberwiseClone();

            if (AssignedScopes != null)
            {
                clone.AssignedScopes = new List <PermissionScope>(AssignedScopes.Select(x => x.Clone() as PermissionScope));
            }

            if (AvailableScopes != null)
            {
                clone.AvailableScopes = new List <PermissionScope>(AvailableScopes.Select(x => x.Clone() as PermissionScope));
            }

            return(clone);
        }