Added session first implementation:
+ Added session in the database and added session controller + Added session in authorize attribute/Login + Added Logout function * Refactor database models
This commit is contained in:
+2
-2
@@ -6,11 +6,11 @@ using Step.Model.DTOModels;
|
||||
|
||||
namespace Step.Database.Controllers
|
||||
{
|
||||
public class FunctionAccessController : IDisposable
|
||||
public class FunctionsAccessController : IDisposable
|
||||
{
|
||||
private DatabaseContext dbCtx;
|
||||
|
||||
public FunctionAccessController()
|
||||
public FunctionsAccessController()
|
||||
{
|
||||
// Initialize database context
|
||||
dbCtx = new DatabaseContext();
|
||||
+2
-2
@@ -5,11 +5,11 @@ using static Step.Config.ServerConfig;
|
||||
|
||||
namespace Step.Database.Controllers
|
||||
{
|
||||
public class MachineController : IDisposable
|
||||
public class MachinesController : IDisposable
|
||||
{
|
||||
private DatabaseContext dbCtx;
|
||||
|
||||
public MachineController()
|
||||
public MachinesController()
|
||||
{
|
||||
// Initialize database context
|
||||
dbCtx = new DatabaseContext();
|
||||
@@ -24,7 +24,7 @@ namespace Step.Database.Controllers
|
||||
dbCtx.Dispose();
|
||||
}
|
||||
|
||||
public MachinesUsersModel FindByUserId(int machineId, int userId)
|
||||
public MachineUserModel FindByUserId(int machineId, int userId)
|
||||
{
|
||||
return dbCtx
|
||||
.MachinesUsers
|
||||
@@ -34,9 +34,9 @@ namespace Step.Database.Controllers
|
||||
|
||||
}
|
||||
|
||||
public MachinesUsersModel Create(int machineId, int userId, int roleId)
|
||||
public MachineUserModel Create(int machineId, int userId, int roleId)
|
||||
{
|
||||
MachinesUsersModel machine = new MachinesUsersModel() { MachineId = machineId, UserId = userId, RoleId = roleId };
|
||||
MachineUserModel machine = new MachineUserModel() { MachineId = machineId, UserId = userId, RoleId = roleId };
|
||||
dbCtx.MachinesUsers.Add(
|
||||
machine
|
||||
);
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
using Step.Model.DatabaseModels;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Step.Database.Controllers
|
||||
{
|
||||
public class SessionsController : IDisposable
|
||||
{
|
||||
private DatabaseContext dbCtx;
|
||||
|
||||
public SessionsController()
|
||||
{
|
||||
// Initialize database context
|
||||
dbCtx = new DatabaseContext();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
// Clear database context
|
||||
dbCtx.Dispose();
|
||||
}
|
||||
|
||||
public SessionModel FindSessionByToken(string token)
|
||||
{
|
||||
return dbCtx
|
||||
.Sessions
|
||||
.Where(x => x.Token == token) // Find session by token
|
||||
.SingleOrDefault();
|
||||
}
|
||||
|
||||
public void DeleteUserSessions(int machineUserId)
|
||||
{
|
||||
dbCtx
|
||||
.Sessions
|
||||
.RemoveRange( // Delete rows
|
||||
dbCtx
|
||||
.Sessions
|
||||
.Where(x => x.MachineUserId == machineUserId) // Find all the session with matching machineUserId
|
||||
);
|
||||
// Commit changes
|
||||
dbCtx.SaveChanges();
|
||||
}
|
||||
|
||||
public void DeleteSessionsByUserAndMachineId(int machineId, int userId)
|
||||
{
|
||||
MachineUserModel machineUser = null;
|
||||
using (MachinesUsersController machinesUsersController = new MachinesUsersController())
|
||||
{
|
||||
// Find machine_user id
|
||||
machineUser = machinesUsersController.FindByUserId(machineId, userId);
|
||||
}
|
||||
|
||||
DeleteUserSessions(machineUser.MachineUserId);
|
||||
}
|
||||
|
||||
public void Create(int machineUserId, string token)
|
||||
{
|
||||
// Create session model
|
||||
SessionModel session = new SessionModel()
|
||||
{
|
||||
MachineUserId = machineUserId,
|
||||
Token = token
|
||||
};
|
||||
// Add to database
|
||||
dbCtx.Sessions.Add(session);
|
||||
// Commit changes
|
||||
dbCtx.SaveChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -117,12 +117,12 @@ namespace Step.Database.Controllers
|
||||
dbCtx.SaveChanges();
|
||||
}
|
||||
|
||||
using (MachinesUsersController machineUserController = new MachinesUsersController())
|
||||
using (MachinesUsersController machinesUsersController = new MachinesUsersController())
|
||||
{
|
||||
MachinesUsersModel machineUser = machineUserController.FindByUserId(machineId, user.UserId);
|
||||
MachineUserModel machineUser = machinesUsersController.FindByUserId(machineId, user.UserId);
|
||||
|
||||
if (machineUser == null)
|
||||
machineUserController.Create(machineId, user.UserId, 1);
|
||||
machinesUsersController.Create(machineId, user.UserId, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user