Ejemplo n.º 1
0
        private WebNavigationItemDefinition FillNavUrl(INavigationItemDefinition navDefinitionItem)
        {
            if (navDefinitionItem == null)
            {
                return(null);
            }
            var navItem = navDefinitionItem;

            if (navItem.NavigationType == 1)
            {
                var p             = navItem.Name;
                var navigationUrl = Mvc.Route.RouteHelper.GetUrl(navItem.RouteValues);
                var permissons    = new List <Permission>();

                if (navItem.RouteValues.Values.Count() < 3)
                {
                    throw new BlocksException(StringLocal.Format("Navigation controller or action {0} can't null",
                                                                 navigationUrl));
                }
                var requiredPermissions = new List <Permission>();
                if (!navItem.HasPermissions.IsNullOrEmpty())
                {
                    requiredPermissions.Add(navItem.HasPermissions.FirstOrDefault());
                }
                return(new WebNavigationItemDefinition(navItem.Name,
                                                       navItem.DisplayName, Mvc.Route.RouteHelper.GetUrl(navItem.RouteValues),
                                                       navItem.RequiresAuthentication, requiredPermissions.ToArray()
                                                       , navItem.CustomData, navItem.IsVisible, navItem.HasPermissions, navItem.RouteValues,
                                                       navItem.NavigationType
                                                       ));
            }

            return(null);
        }
Ejemplo n.º 2
0
        private WebNavigationItemDefinition FillNavUrl(INavigationItemDefinition navDefinitionItem)
        {
            if (navDefinitionItem == null)
            {
                return(null);
            }
            var navItem            = navDefinitionItem;
            var controllerPath     = Mvc.Route.RouteHelper.GetControllerPath(navItem.RouteValues);
            var controllerActionKv = _defaultControllerManager.FindOrNull(controllerPath)?.Actions
                                     .FirstOrDefault(a => a.Key == navItem.RouteValues["action"]?.ToString());

//            if (navItem.NavigationType == 1)
//            {
//                var p = navItem.Name;
//                var navigationUrl = Mvc.Route.RouteHelper.GetUrl(navItem.RouteValues);
//                var permissons = new List<Permission>();
//
////                var navigationRequirePermission = Permission.Create(p, navigationUrl, "navigation",
////                    navigationUrl + "/" + p, new LocalizableString(navItem.DisplayName.SourceName, p));
//                if(navItem.RouteValues.Values.Count() < 3)
//                   throw new BlocksException(StringLocal.Format("Navigation controller or action {0} can't null",navigationUrl));
//
//                return new WebNavigationItemDefinition(navItem.Name,
//                    navItem.DisplayName, Mvc.Route.RouteHelper.GetUrl(navItem.RouteValues), navItem.RequiresAuthentication,null
//                    , navItem.CustomData, navItem.IsVisible, navItem.HasPermissions,navItem.RouteValues, navItem.NavigationType
//                );
//            }
            if (controllerActionKv == null || navDefinitionItem.NavigationType != 0)
            {
                return(null);
            }
            if (controllerActionKv?.Key == null)
            {
                throw new BlocksException(StringLocal.Format("Navigation or action {0} can't found", controllerPath));
            }

            var controllerAction = controllerActionKv.Value.Value;
            var url = Mvc.Route.RouteHelper.GetUrl(navItem.RouteValues);
            var requirePermission = controllerAction.GetAuthorize()?.Select(p =>
                                                                            Permission.Create(p, url, "navigation", url + "/" + p,
                                                                                              new LocalizableString(navItem.DisplayName.SourceName, p))).ToArray();

            return(new WebNavigationItemDefinition(navItem.Name,
                                                   navItem.DisplayName, Mvc.Route.RouteHelper.GetUrl(navItem.RouteValues), navItem.RequiresAuthentication,
                                                   requirePermission
                                                   , navItem.CustomData, navItem.IsVisible, navItem.HasPermissions, navItem.RouteValues,
                                                   navItem.NavigationType
                                                   ));
        }
Ejemplo n.º 3
0
        private MenuItemDefinition funTransfter(INavigationItemDefinition menuItem)
        {
            var localizableString = (LocalizableString)(menuItem.DisplayName);
            var menuDefinition    = new MenuItemDefinition(
                menuItem.Name,
                new Abp.Localization.LocalizableString(localizableString.Name, localizableString.SourceName), null,
                RouteHelper.GetUrl(menuItem.RouteValues));

//            menuItem.Items?.ForEach(navigationItemDefinition =>
//            {
//                menuDefinition.AddItem(funTransfter(navigationItemDefinition));
//            });


            return(menuDefinition);
        }
Ejemplo n.º 4
0
 public static string GetUniqueId(this INavigationItemDefinition navItem)
 {
     return(navItem.Name + "_" + navItem.RouteValues?[RouteConst.area]);
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Adds a <see cref="NavigationDefinition"/> to <see cref="Items"/>.
 /// </summary>
 /// <param name="navItem"><see cref="NavigationDefinition"/> to be added</param>
 /// <returns>This <see cref="NavigationDefinition"/> object</returns>
 public INavigationDefinition AddItem(INavigationItemDefinition navItem)
 {
     Items.Add(navItem);
     return(this);
 }