コード例 #1
0
        protected virtual void ValidatePermissions()
        {
            PermissionAttributeBase attr = null;

            if (IsUpdate)
            {
                typeof(TRow).GetCustomAttribute <UpdatePermissionAttribute>(false);
            }
            else if (IsCreate)
            {
                typeof(TRow).GetCustomAttribute <InsertPermissionAttribute>(false);
            }

            attr = attr ?? typeof(TRow).GetCustomAttribute <ModifyPermissionAttribute>(false);

            if (attr != null)
            {
                if (attr.Permission.IsNullOrEmpty())
                {
                    Authorization.ValidateLoggedIn();
                }
                else
                {
                    Authorization.ValidatePermission(attr.Permission);
                }
            }
        }
コード例 #2
0
        protected virtual void ValidatePermissions()
        {
            PermissionAttributeBase attr = null;

            if (IsUpdate)
            {
                attr = typeof(TRow).GetCustomAttribute <UpdatePermissionAttribute>(false);
            }
            else if (IsCreate)
            {
                attr = typeof(TRow).GetCustomAttribute <InsertPermissionAttribute>(false);
            }

            attr = attr ?? typeof(TRow).GetCustomAttribute <ModifyPermissionAttribute>(false);

            if (attr != null)
            {
                Authorization.ValidatePermission(attr.Permission ?? "?");
            }
        }
コード例 #3
0
        protected PageAuthorizeAttribute(Type sourceType, params Type[] attributeTypes)
            : this()
        {
            if (sourceType == null)
            {
                throw new ArgumentNullException("sourceType");
            }

            if (attributeTypes.IsEmptyOrNull())
            {
                throw new ArgumentNullException("attributeTypes");
            }

            PermissionAttributeBase attr = null;

            foreach (var attributeType in attributeTypes)
            {
                var lst = sourceType.GetCustomAttributes(attributeType, true);
                if (lst.Length > 0)
                {
                    attr = lst[0] as PermissionAttributeBase;
                    if (attr == null)
                    {
                        throw new ArgumentOutOfRangeException(attributeType.Name +
                                                              " is not a subclass of PermissionAttributeBase!");
                    }

                    break;
                }
            }

            if (attr == null)
            {
                throw new ArgumentOutOfRangeException("sourceType",
                                                      "PageAuthorize attribute is created with source type of " +
                                                      sourceType.Name + ", but it has no " +
                                                      string.Join(" OR ", attributeTypes.Select(x => x.Name)) + " attribute(s)");
            }

            this.Permission = attr.Permission;
        }
コード例 #4
0
        protected virtual void ValidatePermissions()
        {
            PermissionAttributeBase attr = null;

            if (IsUpdate)
            {
                attr = typeof(TRow).GetCustomAttribute <UpdatePermissionAttribute>(true);
            }
            else if (IsCreate)
            {
                attr = typeof(TRow).GetCustomAttribute <InsertPermissionAttribute>(true);
            }

            attr ??= (PermissionAttributeBase)typeof(TRow).GetCustomAttribute <ModifyPermissionAttribute>(true) ??
            typeof(TRow).GetCustomAttribute <ReadPermissionAttribute>(true);

            if (attr != null)
            {
                Permissions.ValidatePermission(attr.Permission ?? "?", Localizer);
            }
        }