sharp-chat/SharpChat.SQLite/SQLiteUserPermissionsConverter.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
4.9 KiB
C#

using SharpChat.Users;
namespace SharpChat.SQLite;
public static class SQLiteUserPermissionsConverter {
public static UserPermissions From(SQLiteUserPermissions sup) {
UserPermissions up = 0;
if(sup.HasFlag(SQLiteUserPermissions.SendMessage))
up |= UserPermissions.SendMessage;
if(sup.HasFlag(SQLiteUserPermissions.DeleteOwnMessage))
up |= UserPermissions.DeleteOwnMessage;
if(sup.HasFlag(SQLiteUserPermissions.DeleteAnyMessage))
up |= UserPermissions.DeleteAnyMessage;
if(sup.HasFlag(SQLiteUserPermissions.EditOwnMessage))
up |= UserPermissions.EditOwnMessage;
if(sup.HasFlag(SQLiteUserPermissions.EditAnyMessage))
up |= UserPermissions.EditAnyMessage;
if(sup.HasFlag(SQLiteUserPermissions.SendBroadcast))
up |= UserPermissions.SendBroadcast;
if(sup.HasFlag(SQLiteUserPermissions.ViewLogs))
up |= UserPermissions.ViewLogs;
if(sup.HasFlag(SQLiteUserPermissions.KickUser))
up |= UserPermissions.KickUser;
if(sup.HasFlag(SQLiteUserPermissions.BanUser))
up |= UserPermissions.BanUser;
if(sup.HasFlag(SQLiteUserPermissions.PardonUser))
up |= UserPermissions.PardonUser;
if(sup.HasFlag(SQLiteUserPermissions.PardonIPAddress))
up |= UserPermissions.PardonIPAddress;
if(sup.HasFlag(SQLiteUserPermissions.ViewIPAddress))
up |= UserPermissions.ViewIPAddress;
if(sup.HasFlag(SQLiteUserPermissions.ViewBanList))
up |= UserPermissions.ViewBanList;
if(sup.HasFlag(SQLiteUserPermissions.CreateChannel))
up |= UserPermissions.CreateChannel;
if(sup.HasFlag(SQLiteUserPermissions.SetChannelPermanent))
up |= UserPermissions.SetChannelPermanent;
if(sup.HasFlag(SQLiteUserPermissions.SetChannelPassword))
up |= UserPermissions.SetChannelPassword;
if(sup.HasFlag(SQLiteUserPermissions.SetChannelMinimumRank))
up |= UserPermissions.SetChannelMinimumRank;
if(sup.HasFlag(SQLiteUserPermissions.DeleteChannel))
up |= UserPermissions.DeleteChannel;
if(sup.HasFlag(SQLiteUserPermissions.JoinAnyChannel))
up |= UserPermissions.JoinAnyChannel;
if(sup.HasFlag(SQLiteUserPermissions.SetOwnNickname))
up |= UserPermissions.SetOwnNickname;
if(sup.HasFlag(SQLiteUserPermissions.SetOthersNickname))
up |= UserPermissions.SetOthersNickname;
return up;
}
public static SQLiteUserPermissions To(UserPermissions up) {
SQLiteUserPermissions sup = 0;
if(up.HasFlag(UserPermissions.SendMessage))
sup |= SQLiteUserPermissions.SendMessage;
if(up.HasFlag(UserPermissions.DeleteOwnMessage))
sup |= SQLiteUserPermissions.DeleteOwnMessage;
if(up.HasFlag(UserPermissions.DeleteAnyMessage))
sup |= SQLiteUserPermissions.DeleteAnyMessage;
if(up.HasFlag(UserPermissions.EditOwnMessage))
sup |= SQLiteUserPermissions.EditOwnMessage;
if(up.HasFlag(UserPermissions.EditAnyMessage))
sup |= SQLiteUserPermissions.EditAnyMessage;
if(up.HasFlag(UserPermissions.SendBroadcast))
sup |= SQLiteUserPermissions.SendBroadcast;
if(up.HasFlag(UserPermissions.ViewLogs))
sup |= SQLiteUserPermissions.ViewLogs;
if(up.HasFlag(UserPermissions.KickUser))
sup |= SQLiteUserPermissions.KickUser;
if(up.HasFlag(UserPermissions.BanUser))
sup |= SQLiteUserPermissions.BanUser;
if(up.HasFlag(UserPermissions.PardonUser))
sup |= SQLiteUserPermissions.PardonUser;
if(up.HasFlag(UserPermissions.PardonIPAddress))
sup |= SQLiteUserPermissions.PardonIPAddress;
if(up.HasFlag(UserPermissions.ViewIPAddress))
sup |= SQLiteUserPermissions.ViewIPAddress;
if(up.HasFlag(UserPermissions.ViewBanList))
sup |= SQLiteUserPermissions.ViewBanList;
if(up.HasFlag(UserPermissions.CreateChannel))
sup |= SQLiteUserPermissions.CreateChannel;
if(up.HasFlag(UserPermissions.SetChannelPermanent))
sup |= SQLiteUserPermissions.SetChannelPermanent;
if(up.HasFlag(UserPermissions.SetChannelPassword))
sup |= SQLiteUserPermissions.SetChannelPassword;
if(up.HasFlag(UserPermissions.SetChannelMinimumRank))
sup |= SQLiteUserPermissions.SetChannelMinimumRank;
if(up.HasFlag(UserPermissions.DeleteChannel))
sup |= SQLiteUserPermissions.DeleteChannel;
if(up.HasFlag(UserPermissions.JoinAnyChannel))
sup |= SQLiteUserPermissions.JoinAnyChannel;
if(up.HasFlag(UserPermissions.SetOwnNickname))
sup |= SQLiteUserPermissions.SetOwnNickname;
if(up.HasFlag(UserPermissions.SetOthersNickname))
sup |= SQLiteUserPermissions.SetOthersNickname;
return sup;
}
}