Create User API
This commit is contained in:
@@ -64,17 +64,23 @@ namespace Step.Database.Controllers
|
||||
|
||||
public DTORoleModel GetUserRoleData(int machineId, int userId)
|
||||
{
|
||||
RoleModel role = dbCtx
|
||||
var machineUser = dbCtx
|
||||
.MachinesUsers
|
||||
.Include("Role")
|
||||
.Where(x => x.MachineId == machineId && x.UserId == userId) // Find by machine id and user id, joining with role
|
||||
.FirstOrDefault().Role;
|
||||
.FirstOrDefault();
|
||||
|
||||
return new DTORoleModel()
|
||||
if(machineUser != null)
|
||||
{
|
||||
Id = role.RoleId,
|
||||
Name = role.Name
|
||||
};
|
||||
RoleModel role = machineUser.Role;
|
||||
return new DTORoleModel()
|
||||
{
|
||||
Id = role.RoleId,
|
||||
Name = role.Name
|
||||
};
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -26,13 +26,20 @@ namespace Step.Database.Controllers
|
||||
dbCtx.Dispose();
|
||||
}
|
||||
|
||||
public void Create(string username, string password, string firstName, string lastName, CultureInfo language)
|
||||
public DTOUserModel Create(string username, string password, string firstName, string lastName, CultureInfo language)
|
||||
{
|
||||
UserModel user = CreateUserModel(username, password, firstName, lastName, language);
|
||||
// Add to database
|
||||
dbCtx.Users.Add(user);
|
||||
// Commit changes
|
||||
dbCtx.SaveChanges();
|
||||
|
||||
using(MachinesUsersController machController = new MachinesUsersController())
|
||||
{
|
||||
machController.Create(MachineConfig.MachineId, user.UserId, 3);
|
||||
}
|
||||
|
||||
return GetUserInfo(user.UserId);
|
||||
}
|
||||
|
||||
public static UserModel CreateUserModel(int id, string username, string password, string firstName, string lastName, CultureInfo language)
|
||||
@@ -59,12 +66,17 @@ namespace Step.Database.Controllers
|
||||
{
|
||||
// Find user by Id with Role object included
|
||||
UserModel userDatabaseModel = dbCtx.Users.Where(u => u.UserId == userId).FirstOrDefault();
|
||||
if (userDatabaseModel == null)
|
||||
return null;
|
||||
|
||||
DTORoleModel roleModel = null;
|
||||
|
||||
// Find user role through machineUser table
|
||||
using (MachinesUsersController machinesUsersControler = new MachinesUsersController())
|
||||
{
|
||||
roleModel = machinesUsersControler.GetUserRoleData(MachineConfig.MachineId, userId);
|
||||
if (roleModel == null)
|
||||
return null;
|
||||
}
|
||||
|
||||
return new DTOUserModel() // Return DTOUserModel
|
||||
|
||||
@@ -42,14 +42,6 @@ namespace Step.Controllers.WebApi
|
||||
return Ok();
|
||||
}
|
||||
|
||||
[Route("register"), HttpPost]
|
||||
public IHttpActionResult CreateUser(UserModel model)
|
||||
{
|
||||
UsersController users = new UsersController();
|
||||
users.Create(model.Username, model.Password, model.FirstName, model.LastName, model.Language);
|
||||
return Ok();
|
||||
}
|
||||
|
||||
[Route("info"), HttpGet]
|
||||
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.USER_FUNCTIONS, Action = ACTIONS.READ)]
|
||||
public IHttpActionResult UserInfo()
|
||||
@@ -148,6 +140,14 @@ namespace Step.Controllers.WebApi
|
||||
}
|
||||
}
|
||||
|
||||
[Route("manager/user"), HttpPost]
|
||||
public IHttpActionResult CreateUser(UserModel model)
|
||||
{
|
||||
UsersController users = new UsersController();
|
||||
DTOUserModel user = users.Create(model.Username, model.Password, model.FirstName, model.LastName, model.Language);
|
||||
return Ok(user);
|
||||
}
|
||||
|
||||
[Route("manager/user/{userId:int}"), HttpDelete]
|
||||
[WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.USER_FUNCTIONS, Action = ACTIONS.WRITE)]
|
||||
public IHttpActionResult DeleteUserData(int userId)
|
||||
|
||||
Reference in New Issue
Block a user