Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/29/16 17:02:16 (9 years ago)
Author:
jlodewyc
Message:

#2582 Overhaul Login service, done

Location:
branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/HomeController.cs

    r13733 r13739  
    55using Microsoft.AspNet.Mvc;
    66using System.ServiceModel.Security;
     7using Microsoft.AspNet.Http;
     8using System;
     9using HeuristicLab.Clients.Hive.WebJobManager.ViewModels;
    710
    811namespace HeuristicLab.Clients.Hive.WebJobManager.Controllers
     
    1316    public class HomeController : Controller
    1417    {
    15         private LoginViewModelService loginViewModelService;
     18        private WebLoginService weblog;
    1619        private HiveServiceClient client;
    17         public HomeController(ILoginViewModelService loginViewModelService)
     20        public HomeController()
    1821        {
    19             this.loginViewModelService = (LoginViewModelService)loginViewModelService;
     22            this.weblog = WebLoginService.Instance;
    2023        }
    2124        #region Login
     
    2730        {
    2831            ViewBag.Title = "Login";
    29             loginViewModelService.clear();
    30             return View(loginViewModelService.GetLoginViewModel());
     32            var user = HttpContext.Session.GetString("UserId");
     33            if(user != null && user != "")
     34            {
     35                Guid t = Guid.Parse(user);
     36                weblog.logout(t);
     37                HttpContext.Session.Clear();
     38            }
     39            return View(new LoginViewModel());
     40
    3141        }
    3242        /// <summary>
     
    4050            if (!string.IsNullOrEmpty(loginName) && !string.IsNullOrEmpty(password))
    4151            {
    42                 var model = loginViewModelService.GetLoginViewModel();
    43                 HiveServiceLocatorWeb hiveServiceLocator = (HiveServiceLocatorWeb)HiveServiceLocatorWeb.Instance;
    44                 HeuristicLab.Clients.Common.Properties.Settings.Default.UserName = loginName;
    45                 HeuristicLab.Clients.Common.Properties.Settings.Default.Password = Common.CryptoService.EncryptString(password);
    46                 HeuristicLab.Clients.Common.Properties.Settings.Default.Save();
     52                var passE = Common.CryptoService.EncryptString(password);
     53                var model = new LoginViewModel(loginName, passE);
     54                HiveServiceLocatorWeb hiveServiceLocator = new HiveServiceLocatorWeb();
     55                Common.Properties.Settings.Default.UserName = loginName;
     56                Common.Properties.Settings.Default.Password = passE;
     57                Common.Properties.Settings.Default.Save();
    4758                hiveServiceLocator.Username = loginName;
    4859                hiveServiceLocator.Password = password;
     60                hiveServiceLocator.UserId = model.userId;
    4961
    5062                client = hiveServiceLocator.getHiveServiceClient();
     
    5264                    var test = client.GetJobs();//Throws messageSecurityException if login failss
    5365                    ViewBag.Title = "Login succesful";
    54                    
     66                    weblog.newLogin(model, hiveServiceLocator);
     67                    HttpContext.Session.SetString("UserId", model.userId.ToString());
    5568                    return RedirectToAction("Index","Job");
    5669                }
     
    5871                {
    5972                    ViewBag.Title = "Login";
     73                    model = new LoginViewModel();
    6074                    model.errorMessage = "Wrong login, try again";
    6175                    return View("Index", model);
     
    6680            {
    6781                ViewBag.Title = "Login";
    68                 var model = loginViewModelService.GetLoginViewModel();
     82                var model = new LoginViewModel();
    6983                model.errorMessage = "You should fill in both fields";
    7084                return View("Index", model);
  • branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/JobController.cs

    r13735 r13739  
    2323    public class JobController : Controller
    2424    {
    25         private HiveServiceClient client;
     25        private WebLoginService weblog;
     26
     27        private HiveServiceLocatorWeb serviceLocator;
     28        private HiveServiceClient serviceClient;
     29        private HiveClientWeb clientWeb;
     30        private Guid userId;
     31
    2632        private JobViewModel vm;
    2733        private IHostingEnvironment _environment;
    2834
     35
     36
    2937        public JobController(IHostingEnvironment env)
    3038        {
    31             HiveServiceLocatorWeb hiveServiceLocator = (HiveServiceLocatorWeb)HiveServiceLocatorWeb.Instance;
    32             client = hiveServiceLocator.getHiveServiceClient();
     39            weblog = WebLoginService.Instance;
    3340            vm = new JobViewModel();
    34 
    35 
    3641            _environment = env;
    3742        }
     43
     44        /// <summary>
     45        /// initializes the connection for the right user. Not constructor because httpcontext is needed.
     46        /// </summary>
     47        private void init()
     48        {
     49            var u = HttpContext.Session.GetString("UserId");
     50            if (u == null || u == "" || Guid.Parse(u) == Guid.Empty)
     51            {
     52                userId = Guid.Empty;
     53                serviceLocator = new HiveServiceLocatorWeb();
     54                serviceClient = serviceLocator.getHiveServiceClient();
     55                clientWeb = new HiveClientWeb(serviceLocator, userId);
     56            }
     57            else
     58            {
     59                userId = Guid.Parse(u);
     60                serviceLocator = weblog.getServiceLocator(userId);
     61                serviceClient = serviceLocator.getHiveServiceClient();
     62                clientWeb = weblog.getClientWeb(userId);
     63            }
     64        }
     65
    3866        #region Jobs
    3967        /// <summary>
     
    4573            try
    4674            {
    47                 HiveClientWeb.Instance.Refresh();
    48 
    49                 vm.userJobs = HiveClientWeb.Instance.Jobs.ToList();
     75                init();
     76                clientWeb.Refresh();
     77                vm.userJobs = clientWeb.Jobs.ToList();
    5078            }
    5179            catch (Exception e)
     
    5381                if (e is MessageSecurityException || e is InvalidOperationException)
    5482                {
    55                     HiveServiceLocatorWeb.SetLoginErrorMessage();
    5683                    return RedirectToAction("Index", "Home");
    5784                }
    5885                throw;
    5986            }
     87            ViewBag.SessionId = HttpContext.Session.GetString("UserId");
    6088            ViewBag.Title = "Jobs";
    6189            return View(vm);
     
    6896        public IActionResult Selected(Guid id)
    6997        {
    70             if (((HiveServiceLocatorWeb)(HiveServiceLocatorWeb.Instance)).CheckLogin())
    71             {
    72                 HiveClientWeb.Instance.Refresh();
    73                
    74                 vm.userJobs = HiveClientWeb.Instance.Jobs.ToList();
    75                 foreach(var j in vm.userJobs)
    76                 {
    77                     if(j.Id == id)
     98            init();
     99            if (serviceLocator.CheckLogin())
     100            {
     101                clientWeb.Refresh();
     102
     103                vm.userJobs = clientWeb.Jobs.ToList();
     104                foreach (var j in vm.userJobs)
     105                {
     106                    if (j.Id == id)
    78107                    {
    79108                        vm.selectedJob = j;
    80109                    }
    81110                }
    82                 vm.selectedJob.RefreshAutomatically = true;
    83                  HiveClientWeb.LoadJob(vm.selectedJob);
    84                 FileOpeningService.Instance.NewModel();
    85                 FileOpeningService.Instance.Job = vm.selectedJob;
     111                //vm.selectedJob.RefreshAutomatically = true;
     112                clientWeb.LoadJob(vm.selectedJob);
     113                weblog.getFileOpener(userId).NewModel();
     114                weblog.getFileOpener(userId).Job = vm.selectedJob;
    86115                ViewBag.Title = vm.selectedJob.Job.Name + " - Jobs";
     116                ViewBag.SessionId = HttpContext.Session.GetString("UserId");
    87117                return View("Index", vm);
    88118            }
    89119            else
    90120            {
    91                 HiveServiceLocatorWeb.SetLoginErrorMessage();
    92121                return RedirectToAction("Index", "Home");
    93122            }
     
    100129        public IActionResult Delete(Guid id)
    101130        {
    102             if (((HiveServiceLocatorWeb)(HiveServiceLocatorWeb.Instance)).CheckLogin())
    103             {
    104 
    105                 vm.message = client.GetJob(id).Name + " deleted";
    106                 client.DeleteJob(id);
    107                 HiveClientWeb.Instance.Refresh();
    108 
    109                 vm.userJobs = HiveClientWeb.Instance.Jobs.ToList();
     131            init();
     132            if (serviceLocator.CheckLogin())
     133            {
     134
     135                vm.message = serviceClient.GetJob(id).Name + " deleted";
     136                serviceClient.DeleteJob(id);
     137                clientWeb.Refresh();
     138
     139                vm.userJobs = clientWeb.Jobs.ToList();
    110140                ViewBag.Title = "Jobs";
    111141                return View("Index", vm);
     
    113143            else
    114144            {
    115                 HiveServiceLocatorWeb.SetLoginErrorMessage();
    116145                return RedirectToAction("Index", "Home");
    117146            }
     
    126155        public IActionResult Uploads()
    127156        {
    128             if (((HiveServiceLocatorWeb)(HiveServiceLocatorWeb.Instance)).CheckLogin())
     157            init();
     158            if (serviceLocator.CheckLogin())
    129159            {
    130160                UploadedJobViewModel upper = new UploadedJobViewModel();
    131161                fillUploadsPaths(upper, -1);
    132                 ViewBag.Name = client.ClientCredentials.UserName.UserName;
     162                ViewBag.Name = serviceClient.ClientCredentials.UserName.UserName;
    133163                ViewBag.Title = "Uploaded files";
    134164                return View("Uploads", upper);
     
    136166            else
    137167            {
    138                 HiveServiceLocatorWeb.SetLoginErrorMessage();
    139168                return RedirectToAction("Index", "Home");
    140169            }
     
    147176        public IActionResult UploadDir(int index)
    148177        {
    149             if (((HiveServiceLocatorWeb)(HiveServiceLocatorWeb.Instance)).CheckLogin())
     178            init();
     179            if (serviceLocator.CheckLogin())
    150180            {
    151181                UploadedJobViewModel upper = new UploadedJobViewModel();
     
    157187            else
    158188            {
    159                 HiveServiceLocatorWeb.SetLoginErrorMessage();
    160189                return RedirectToAction("Index", "Home");
    161190            }
     
    167196        /// <param name="index">Index selected directory</param>
    168197        private void fillUploadsPaths(UploadedJobViewModel vm, int index)
    169            
    170198        {
    171199            var tempdex = index; //Fix when maps gets deleted
    172             var start = Path.Combine(_environment.WebRootPath, "uploads", client.ClientCredentials.UserName.UserName);
     200            var start = Path.Combine(_environment.WebRootPath, "uploads", serviceClient.ClientCredentials.UserName.UserName);
    173201            var dirs = Directory.GetDirectories(start);
    174202            foreach (string dir in dirs)
     
    205233        public IActionResult DeleteFile(int index, int filedex)
    206234        {
    207             if (((HiveServiceLocatorWeb)(HiveServiceLocatorWeb.Instance)).CheckLogin())
     235            init();
     236            if (serviceLocator.CheckLogin())
    208237            {
    209238                UploadedJobViewModel upper = new UploadedJobViewModel();
     
    221250            else
    222251            {
    223                 HiveServiceLocatorWeb.SetLoginErrorMessage();
    224252                return RedirectToAction("Index", "Home");
    225253            }
     
    233261        public IActionResult OpenFile(int index, int filedex)
    234262        {
    235             if (((HiveServiceLocatorWeb)(HiveServiceLocatorWeb.Instance)).CheckLogin())
     263            init();
     264            if (serviceLocator.CheckLogin())
    236265            {
    237266                UploadedJobViewModel upper = new UploadedJobViewModel();
    238267                fillUploadsPaths(upper, index);
    239268
    240                 FileOpeningService serve = FileOpeningService.Instance;
     269                var serve = weblog.getFileOpener(userId);
    241270                serve.NewModel();
    242271                serve.env = _environment;
     
    260289                ViewBag.JobsCount = serve.Job.Job.JobCount;
    261290                ViewBag.Title = serve.vm.SelectedTask.ItemTask.Name + " - Open file";
    262 
     291                ViewBag.SessionId = HttpContext.Session.GetString("UserId");
    263292                return View("OpenFile", serve.vm);
    264293            }
    265294            else
    266295            {
    267                 HiveServiceLocatorWeb.SetLoginErrorMessage();
    268296                return RedirectToAction("Index", "Home");
    269297            }
     
    275303        public IActionResult AddToHive()
    276304        {
    277             if (((HiveServiceLocatorWeb)(HiveServiceLocatorWeb.Instance)).CheckLogin())
    278             {
    279                     var job = FileOpeningService.Instance.AddCurrentModelToHive();
    280                     while (job.Progress.ProgressValue != 1)
    281                     { }
    282 
    283                     Thread.Sleep(1000);
    284                     job.Progress.Status = "Upload finished";
    285                     Thread.Sleep(2000);
    286                     return RedirectToAction("Index", "Job");
    287             }
    288             else
    289             {
    290                 HiveServiceLocatorWeb.SetLoginErrorMessage();
     305            init();
     306            if (serviceLocator.CheckLogin())
     307            {
     308                var job = weblog.getFileOpener(userId).AddCurrentModelToHive();
     309                while (job.Progress.ProgressValue != 1)
     310                { }
     311
     312                Thread.Sleep(1000);
     313                job.Progress.Status = "Upload finished";
     314                Thread.Sleep(2000);
     315                return RedirectToAction("Index", "Job");
     316            }
     317            else
     318            {
    291319                return RedirectToAction("Index", "Home");
    292320            }
     
    334362        public async Task<IActionResult> Uploader(ICollection<IFormFile> files, string directory)
    335363        {
    336 
     364            init();
    337365            UploadedJobViewModel upper = new UploadedJobViewModel();
    338             var uploads = Path.Combine(_environment.WebRootPath, "uploads", client.ClientCredentials.UserName.UserName,
     366            var uploads = Path.Combine(_environment.WebRootPath, "uploads", serviceClient.ClientCredentials.UserName.UserName,
    339367                directory);
    340368            Directory.CreateDirectory(uploads);
  • branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/ResourceController.cs

    r13733 r13739  
    11using HeuristicLab.Clients.Hive.WebJobManager.Services;
    22using Microsoft.AspNet.Hosting;
     3using Microsoft.AspNet.Http;
    34using Microsoft.AspNet.Mvc;
    45using System;
     
    1213    public class ResourceController : Controller
    1314    {
    14         private HiveServiceClient client;
     15        private WebLoginService weblog;
     16        private HiveServiceLocatorWeb serviceLocator;
     17        private HiveServiceClient serviceClient;
     18        private HiveClientWeb clientWeb;
     19        private Guid userId;
     20
    1521        private IHostingEnvironment _environment;
    1622
    1723        public ResourceController(IHostingEnvironment env)
    1824        {
    19             HiveServiceLocatorWeb hiveServiceLocator = (HiveServiceLocatorWeb)HiveServiceLocatorWeb.Instance;
    20             client = hiveServiceLocator.getHiveServiceClient();
     25            weblog = WebLoginService.Instance;
     26            var u = HttpContext.Session.GetString("UserId");
     27            if (u == null || u == "" || Guid.Parse(u) == Guid.Empty)
     28            {
     29                userId = Guid.Empty;
     30                serviceLocator = new HiveServiceLocatorWeb();
     31                serviceClient = serviceLocator.getHiveServiceClient();
     32                clientWeb = new HiveClientWeb(serviceLocator, userId);
     33            }
     34            else {
     35                userId = Guid.Parse(u);
     36
     37                serviceLocator = weblog.getServiceLocator(userId);
     38                serviceClient = serviceLocator.getHiveServiceClient();
     39                clientWeb = weblog.getClientWeb(userId);
     40            }
    2141
    2242            _environment = env;
     
    2444        public IActionResult Index()
    2545        {
    26             if (((HiveServiceLocatorWeb)(HiveServiceLocatorWeb.Instance)).CheckLogin())
     46            if (serviceLocator.CheckLogin())
    2747            {
    2848
     
    3252            else
    3353            {
    34                 HiveServiceLocatorWeb.SetLoginErrorMessage();
    3554                return RedirectToAction("Index", "Home");
    3655            }
  • branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/UserController.cs

    r13733 r13739  
    11using HeuristicLab.Clients.Hive.WebJobManager.Services;
    22using Microsoft.AspNet.Hosting;
     3using Microsoft.AspNet.Http;
    34using Microsoft.AspNet.Mvc;
    45using System;
     
    1213    public class UserController: Controller
    1314    {
    14         private HiveServiceClient client;
     15        private WebLoginService weblog;
     16        private HiveServiceLocatorWeb serviceLocator;
     17        private HiveServiceClient serviceClient;
     18        private HiveClientWeb clientWeb;
     19        private Guid userId;
     20
    1521        private IHostingEnvironment _environment;
    1622
    1723        public UserController(IHostingEnvironment env)
    1824        {
    19             HiveServiceLocatorWeb hiveServiceLocator = (HiveServiceLocatorWeb)HiveServiceLocatorWeb.Instance;
    20             client = hiveServiceLocator.getHiveServiceClient();
     25            weblog = WebLoginService.Instance;
     26            var u = HttpContext.Session.GetString("UserId");
     27            if (u == null || u == "" || Guid.Parse(u) == Guid.Empty)
     28            {
     29                userId = Guid.Empty;
     30                serviceLocator = new HiveServiceLocatorWeb();
     31                serviceClient = serviceLocator.getHiveServiceClient();
     32                clientWeb = new HiveClientWeb(serviceLocator, userId);
     33            }
     34            else {
     35                userId = Guid.Parse(u);
     36
     37                serviceLocator = weblog.getServiceLocator(userId);
     38                serviceClient = serviceLocator.getHiveServiceClient();
     39                clientWeb = weblog.getClientWeb(userId);
     40            }
    2141
    2242            _environment = env;
     
    2444        public IActionResult Index()
    2545        {
    26             if (((HiveServiceLocatorWeb)(HiveServiceLocatorWeb.Instance)).CheckLogin())
     46            if (serviceLocator.CheckLogin())
    2747            {
    2848               
     
    3252            else
    3353            {
    34                 HiveServiceLocatorWeb.SetLoginErrorMessage();
    3554                return RedirectToAction("Index", "Home");
    3655            }
Note: See TracChangeset for help on using the changeset viewer.