Advanced User Management

This commit is contained in:
Nicola Carminati
2019-04-26 19:22:54 +02:00
parent 839fae6bd6
commit 796f0b32f3
12 changed files with 122 additions and 42 deletions
@@ -42,8 +42,8 @@ namespace Step.Database.Controllers
Name = f.Name,
Area = f.Area,
Enabled = f.Enabled,
CanRead = f.ReadLevelMin < roleLevel,
CanWrite = f.WriteLevelMin < roleLevel
CanRead = f.ReadLevelMin <= roleLevel,
CanWrite = f.WriteLevelMin <= roleLevel
})
.ToList();
}
@@ -76,7 +76,8 @@ namespace Step.Database.Controllers
return new DTORoleModel()
{
Id = role.RoleId,
Name = role.Name
Name = role.Name,
Level = role.Level
};
}
@@ -86,7 +87,7 @@ namespace Step.Database.Controllers
public bool UserIsCmsAdmin(int machineId, int userId)
{
MachineUserModel user = FindByUserId(machineId, userId);
if (user.Role.RoleId == (int)ROLE_IDS.CMS_SERVICE_ONLY)
if (user.Role.RoleId == (int)ROLE_IDS.CMS_SERVICE || user.Role.RoleId == (int)ROLE_IDS.CMS_UT)
return true;
return false;
@@ -108,12 +109,13 @@ namespace Step.Database.Controllers
public List<DTORoleModel> GetRolesList()
{
return dbCtx
.Roles
.Roles.Where(X => X.Level < MIN_CMS_ROLE)
.Select(x => new DTORoleModel()
{
Id = x.RoleId,
Name = x.Name
}).ToList();
})
.ToList();
}
public void UpdateUserRole(int machineId, int userId, int roleId)
+31 -12
View File
@@ -159,18 +159,27 @@ namespace Step.Database.Controllers
public List<DTOMessageUserModel> GetMessageUserList()
{
List<DTOMessageUserModel> userList = new List<DTOMessageUserModel>();
userList = dbCtx.Users.Select(x => new DTOMessageUserModel()
using (MachinesUsersController machineController = new MachinesUsersController())
{
Id = x.UserId,
FirstName = x.FirstName,
LastName = x.LastName,
Username = x.Username
})
.ToList();
return userList;
// Find user by Id with Role object included
var tmpUser = dbCtx
.Users
.Where(x => x.Deleted == false) // Get not deleted users
.Join(dbCtx.MachinesUsers,u=>u.UserId,m=>m.UserId, (u, m) => new { Users = u, MachinesUsers = m })
.Where(x => x.MachinesUsers.Role.Level < MIN_CMS_ROLE)
.ToList();
return tmpUser
.Select(x => new DTOMessageUserModel() // Return DTOUserModel
{
Id = x.Users.UserId,
FirstName = x.Users.FirstName,
LastName = x.Users.LastName,
Username = x.Users.Username
})
.ToList();
}
}
#region User Manager
@@ -179,7 +188,6 @@ namespace Step.Database.Controllers
{
using (MachinesUsersController machineController = new MachinesUsersController())
{
List<DTORoleModel> roles = machineController.GetRolesList();
// Find user by Id with Role object included
var tmpUser = dbCtx
@@ -196,7 +204,8 @@ namespace Step.Database.Controllers
LastName = x.LastName,
Language = x.Language,
Role = machineController.GetUserRoleData(MachineConfig.MachineId, x.UserId)
})
}).Where(
x=> x.Role.Level < MIN_CMS_ROLE)
.ToList();
}
}
@@ -229,6 +238,16 @@ namespace Step.Database.Controllers
return GetUserInfo(userId);
}
public Boolean isCMSRole(int roleId)
{
var tmpRole = dbCtx.Roles.ToList().First(X => X.RoleId == roleId);
if (tmpRole == null)
return true;
else
return tmpRole.Level >= MIN_CMS_ROLE;
}
public DTOUserModel UpdateUserRole(int userId, int roleId)
{
using (MachinesUsersController machineController = new MachinesUsersController())