Скрытие элемента меню с разрешения AngularJS и веб-API

0

Я выполнил авторизацию на основе ролей в моей службе RESTfull Web API, используя OWIN.

Каким будет лучший способ скрыть пункты меню или кнопки на основе роли, которую имеет пользователь? Я хочу скрыть элементы, к которым у пользователя нет доступа.

ОБНОВЛЕНО

Я хочу знать, что лучше для моего контроллера.

Это пример того, что я хочу, но я не думаю, что это правильный способ сделать это. Во-вторых, маршрутизация терпит неудачу, потому что она не может различать эти два действия.

[Authorize(Roles = "SomeRole")]
public class FooController : ApiController
{
    [HttpGet]
    public string HelloWorld()
    {
         return "Hello world - you are authorized";
    }

    [HttpGet]
    [Route("hasaccess")]
    [AllowAnonymous]
    public bool HasAccess()
    {
         return User.IsInRole("SomeRole");
    }
}

http://localhost: 8080/api/foo/ → вызывает HelloWorld()

http://localhost: 8080/api/foo/hasaccess → вызывает HasAccess()

Теги:
asp.net-web-api

1 ответ

1

Вы можете использовать директиву ng-if. Он будет отображать этот div только в том случае, если функция hasRole возвращает true.

<div ng-if="hasRole('admin')"> 
                  Admin menu item
</div>

А затем в контроллере есть функция

$scope.hasRole = function(role){
    //check if user has needed Role
    //return true or false
}
  • 0
    А как насчет ApiController? Есть мысли о том, как это сделать?
  • 0
    Вы имеете в виду, как хранить пользовательские роли в front-end?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню