using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
using zero.Core.Api;
using zero.Core.Entities;
using zero.Core.Identity;
using zero.Web.Models;
namespace zero.Web.Controllers
{
[ZeroAuthorize(Permissions.Settings.Users, PermissionsValue.Read)]
public class UserRolesController : BackofficeController
{
IUserRolesApi Api;
IPermissionsApi PermissionsApi;
public UserRolesController(IUserRolesApi api, IPermissionsApi permissionsApi)
{
Api = api;
PermissionsApi = permissionsApi;
}
///
/// Get role by id
///
public async Task GetById([FromQuery] string id)
{
return Edit(await Api.GetById(id));
}
///
/// Get all roles
///
public async Task GetAll()
{
return await As(await Api.GetAll());
}
///
/// Get all permissions for selection
///
public IActionResult GetAllPermissions()
{
return Json(PermissionsApi.GetAll());
}
///
/// Save country
///
[ZeroAuthorize(Permissions.Settings.Users, PermissionsValue.Update)]
public async Task Save([FromBody] UserRoleEditModel model)
{
UserRole role = await Mapper.Map(model, await Api.GetById(model.Id));
return await As(await Api.Save(role));
}
///
/// Deletes a country
///
[ZeroAuthorize(Permissions.Settings.Users, PermissionsValue.Update)]
public async Task Delete([FromQuery] string id)
{
return await As(await Api.Delete(id));
}
}
}