コード例 #1
0
 public Task <AccessLevel> AuthorizeAsync(User user, Permission permission) => Task.FromResult(AccessLevel.DeniedFor(user, permission));
コード例 #2
0
        protected sealed override bool DoCheckAccessLevel(ISecurityManager secman, ISession session, AccessLevel access)
        {
            if (!base.DoCheckAccessLevel(secman, session, access))
            {
                return(false);
            }

            var dataContextName = session.NonNull(nameof(session)).DataContextName;

            if (dataContextName.IsNullOrWhiteSpace())
            {
                return(false);                                // false;//deny for unspecified stores
            }
            var segments = dataContextName.Split(DELIMS);

            var wereAny = false;

            for (var i = 0; i < segments.Length; i++)
            {
                var segment = segments[i];
                if (segment.IsNullOrWhiteSpace())
                {
                    continue;
                }

                wereAny = true;

                var nds = access.Data[DATA_ACL_PREFIX + segment];

                if (!nds.Exists)//no data-specific override found - try to find ANY
                {
                    nds = access.Data[DATA_ACL_ANY];
                }

                if (!nds.Exists)
                {
                    return(false);    //no data-specific or ANY override found - denied
                }
                var passed = DoCheckDataStoreAccessLevel(secman, session, dataContextName, nds, access);
                if (!passed)
                {
                    return(false);
                }
            }

            return(wereAny);
        }
コード例 #3
0
 public AccessLevel Authorize(User user, Permission permission) => AccessLevel.DeniedFor(user, permission);
コード例 #4
0
 /// <summary>
 /// Override to perform access level checks per user's AccessLevel ACL entry.
 /// True if  accessLevel satisfies permission requirements.
 /// The default implementation just checks the access.Level
 /// </summary>
 protected virtual bool DoCheckAccessLevel(ISecurityManager secman, ISession session, AccessLevel access)
 {
     return(access.Level >= m_Level);
 }
コード例 #5
0
 protected override bool DoCheckAccessLevel(IApplication app, ISession session, AccessLevel access)
 => session.User.Status >= UserStatus.Administrator &&
 base.DoCheckAccessLevel(app, session, access);
コード例 #6
0
 /// <summary>
 /// Override to perform access level checks per user's AccessLevel ACL entry.
 /// True if  accessLevel satisfies permission requirements.
 /// The default implementation just checks the access.Level
 /// </summary>
 protected virtual bool DoCheckAccessLevel(IApplication app, ISession session, AccessLevel access)
 {
     return(access.Level >= m_Level);
 }
コード例 #7
0
ファイル: SystemAdminPermission.cs プロジェクト: azist/azos
 protected override bool DoCheckAccessLevel(ISecurityManager secman, ISession session, AccessLevel access)
 => session.User.Status >= UserStatus.Administrator &&
 base.DoCheckAccessLevel(secman, session, access);