sharp-chat/SharpChat.MariaDB/MariaDBUserPermissionsConverter.cs
flashwave 5a7756894b
First bits of the Context overhaul.
Reintroduces separate contexts for users, channels, connections (now split into sessions and connections) and user-channel associations.
It builds which is as much assurance as I can give about the stability of this commit, but its also the bare minimum of what i like to commit sooooo
A lot of things still need to be broadcast through events throughout the application in order to keep states consistent but we'll cross that bridge when we get to it.
I really need to stop using that phrase thingy, I'm overusing it.
2025-05-03 02:49:51 +00:00

103 lines
5.1 KiB
C#

using SharpChat.Users;
namespace SharpChat.MariaDB;
public static class MariaDBUserPermissionsConverter {
public static UserPermissions From(MariaDBUserPermissions mup) {
UserPermissions perms = 0;
if(mup.HasFlag(MariaDBUserPermissions.KickUser))
perms |= UserPermissions.KickUser;
if(mup.HasFlag(MariaDBUserPermissions.BanUser))
perms |= UserPermissions.BanUser;
if(mup.HasFlag(MariaDBUserPermissions.Broadcast))
perms |= UserPermissions.SendBroadcast;
if(mup.HasFlag(MariaDBUserPermissions.SetOwnNickname))
perms |= UserPermissions.SetOwnNickname;
if(mup.HasFlag(MariaDBUserPermissions.SetOthersNickname))
perms |= UserPermissions.SetOthersNickname;
if(mup.HasFlag(MariaDBUserPermissions.CreateChannel))
perms |= UserPermissions.CreateChannel;
if(mup.HasFlag(MariaDBUserPermissions.DeleteChannel))
perms |= UserPermissions.DeleteChannel;
if(mup.HasFlag(MariaDBUserPermissions.SetChannelPermanent))
perms |= UserPermissions.SetChannelPermanent;
if(mup.HasFlag(MariaDBUserPermissions.SetChannelPassword))
perms |= UserPermissions.SetChannelPassword;
if(mup.HasFlag(MariaDBUserPermissions.SetChannelHierarchy))
perms |= UserPermissions.SetChannelMinimumRank;
if(mup.HasFlag(MariaDBUserPermissions.JoinAnyChannel))
perms |= UserPermissions.JoinAnyChannel;
if(mup.HasFlag(MariaDBUserPermissions.SendMessage))
perms |= UserPermissions.SendMessage;
if(mup.HasFlag(MariaDBUserPermissions.DeleteOwnMessage))
perms |= UserPermissions.DeleteOwnMessage;
if(mup.HasFlag(MariaDBUserPermissions.DeleteAnyMessage))
perms |= UserPermissions.DeleteAnyMessage;
if(mup.HasFlag(MariaDBUserPermissions.EditOwnMessage))
perms |= UserPermissions.EditOwnMessage;
if(mup.HasFlag(MariaDBUserPermissions.EditAnyMessage))
perms |= UserPermissions.EditAnyMessage;
if(mup.HasFlag(MariaDBUserPermissions.SeeIPAddress))
perms |= UserPermissions.ViewIPAddress;
if(mup.HasFlag(MariaDBUserPermissions.ViewLogs))
perms |= UserPermissions.ViewLogs;
if(mup.HasFlag(MariaDBUserPermissions.ViewBanList))
perms |= UserPermissions.ViewBanList;
if(mup.HasFlag(MariaDBUserPermissions.PardonUser))
perms |= UserPermissions.PardonUser;
if(mup.HasFlag(MariaDBUserPermissions.PardonIPAddress))
perms |= UserPermissions.PardonIPAddress;
return perms;
}
public static MariaDBUserPermissions To(UserPermissions up) {
MariaDBUserPermissions perms = 0;
if(up.HasFlag(UserPermissions.KickUser))
perms |= MariaDBUserPermissions.KickUser;
if(up.HasFlag(UserPermissions.BanUser))
perms |= MariaDBUserPermissions.BanUser;
if(up.HasFlag(UserPermissions.SendBroadcast))
perms |= MariaDBUserPermissions.Broadcast;
if(up.HasFlag(UserPermissions.SetOwnNickname))
perms |= MariaDBUserPermissions.SetOwnNickname;
if(up.HasFlag(UserPermissions.SetOthersNickname))
perms |= MariaDBUserPermissions.SetOthersNickname;
if(up.HasFlag(UserPermissions.CreateChannel))
perms |= MariaDBUserPermissions.CreateChannel;
if(up.HasFlag(UserPermissions.DeleteChannel))
perms |= MariaDBUserPermissions.DeleteChannel;
if(up.HasFlag(UserPermissions.SetChannelPermanent))
perms |= MariaDBUserPermissions.SetChannelPermanent;
if(up.HasFlag(UserPermissions.SetChannelPassword))
perms |= MariaDBUserPermissions.SetChannelPassword;
if(up.HasFlag(UserPermissions.SetChannelMinimumRank))
perms |= MariaDBUserPermissions.SetChannelHierarchy;
if(up.HasFlag(UserPermissions.JoinAnyChannel))
perms |= MariaDBUserPermissions.JoinAnyChannel;
if(up.HasFlag(UserPermissions.SendMessage))
perms |= MariaDBUserPermissions.SendMessage;
if(up.HasFlag(UserPermissions.DeleteOwnMessage))
perms |= MariaDBUserPermissions.DeleteOwnMessage;
if(up.HasFlag(UserPermissions.DeleteAnyMessage))
perms |= MariaDBUserPermissions.DeleteAnyMessage;
if(up.HasFlag(UserPermissions.EditOwnMessage))
perms |= MariaDBUserPermissions.EditOwnMessage;
if(up.HasFlag(UserPermissions.EditAnyMessage))
perms |= MariaDBUserPermissions.EditAnyMessage;
if(up.HasFlag(UserPermissions.ViewIPAddress))
perms |= MariaDBUserPermissions.SeeIPAddress;
if(up.HasFlag(UserPermissions.ViewLogs))
perms |= MariaDBUserPermissions.ViewLogs;
if(up.HasFlag(UserPermissions.ViewBanList))
perms |= MariaDBUserPermissions.ViewBanList;
if(up.HasFlag(UserPermissions.PardonUser))
perms |= MariaDBUserPermissions.PardonUser;
if(up.HasFlag(UserPermissions.PardonIPAddress))
perms |= MariaDBUserPermissions.PardonIPAddress;
return perms;
}
}