Files
mixtape/zero.Web/Controllers/UserRolesController.cs
T

72 lines
1.8 KiB
C#
Raw Normal View History

2020-04-24 12:46:25 +02:00
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)
2020-04-24 12:46:25 +02:00
{
Api = api;
2020-05-06 11:07:44 +02:00
PermissionsApi = permissionsApi;
2020-04-24 12:46:25 +02:00
}
/// <summary>
/// Get role by id
2020-04-24 15:13:54 +02:00
/// </summary>
2020-04-24 12:46:25 +02:00
public async Task<IActionResult> GetById([FromQuery] string id)
{
2020-04-29 12:11:35 +02:00
return await As<UserRole, UserRoleEditModel>(await Api.GetById(id));
2020-04-24 12:46:25 +02:00
}
/// <summary>
/// Get all roles
/// </summary>
public async Task<IActionResult> GetAll()
{
2020-04-29 12:11:35 +02:00
return await As<UserRole, UserRoleListModel>(await Api.GetAll());
2020-04-24 12:46:25 +02:00
}
/// <summary>
/// Get all permissions for selection
/// </summary>
public IActionResult GetAllPermissions()
{
2020-05-06 11:07:44 +02:00
return Json(PermissionsApi.GetAll());
}
2020-04-28 14:51:17 +02:00
/// <summary>
/// Save country
/// </summary>
[ZeroAuthorize(Permissions.Settings.Users, PermissionsValue.Write)]
public async Task<IActionResult> Save([FromBody] UserRoleEditModel model)
{
2020-04-29 12:11:35 +02:00
UserRole role = await Mapper.Map(model, await Api.GetById(model.Id));
return await As<UserRole, UserRoleEditModel>(await Api.Save(role));
2020-04-28 14:51:17 +02:00
}
/// <summary>
/// Deletes a country
/// </summary>
[ZeroAuthorize(Permissions.Settings.Users, PermissionsValue.Write)]
public async Task<IActionResult> Delete([FromQuery] string id)
{
2020-04-29 12:11:35 +02:00
return await As<UserRole, UserRoleEditModel>(await Api.Delete(id));
2020-04-28 14:51:17 +02:00
}
2020-04-24 12:46:25 +02:00
}
}