using RSecurityBackend.Models.Auth.Db;
using RSecurityBackend.Models.Auth.Memory;
using RSecurityBackend.Models.Generic;
using System;
using System.Threading.Tasks;
namespace RSecurityBackend.Services
{
///
/// User Groups Service
///
public interface IUserRoleService
{
///
/// returns all user roles
///
///
Task> GetAllRoles();
///
/// returns user role information
///
///
///
Task> GetRoleInformation(string roleName);
///
/// adds a new user role
///
/// new role info
/// update user role info (id)
Task> AddRole(RAppRole newRoleInfo);
///
/// modify existing user role
///
///
///
///
Task> ModifyRole(string roleName, RAppRole editedRole);
///
/// delete user role
///
///
/// true if succeeds
Task> DeleteRole(string roleName);
///
/// Has role specified permission
///
///
///
///
///
Task> HasPermission(string roleName, string securableItemShortName, string operationShortName);
///
/// gets list of SecurableItem, should be reimplemented in end user applications
///
///
SecurableItem[] GetSecurableItems();
///
/// Lists role permissions
///
///
///
Task> GetRoleSecurableItemsStatus(string roleName);
///
/// Saves role permissions
///
///
///
///
Task> SetRoleSecurableItemsStatus(string roleName, SecurableItem[] securableItems);
}
}