permission stuff started
This commit is contained in:
parent
5977bcd2b6
commit
358d8a86a1
64
NadekoBot/Classes/PermissionsHandler.cs
Normal file
64
NadekoBot/Classes/PermissionsHandler.cs
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
using Discord;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Concurrent;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace NadekoBot.Classes {
|
||||||
|
public class PermissionsHandler {
|
||||||
|
public static ConcurrentDictionary<Server, ServerPermissions> _permissionsDict =
|
||||||
|
new ConcurrentDictionary<Server, ServerPermissions>();
|
||||||
|
|
||||||
|
public static void WriteToJson() {
|
||||||
|
Directory.CreateDirectory("data/permissions/");
|
||||||
|
foreach (var kvp in _permissionsDict) {
|
||||||
|
string pathToFile = $"data/permissions/{kvp.Key.Id}.json";
|
||||||
|
File.WriteAllText(pathToFile, Newtonsoft.Json.JsonConvert.SerializeObject(_permissionsDict[kvp.Key],Newtonsoft.Json.Formatting.Indented));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Holds a permission list
|
||||||
|
/// </summary>
|
||||||
|
public class Permissions {
|
||||||
|
/// <summary>
|
||||||
|
/// Module name with allowed/disallowed
|
||||||
|
/// </summary>
|
||||||
|
public Dictionary<string, bool> modules { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// Command name with allowed/disallowed
|
||||||
|
/// </summary>
|
||||||
|
public Dictionary<string, bool> commands { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class PermissionsContainer {
|
||||||
|
/// <summary>
|
||||||
|
/// The id of the thing (user/server/channel)
|
||||||
|
/// </summary>
|
||||||
|
public string Id { get; set; } //a string because of the role name.
|
||||||
|
/// <summary>
|
||||||
|
/// Permission object bound to the id of something/role name
|
||||||
|
/// </summary>
|
||||||
|
public Permissions Permissions { get; set; }
|
||||||
|
|
||||||
|
public PermissionsContainer() { }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ServerPermissions : PermissionsContainer {
|
||||||
|
/// <summary>
|
||||||
|
/// The guy who can edit the permissions
|
||||||
|
/// </summary>
|
||||||
|
public string PermissionsControllerRoleName { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// Does it print the error when a restriction occurs
|
||||||
|
/// </summary>
|
||||||
|
public bool Verbose { get; set; }
|
||||||
|
|
||||||
|
public List<PermissionsContainer> UserPermissions { get; set; }
|
||||||
|
public List<PermissionsContainer> ChannelPermissions { get; set; }
|
||||||
|
public List<PermissionsContainer> RolePermissions { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -134,6 +134,7 @@
|
|||||||
<Compile Include="Classes\Music\SoundCloud.cs" />
|
<Compile Include="Classes\Music\SoundCloud.cs" />
|
||||||
<Compile Include="Classes\PermissionCheckers\NSWFPermissionChecker.cs" />
|
<Compile Include="Classes\PermissionCheckers\NSWFPermissionChecker.cs" />
|
||||||
<Compile Include="Classes\PermissionCheckers\PermissionChecker.cs" />
|
<Compile Include="Classes\PermissionCheckers\PermissionChecker.cs" />
|
||||||
|
<Compile Include="Classes\PermissionsHandler.cs" />
|
||||||
<Compile Include="Classes\SearchHelper.cs" />
|
<Compile Include="Classes\SearchHelper.cs" />
|
||||||
<Compile Include="Classes\_DataModels\AnnouncementModel.cs" />
|
<Compile Include="Classes\_DataModels\AnnouncementModel.cs" />
|
||||||
<Compile Include="Classes\_DataModels\CommandModel.cs" />
|
<Compile Include="Classes\_DataModels\CommandModel.cs" />
|
||||||
|
Loading…
Reference in New Issue
Block a user