summaryrefslogtreecommitdiff
path: root/DSACore
diff options
context:
space:
mode:
authorTrueDoctor <d-kobert@web.de>2018-09-29 05:49:13 +0200
committerTrueDoctor <d-kobert@web.de>2018-09-29 05:49:13 +0200
commit04912687127303fd270b61f131cf68fd4aaae956 (patch)
treecc504d4d06e757c21f85197f49bc8bd1528f4bae /DSACore
parentedb346d1e6599dbe48ec257f3536f6021163673c (diff)
modified user group authenth
Diffstat (limited to 'DSACore')
-rw-r--r--DSACore/Hubs/ChatHub.cs14
-rw-r--r--DSACore/Models/User.cs13
2 files changed, 22 insertions, 5 deletions
diff --git a/DSACore/Hubs/ChatHub.cs b/DSACore/Hubs/ChatHub.cs
index c429d52..a8bf883 100644
--- a/DSACore/Hubs/ChatHub.cs
+++ b/DSACore/Hubs/ChatHub.cs
@@ -9,14 +9,15 @@ namespace DSACore.Hubs
{
public class ChatHub : Hub
{
+ private static Dictionary<string, User> UserGroup;
+
public async Task SendMessage(string user, string message)
{
- string group = "default";
var args = message.Split(' ', StringSplitOptions.RemoveEmptyEntries).ToList();
var ident = args.First().Replace("!", "");
if(args.Count>0){args.RemoveAt(0);}
- await SendToGroup(group, user, Commands.CommandHandler.ExecuteCommand(new Command{CharId = 0,CmdIdentifier = ident, CmdTexts = args, Name = user}));
+ await SendToGroup(UserGroup[Context.ConnectionId].Group, user, Commands.CommandHandler.ExecuteCommand(new Command{CharId = 0,CmdIdentifier = ident, CmdTexts = args, Name = user}));
}
private Task SendToGroup(string group, string user, string message)
@@ -27,23 +28,26 @@ namespace DSACore.Hubs
public async Task GetGroups()
{
await Clients.Caller.SendCoreAsync("ListGroups", new object[] { "TheCrew", "Testdata" });
+ throw new NotImplementedException("add database call to get groups");
}
public async Task Login(string group, string password)
{
if (password == "valid")
{
+ UserGroup.Add(Context.ConnectionId, new User{Group = group});
await Groups.AddToGroupAsync(Context.ConnectionId, group);
}
await SendToGroup(group, "", "Ein neuer Nutzer hat die Gruppe betreten");
}
- public async Task Disconnect(string group, string user)
+ public async Task Disconnect()
{
- await Groups.RemoveFromGroupAsync(Context.ConnectionId, group);
+ var user = UserGroup[Context.ConnectionId];
+ await Groups.RemoveFromGroupAsync(Context.ConnectionId, user.Group);
- await SendToGroup(group, user, "Connection lost");
+ await SendToGroup(user.Group, user.Name, "Connection lost");
}
}
diff --git a/DSACore/Models/User.cs b/DSACore/Models/User.cs
new file mode 100644
index 0000000..105e564
--- /dev/null
+++ b/DSACore/Models/User.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace DSACore.Models
+{
+ public class User
+ {
+ public string Name { get; set; }
+ public string Group { get; set; }
+ }
+}