Example #1
0
        /// <summary>
        /// 重写以实现从方法信息中创建功能信息
        /// </summary>
        /// <param name="typeFunction">类功能信息</param>
        /// <param name="method">方法信息</param>
        /// <returns></returns>
        protected override Function GetFunction(Function typeFunction, MethodInfo method)
        {
            Check.NotNull(typeFunction, nameof(typeFunction));
            Check.NotNull(method, nameof(method));

            FunctionAccessType accessType = method.HasAttribute <LoggedInAttribute>()
                ? FunctionAccessType.LoggedIn
                : method.HasAttribute <AllowAnonymousAttribute>()
                    ? FunctionAccessType.Anonymous
                    : method.HasAttribute <RoleLimitAttribute>()
                        ? FunctionAccessType.RoleLimit
                        : typeFunction.AccessType;
            Function function = new Function()
            {
                Name         = $"{typeFunction.Name}-{method.GetDescription()}",
                Area         = typeFunction.Area,
                Controller   = typeFunction.Controller,
                Action       = method.Name,
                AccessType   = accessType,
                IsController = false,
                IsAjax       = method.HasAttribute <AjaxOnlyAttribute>()
            };

            return(function);
        }
        /// <summary>
        /// 重写以实现从功能类型创建功能信息
        /// </summary>
        /// <param name="controllerType">功能类型</param>
        /// <returns></returns>
        protected override Function GetFunction(Type controllerType)
        {
            if (!controllerType.IsController())
            {
                throw new HybridException($"类型“{controllerType.FullName}”不是MVC控制器类型");
            }
            FunctionAccessType accessType = controllerType.HasAttribute <LoggedInAttribute>()
                ? FunctionAccessType.LoggedIn
                : controllerType.HasAttribute <RoleLimitAttribute>()
                    ? FunctionAccessType.RoleLimit
                    : FunctionAccessType.Anonymous;
            Function function = new Function()
            {
                Name       = controllerType.GetDescription(),
                Area       = GetArea(controllerType),
                Controller = controllerType.Name
                             .Replace("ControllerBase", string.Empty)
                             .Replace("Controller", string.Empty)
                             .Replace("`1", string.Empty)
                             .Replace("`2", string.Empty),
                IsController = true,
                IsWebApi     = controllerType.BaseType.HasAttribute <ApiControllerAttribute>(),
                AccessType   = accessType
            };

            return(function);
        }
Example #3
0
        /// <summary>
        /// 重写以实现从方法信息中创建功能信息
        /// </summary>
        /// <param name="typeFunction">类功能信息</param>
        /// <param name="method">方法信息</param>
        /// <returns></returns>
        protected override Function GetFunction(Function typeFunction, MethodInfo method)
        {
            FunctionAccessType accessType = method.HasAttribute <LoggedInAttribute>() || method.HasAttribute <AuthorizeAttribute>()
                ? FunctionAccessType.LoggedIn
                : method.HasAttribute <AllowAnonymousAttribute>()
                    ? FunctionAccessType.Anonymous
                    : method.HasAttribute <RoleLimitAttribute>()
                        ? FunctionAccessType.RoleLimit
                        : typeFunction.AccessType;

            var      source   = options.LocalOption.AppKey;
            Function function = new Function()
            {
                Source       = source,
                IsWebApi     = typeFunction.IsWebApi,
                Name         = $"{typeFunction.Name}-{method.GetDescription()}",
                Area         = typeFunction.Area,
                Controller   = typeFunction.Controller,
                Action       = method.Name,
                AccessType   = accessType,
                IsController = false,
            };

            return(function);
        }
Example #4
0
        /// <summary>
        /// 重写以实现从功能类型创建功能信息
        /// </summary>
        /// <param name="controllerType">功能类型</param>
        /// <returns></returns>
        protected override Function GetFunction(Type controllerType)
        {
            if (!controllerType.IsController())
            {
                throw new TomNetException($"类型“{controllerType.FullName}”不是MVC控制器类型");
            }
            FunctionAccessType accessType = controllerType.HasAttribute <LoggedInAttribute>() || controllerType.HasAttribute <AuthorizeAttribute>()
                ? FunctionAccessType.LoggedIn
                : controllerType.HasAttribute <RoleLimitAttribute>()
                    ? FunctionAccessType.RoleLimit
                    : FunctionAccessType.Anonymous;

            bool     isApi    = controllerType.HasAttribute <ApiControllerAttribute>();
            var      source   = options.LocalOption.AppKey;
            Function function = new Function()
            {
                Source       = source,
                IsWebApi     = isApi,
                Name         = controllerType.GetDescription(),
                Area         = GetArea(controllerType),
                Controller   = controllerType.Name.Replace("ControllerBase", string.Empty).Replace("Controller", string.Empty),
                IsController = true,
                AccessType   = accessType
            };

            return(function);
        }
        /// <summary>
        /// 重写以实现从方法信息中创建功能信息
        /// </summary>
        /// <param name="typeFunction">类功能信息</param>
        /// <param name="method">方法信息</param>
        /// <returns></returns>
        protected override Function GetFunction(Function typeFunction, MethodInfo method)
        {
            FunctionAccessType accessType = method.HasAttribute <LoginedAttribute>() || method.HasAttribute <AuthorizeAttribute>()
                ? FunctionAccessType.Logined
                : method.HasAttribute <AllowAnonymousAttribute>()
                    ? FunctionAccessType.Anonymouse
                    : method.HasAttribute <RoleLimitAttribute>()
                        ? FunctionAccessType.RoleLimit
                        : typeFunction.AccessType;
            Function function = new Function()
            {
                Name         = $"{typeFunction.Name}-{method.GetDescription()}",
                Area         = typeFunction.Area,
                Controller   = typeFunction.Controller,
                Action       = method.Name,
                AccessType   = accessType,
                IsController = false,
                IsAjax       = method.HasAttribute <AjaxOnlyAttribute>()
            };

            return(function);
        }
        /// <summary>
        /// 重写以实现从功能类型创建功能信息
        /// </summary>
        /// <param name="controllerType">功能类型</param>
        /// <returns></returns>
        protected override Function GetFunction(Type controllerType)
        {
            if (!controllerType.IsController())
            {
                throw new OsharpException($"类型“{controllerType.FullName}”不是MVC控制器类型");
            }
            FunctionAccessType accessType = controllerType.HasAttribute <LoginedAttribute>() || controllerType.HasAttribute <AuthorizeAttribute>()
                ? FunctionAccessType.Logined
                : controllerType.HasAttribute <RoleLimitAttribute>()
                    ? FunctionAccessType.RoleLimit
                    : FunctionAccessType.Anonymouse;
            Function function = new Function()
            {
                Name         = controllerType.GetDescription(),
                Area         = GetArea(controllerType),
                Controller   = controllerType.Name.Replace("Controller", string.Empty),
                IsController = true,
                AccessType   = accessType
            };

            return(function);
        }