Files
Vocaluxe/ClientServerLib/ClientServerLib/UserRoleControl.cs
T

47 lines
3.5 KiB
C#

using System.Collections.Generic;
using System.Linq;
namespace ServerLib
{
internal static class CUserRoleControl
{
private static readonly Dictionary<EUserRoles, EUserRights> _RoleRightsMapping = new Dictionary<EUserRoles, EUserRights> {
{EUserRoles.TR_USERROLE_ADMIN,
(EUserRights.EditAllProfiles|
EUserRights.UploadPhotos|
EUserRights.ViewOtherProfiles|
EUserRights.UseKeyboard|
EUserRights.AddSongToPlaylist|
EUserRights.ReorderPlaylists|
EUserRights.CreatePlaylists|
EUserRights.DeletePlaylists|
EUserRights.RemoveSongsFromPlaylists)},
{EUserRoles.TR_USERROLE_GUEST,
EUserRights.None},
{EUserRoles.TR_USERROLE_NORMAL,
(EUserRights.UploadPhotos|
EUserRights.ViewOtherProfiles)},
{EUserRoles.TR_USERROLE_KEYBOARDUSER,
EUserRights.UseKeyboard},
{EUserRoles.TR_USERROLE_ADDSONGSUSER,
EUserRights.AddSongToPlaylist},
{EUserRoles.TR_USERROLE_PLAYLISTEDITOR,
(EUserRights.AddSongToPlaylist|
EUserRights.ReorderPlaylists|
EUserRights.CreatePlaylists|
EUserRights.DeletePlaylists|
EUserRights.RemoveSongsFromPlaylists)},
{EUserRoles.TR_USERROLE_PROFILEEDITOR,
EUserRights.EditAllProfiles}
};
internal static EUserRights GetUserRightsFromUserRole(EUserRoles userRole)
{
return _RoleRightsMapping.Where(role => userRole.HasFlag(role.Key))
.Select(role => role.Value)
.Aggregate(EUserRights.None, (current, r) => current | r);
}
}
}