diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-12-27 15:14:10 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-12-27 15:14:10 +0200 |
| commit | 9e42e1c87f3a206f0babc74760ac9a02d8d328f4 (patch) | |
| tree | be3be4cf23f524f430146af472883f63dd8bdfb7 /Software/Visual_Studio/Web/Tango.MachineService/Controllers/MachineStudioController.cs | |
| parent | 894d05d59c0e1612903f1adbf908914f2df67ccc (diff) | |
| download | Tango-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.cs | 32 |
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); } |
