你的位置:首页 > 软件开发 > Java > Appfuse:权限控制

Appfuse:权限控制

发布时间:2015-07-15 17:00:05
Appfuse的权限控制依赖于Struts的Menu机制,common下的menu.jsp是对菜单顺序的定义,详细的菜单项和菜单链接及权限再menu-config.<Menu name="Logout" title="user.logout&q ...

Appfuse的权限控制依赖于Struts的Menu机制,common下的menu.jsp是对菜单顺序的定义,详细的菜单项和菜单链接及权限再menu-config.

<Menu name="Logout" title="user.logout" page="/logout" roles="ROLE_ADMIN,ROLE_USER,ROLE_PRODUCT" />

roles中的值即是role表中的name,给那个角色分配菜单的权限,则把角色的name加入到菜单定义的roles中即可。

但使用过程中会发现,这样定义好之后菜单出来是乱的,源自appfuse中的一个Bug,修改文件navbarMenu.vm即可,如下:

Appfuse:权限控制Appfuse:权限控制
 1 #macro( displayNavbarMenu $menu $count) 2  #if ($displayer.isAllowed($menu)) 3   #set ($count = $count + 1) 4   ## set menu title 5   #set ($title = $displayer.getMessage($menu.title)) 6   #if (!$menu.url) #set ($url="javascript:void(0)") #else #set ($url=$menu.url) #end 7  8   ## create a single menu item 9   #if ($menu.components.size() == 0)10     <li class="#if ($menu.name == $currentMenu)active#end">11     <a href="$url" title="$title" #if($menu.target)target="$menu.target" #end#if($menu.width)#end>${title}</a>12   #else ## create multiple menu items in a menu13     #if ($menu.components.size() > 0)14       #set ($hasViewableChildren = false)15       #set ($renderedChildren = 0)16       #foreach ($menuIt in $menu.components)17         #if ($displayer.isAllowed($menuIt))18           #set($hasViewableChildren = true)19           #set($renderedChildren = $renderedChildren + 1)20         #end21       #end22     #end23 24     <li#if ($hasViewableChildren) class="dropdown#if ($menu.name == $currentMenu) active#end"#end>25      <a href="#" title="$title"26       #if($menu.target)target="$menu.target" #end27       #if($menu.width)#end28       class="dropdown-toggle" data-toggle="dropdown">${title}</a>29   #end30 31   #if ($menu.components.size() > 0)32     #if ($hasViewableChildren)33      <ul class="dropdown-menu">34     #end35 36     #set ($count = 0)37     #foreach ($menuIt in $menu.components)38       #displayNavbarMenu($menuIt, $count)39     #end40 41     #if ($hasViewableChildren && ($count == $renderedChildren))42      </ul></li>43     #else44      </ul>45      #if ($count > $renderedChildren)46      </li>47      #end48     #end49   #else50    </li>51    #if ($menu.parent && $count == $menu.parent.components.size())52    ##</ul>53    #end54   #end55  #end56 #end57 58 #displayNavbarMenu($menu, 0)

原标题:Appfuse:权限控制

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录