* Refactor and fix machine self-registration into db

+ Added change language API
+ Added Role to user info
This commit is contained in:
Lucio Maranta
2018-01-17 12:35:34 +01:00
parent fa485d902b
commit 53223b0bef
8 changed files with 123 additions and 19 deletions
+38 -2
View File
@@ -5,6 +5,9 @@ using System;
using Step.Model.DatabaseModels;
using System.Security.Claims;
using System.Linq;
using static Step.Utils.LanguageController;
using Step.Model.DTOModels;
using System.Globalization;
namespace Step.Controllers.WebApi
{
@@ -29,9 +32,42 @@ namespace Step.Controllers.WebApi
if (userId == null)
return Unauthorized();
using (UsersController user = new UsersController())
using (UsersController userController = new UsersController())
{
return Ok(user.GetUserInfo(Convert.ToInt32(userId.Value)));
return Ok(userController.GetUserInfo(Convert.ToInt32(userId.Value)));
}
}
[Route("language"), HttpPut]
[WebApiAuthorize(FunctionAccess = "userData", Action = ACTIONS.READ)]
public IHttpActionResult PutUserLanguage([FromBody] dynamic user)
{
// If no body return 400
if (user == null)
return BadRequest();
// Validate user id
var identity = User.Identity as ClaimsIdentity;
var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).SingleOrDefault();
if (userId == null)
return Unauthorized();
// Parse body data and validate language
var newLanguage = (string)user.language;
if (newLanguage == null || !IsValidLanguage(newLanguage))
return BadRequest();
if (!LanguageIsAvailable(newLanguage))
return NotFound();
using (UsersController userController = new UsersController())
{
userController.ChangeUserLanguage(Convert.ToInt32(userId.Value), CultureInfo.CreateSpecificCulture(newLanguage));
return Ok();
}
}
}