2015-10-06 89 views
0

我已經在MySql中設置了幾個角色,並且我想在navbar.html中使用函數 isInAnyRole,以便爲角色爲'ROLE_USER'和ROLE_SUPERVISOR'的用戶顯示菜單。Jhipster - 使用isInAnyRole

我已通過isInAnyRole(['ROLE_USER','ROLE_SUPERVISOR'])替換isInRole('ROLE_USER')。

但isInAnyRole未被調用,並且沒有顯示任何菜單。

什麼是使用isInAnyRole函數的好方法?

感謝

<ul class="nav navbar-nav nav-pills"> 
       <li ng-switch-when="true" class="dropdown-hover" ng-class="{active: $state.includes('user')}" ng-show="isInAnyRole(['ROLE_USER','ROLE_SUPERVISOR'])"> 

isInAnyRole: function (roles) { 
    if (!_authenticated || !_identity.roles) { 
     return false; 
    } 

    for (var i = 0; i < roles.length; i++) { 
     if (_identity.roles.indexOf(roles[i]) !== -1) { 
      return true; 
     } 
    } 

    return false; 
} 
+0

你怎麼知道'isInAnyRole()'沒有被調用?你能介紹一下你的代碼的一部分嗎? –

+0

我在isAnyRole()中設置了一個斷點,並在isInRole()中設置了一個斷點。 isInRole中的執行步驟但isInAnyRole中沒有 – user1260928

回答

1

您使用的是舊版本JHipster的,自發布2.7.0我們提供了一個指令authority.directive.js這不正是你想要的東西。你應該考慮升級你的應用程序。

+0

我即將交付我的應用程序在生產中,正在升級jhipster版本安全嗎? – user1260928

+1

這很可能會破壞你的應用,因爲你落後了幾個月。作爲替代方案,只需複製該指令並更改HTML模板以使用它。 –

+0

請問您可以添加一個如何使用它的例子,或者指出一個鏈接來顯示它? –