aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-12-27 15:14:10 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-12-27 15:14:10 +0200
commit9e42e1c87f3a206f0babc74760ac9a02d8d328f4 (patch)
treebe3be4cf23f524f430146af472883f63dd8bdfb7 /Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs
parent894d05d59c0e1612903f1adbf908914f2df67ccc (diff)
downloadTango-9e42e1c87f3a206f0babc74760ac9a02d8d328f4.tar.gz
Tango-9e42e1c87f3a206f0babc74760ac9a02d8d328f4.zip
Implemented Deployment Slots!
Implemented Environment AD Groups. Implemented Machine Studio environment selection.
Diffstat (limited to 'Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs')
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs32
1 files changed, 29 insertions, 3 deletions
diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs
index d21a23ca1..4aff8fd39 100644
--- a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs
+++ b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs
@@ -19,6 +19,7 @@ using Tango.Web.Controllers;
using Tango.Web.Helpers;
using Tango.Web.Storage;
using Tango.Web.Authentication;
+using Tango.Web.ActiveDirectory;
namespace Tango.MachineService.Controllers
{
@@ -26,6 +27,7 @@ namespace Tango.MachineService.Controllers
{
private static TokensManager _tokens_manager;
private static List<MachineStudioPendingUpload> _pendingUploads;
+ private ActiveDirectoryManager _ad_manager;
static MachineStudioController()
{
@@ -33,6 +35,11 @@ namespace Tango.MachineService.Controllers
_pendingUploads = new List<MachineStudioPendingUpload>();
}
+ public MachineStudioController() : base()
+ {
+ _ad_manager = new ActiveDirectoryManager();
+ }
+
#region Update
[HttpPost]
@@ -189,7 +196,12 @@ namespace Tango.MachineService.Controllers
[HttpPost]
public LoginResponse Login(LoginRequest request)
{
- AuthenticationResult authResult = AzureDirectoryHelper.AuthenticateUser(request.Email, request.Password);
+ var authResult =_ad_manager.ValidateUserCredentials(request.Email, request.Password);
+
+ if (!_ad_manager.CanUserAccessCurrentEnvironment(request.Email))
+ {
+ throw new AuthenticationException($"You do not have permissions to access the {MachineServiceConfig.DEPLOYMENT_SLOT.ToDescription()} environment.");
+ }
using (ObservablesContext db = ObservablesContextHelper.CreateContext())
{
@@ -217,11 +229,25 @@ namespace Tango.MachineService.Controllers
FullName = authResult.UserInfo.GivenName + " " + authResult.UserInfo.FamilyName,
Email = request.Email,
};
- new_user.Roles.Add(db.Roles.Single(x => (Roles)x.Code == Roles.User));
- new_user.Roles.Add(db.Roles.Single(x => (Roles)x.Code == Roles.MachineStudioUser));
+
+ db.UsersRoles.Add(new UsersRole()
+ {
+ User = new_user,
+ Role = db.Roles.Single(x => (Roles)x.Code == Roles.User),
+ });
+
+ db.UsersRoles.Add(new UsersRole()
+ {
+ User = new_user,
+ Role = db.Roles.Single(x => (Roles)x.Code == Roles.MachineStudioUser),
+ });
+
+ new_user.LastLogin = DateTime.UtcNow;
+ db.Users.Add(new_user);
}
else
{
+ user.LastLogin = DateTime.UtcNow;
user.Password = g.Encrypt(request.Password);
}