Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/12/16 17:09:12 (9 years ago)
Author:
jlodewyc
Message:

#2582 Security access implemented, directory renaming and choosing, adding more partials

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

Legend:

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

    r13841 r13847  
    3030        private Guid userId;
    3131
     32
    3233        private JobViewModel vm;
     34        private UploadedJobViewModel upper;
    3335        private IHostingEnvironment _environment;
    3436
     
    3840        {
    3941            weblog = WebLoginService.Instance;
    40             vm = new JobViewModel();
     42           
    4143            _environment = env;
    4244        }
     
    4850        {
    4951            var u = HttpContext.Session.GetString("UserId");
     52           
    5053            if (u == null || u == "" || Guid.Parse(u) == Guid.Empty)
    5154            {
     
    5558            {
    5659                userId = Guid.Parse(u);
     60                vm = new JobViewModel(weblog.getCurrentUser(userId));
     61                upper = new UploadedJobViewModel(weblog.getCurrentUser(userId));
     62
    5763                serviceLocator = weblog.getServiceLocator(userId);
    5864                serviceClient = serviceLocator.getHiveServiceClient();
    5965                clientWeb = weblog.getClientWeb(userId);
     66               
    6067                return serviceLocator.CheckLogin();
    6168            }
     
    149156            if (init())
    150157            {
    151                 UploadedJobViewModel upper = new UploadedJobViewModel();
    152158                fillUploadsPaths(upper, -1);
    153159                ViewBag.Name = serviceClient.ClientCredentials.UserName.UserName;
     
    172178            if (init())
    173179            {
    174                 UploadedJobViewModel upper = new UploadedJobViewModel();
    175180                fillUploadsPaths(upper, index);
    176181                if (index != -1)
     
    188193            }
    189194        }
     195        [HttpPost]
     196        public IActionResult changeDirName(string olddir, string dirname)
     197        {
     198            if (init())
     199            {
     200                fillUploadsPaths(upper, -1);
     201                var ind = upper.DisplayDatePaths.IndexOf(olddir);
     202                try {
     203               
     204               
     205                var start = Path.Combine(_environment.WebRootPath, "uploads", serviceClient.ClientCredentials.UserName.UserName, dirname);
     206                    if (Directory.Exists(start))
     207                    {
     208                        var files = Directory.GetFiles(upper.FullDatePaths[ind]);
     209                        foreach(var f in files) {
     210                            var target = start + "\\" + f.Split('\\').Last();
     211                            if (System.IO.File.Exists(target))
     212                                System.IO.File.Delete(target);
     213                            System.IO.File.Move(f, target);
     214                                }
     215                    }
     216                    else
     217                    {
     218                        Directory.Move(upper.FullDatePaths[ind], start);
     219                    }
     220               
     221                upper.clear();
     222                fillUploadsPaths(upper, -1);
     223                ind = upper.DisplayDatePaths.IndexOf(dirname);
     224                upper.clear();
     225                return RedirectToAction("UploadDir",new { index=ind});
     226                }catch(IOException e)
     227                {
     228                    upper.clear();
     229                    fillUploadsPaths(upper, ind);
     230                    upper.message = "Error in new directory name. Try again and don't use any special signs";
     231                    ViewBag.Title = "Error renaming - "+ upper.DisplayDatePaths[ind] + " - Uploads";
     232                    if (weblog.getFileOpener(userId).Job != null)
     233                        ViewBag.active = true;
     234                    return View("Uploads", upper);
     235                }
     236            }
     237            else
     238            {
     239                return RedirectToAction("Index", "Home");
     240            }
     241        }
    190242        /// <summary>
    191243        /// Loads all the paths from the selected uploads folder
     
    195247        private void fillUploadsPaths(UploadedJobViewModel vm, int index)
    196248        {
     249           
    197250            var tempdex = index; //Fix when maps gets deleted
    198251            var start = Path.Combine(_environment.WebRootPath, "uploads", serviceClient.ClientCredentials.UserName.UserName);
     252            try
     253            {
     254                Directory.GetDirectories(start);
     255            }
     256            catch(DirectoryNotFoundException e)
     257            {
     258                Directory.CreateDirectory(start);
     259            }
    199260            var dirs = Directory.GetDirectories(start);
    200261            foreach (string dir in dirs)
     
    234295            if (init())
    235296            {
    236                 UploadedJobViewModel upper = new UploadedJobViewModel();
    237297                fillUploadsPaths(upper, index);
    238298                System.IO.File.Delete(upper.FullFilesPaths[filedex]);
    239299                var message = upper.DisplayFilesPaths[filedex] + " has been deleted";
    240300
    241                 upper = new UploadedJobViewModel();
     301                upper = new UploadedJobViewModel(weblog.getCurrentUser(userId));
    242302                fillUploadsPaths(upper, index);
    243303                upper.message = message;
     
    264324            if (init())
    265325            {
    266                 UploadedJobViewModel upper = new UploadedJobViewModel();
    267326                fillUploadsPaths(upper, index);
    268327
     
    270329                serve.NewModel();
    271330                serve.env = _environment;
    272 
     331                serve.vm.directories = upper.DisplayDatePaths;
    273332                var ioptimizer = ContentManager.Load(upper.FullFilesPaths[filedex]);
    274333
     
    306365            {
    307366                var serve = weblog.getFileOpener(userId);
     367                fillUploadsPaths(upper, -1);
     368                serve.vm.directories = upper.DisplayDatePaths;
    308369                ViewBag.JobsCount = serve.Job.Job.JobCount;
    309370                ViewBag.Title = serve.vm.SelectedTask.ItemTask.Name + " - Uploads";
     
    339400        }
    340401        [HttpPost]
    341         public IActionResult saveToFile(string fname)
    342         {
    343             if (init())
    344             {
    345                 weblog.getFileOpener(userId).SaveToFile(fname);
    346                 return RedirectToAction("Uploads", "Job");
     402        public IActionResult saveToFile(string fname, string dname)
     403        {
     404            if (init())
     405            {
     406                weblog.getFileOpener(userId).SaveToFile(fname, dname);
     407                fillUploadsPaths(upper, -1);
     408                var ind = upper.DisplayDatePaths.IndexOf(dname);
     409                return RedirectToAction("UploadDir", new { index = ind});
    347410            }
    348411            else
     
    356419            if (init())
    357420            {
    358                 UploadedJobViewModel upper = new UploadedJobViewModel();
    359421                fillUploadsPaths(upper, index);
    360422
     
    385447            if (init())
    386448            {
    387                 UploadedJobViewModel upper = new UploadedJobViewModel();
    388449                var uploads = Path.Combine(_environment.WebRootPath, "uploads", serviceClient.ClientCredentials.UserName.UserName,
    389450                    directory);
  • branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/ResourceController.cs

    r13805 r13847  
    11using HeuristicLab.Clients.Access;
    22using HeuristicLab.Clients.Access.Administration;
     3using HeuristicLab.Clients.Hive.WebJobManager.Models;
    34using HeuristicLab.Clients.Hive.WebJobManager.Services;
    45using Microsoft.AspNet.Hosting;
     
    2425        private HiveAdminClientWeb adminClient;
    2526        private Guid userId;
     27        private HiveWebUser currentUser;
    2628
    2729        private IHostingEnvironment _environment;
     
    4951                adminClient = weblog.getAdminClient(userId);
    5052                accessClient = weblog.getAccessAdminClient(userId);
    51                 return serviceLocator.CheckLogin();
    52 
     53                currentUser = weblog.getCurrentUser(userId);
     54                if (currentUser.hasResourceAdminAccess())
     55                    return serviceLocator.CheckLogin();
     56                else
     57                    return false;
    5358            }
    5459        }
     
    6469                ViewBag.SessionId = HttpContext.Session.GetString("UserId");
    6570                ViewBag.Title = "Resources";
    66                 return View("Index");
    67             }
    68             else
    69             {
    70                 return RedirectToAction("Index", "Home");
     71                return View("Index", currentUser);
     72            }
     73            else
     74            {
     75                return RedirectToAction("Index", "Job");
    7176            }
    7277        }
     
    116121            else
    117122            {
    118                 return RedirectToAction("Index", "Home");
     123                return RedirectToAction("Index", "Job");
    119124            }
    120125        }
     
    164169            else
    165170            {
    166                 return RedirectToAction("Index", "Home");
     171                return RedirectToAction("Index", "Job");
    167172            }
    168173        }
     
    195200            else
    196201            {
    197                 return RedirectToAction("Index", "Home");
     202                return RedirectToAction("Index", "Job");
    198203            }
    199204        }
     
    237242            else
    238243            {
    239                 return RedirectToAction("Index", "Home");
     244                return RedirectToAction("Index", "Job");
    240245            }
    241246        }
  • branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Controllers/UserController.cs

    r13841 r13847  
    2424        private Guid userId;
    2525
     26        private UserViewModel vm;
    2627        private IHostingEnvironment _environment;
    2728
     
    4748                serviceLocator = weblog.getServiceLocator(userId);
    4849                accessClient = weblog.getAccessAdminClient(userId);
    49                 return serviceLocator.CheckLogin();
     50                vm = new UserViewModel(accessClient, weblog.getCurrentUser(userId));
     51                if (weblog.getCurrentUser(userId).HasUserAdminAccess())
     52                    return serviceLocator.CheckLogin();
     53                else
     54                    return false;
    5055                 
    5156            }
     
    6166            {
    6267                ViewBag.Title = "Users";
    63                 UserViewModel vm = new UserViewModel(accessClient).refreshAll() ;
     68                vm.refreshAll() ;
    6469                //Refreshall for users, groups and roles
    6570                ViewBag.SessionId = HttpContext.Session.GetString("UserId");
     
    6873            else
    6974            {
    70                 return RedirectToAction("Index", "Home");
     75                return RedirectToAction("Index", "Job");
    7176            }
    7277        }
     
    7883                Guid curr = Guid.Parse(id);
    7984
    80                 UserViewModel vm = new UserViewModel(accessClient).refreshAll();
     85                vm.refreshAll();
    8186                if (curr == Guid.Empty)
    8287                {//new user
     
    97102            else
    98103            {
    99                 return RedirectToAction("Index", "Home");
     104                return RedirectToAction("Index", "Job");
    100105            }
    101106        }
     
    162167            else
    163168            {
    164                 return RedirectToAction("Index", "Home");
     169                return RedirectToAction("Index", "Job");
    165170            }
    166171
     
    199204                Guid curr = Guid.Parse(id);
    200205
    201                 UserViewModel vm = new UserViewModel(accessClient).refreshAll();
     206                vm.refreshAll();
    202207               
    203208                    var us = vm.getUserById(curr);
     
    209214            else
    210215            {
    211                 return RedirectToAction("Index", "Home");
     216                return RedirectToAction("Index", "Job");
    212217            }
    213218        }
     
    222227            {
    223228                var uid = Guid.Parse(id);
    224                 UserViewModel vm = new UserViewModel(accessClient).refreshUsers();
     229                vm.refreshUsers();
    225230
    226231                if (uid == Guid.Empty)
     
    241246            else
    242247            {
    243                 return RedirectToAction("Index", "Home");
     248                return RedirectToAction("Index", "Job");
    244249            }
    245250
     
    256261            {
    257262                var uid = Guid.Parse(id);
    258                 UserViewModel vm = new UserViewModel(accessClient).refreshAll();
     263                vm.refreshAll();
    259264
    260265                var user = vm.getUserById(uid);
     
    266271            else
    267272            {
    268                 return RedirectToAction("Index", "Home");
     273                return RedirectToAction("Index", "Job");
    269274            }
    270275        }
     
    281286                var gid = Guid.Parse(group);
    282287                var mid = Guid.Parse(id);
    283                 UserViewModel vm = new UserViewModel(accessClient).refreshGroups().refreshUsers();
     288                vm.refreshGroups().refreshUsers();
    284289
    285290                var user = vm.getUserById(mid);
     
    291296            else
    292297            {
    293                 return RedirectToAction("Index", "Home");
     298                return RedirectToAction("Index", "Job");
    294299            }
    295300
     
    308313
    309314                ViewBag.Title = "Groups";
    310                 UserViewModel vm = new UserViewModel(accessClient).refreshGroups().refreshUsers();
     315                vm.refreshGroups().refreshUsers();
    311316                return View("Groups", vm);
    312317            }
    313318            else
    314319            {
    315                 return RedirectToAction("Index", "Home");
     320                return RedirectToAction("Index", "Job");
    316321            }
    317322        }
     
    327332                Guid curr = Guid.Parse(id);
    328333
    329                 UserViewModel vm = new UserViewModel(accessClient)
     334                vm
    330335                    .refreshGroups()
    331336                    .refreshUsers();
     
    345350            else
    346351            {
    347                 return RedirectToAction("Index", "Home");
     352                return RedirectToAction("Index", "Job");
    348353            }
    349354        }
     
    362367            {
    363368                var uid = Guid.Parse(u);
    364                 var vm = new UserViewModel(accessClient).refreshGroups().refreshUsers();
     369                vm.refreshGroups().refreshUsers();
    365370
    366371                Access.UserGroup group;
     
    403408            else
    404409            {
    405                 return RedirectToAction("Index", "Home");
     410                return RedirectToAction("Index", "Job");
    406411            }
    407412        }
     
    416421            {
    417422                var uid = Guid.Parse(id);
    418                 UserViewModel vm = new UserViewModel(accessClient).refreshGroups();
     423                vm.refreshGroups();
    419424
    420425                if (uid == Guid.Empty)
     
    434439            else
    435440            {
    436                 return RedirectToAction("Index", "Home");
     441                return RedirectToAction("Index", "Job");
    437442            }
    438443
     
    450455                var gid = Guid.Parse(g);
    451456                var mid = Guid.Parse(m);
    452                 UserViewModel vm = new UserViewModel(accessClient).refreshGroups().refreshUsers();
     457                vm.refreshGroups().refreshUsers();
    453458
    454459                if (gid == Guid.Empty || mid == Guid.Empty)
     
    473478            else
    474479            {
    475                 return RedirectToAction("Index", "Home");
     480                return RedirectToAction("Index", "Job");
    476481            }
    477482
     
    490495
    491496                ViewBag.Title = "Roles";
    492                 UserViewModel vm = new UserViewModel(accessClient).refreshRoles();
     497                vm.refreshRoles();
    493498
    494499                return View("Roles", vm);
     
    496501            else
    497502            {
    498                 return RedirectToAction("Index", "Home");
     503                return RedirectToAction("Index", "Job");
    499504            }
    500505        }
     
    509514            {
    510515
    511                 UserViewModel vm = new UserViewModel(accessClient).refreshRoles();
     516                vm.refreshRoles();
    512517                if (name == "" || name == null)
    513518                {//Add role
     
    526531            else
    527532            {
    528                 return RedirectToAction("Index", "Home");
     533                return RedirectToAction("Index", "Job");
    529534            }
    530535        }
     
    552557            else
    553558            {
    554                 return RedirectToAction("Index", "Home");
     559                return RedirectToAction("Index", "Job");
    555560            }
    556561        }
     
    569574            else
    570575            {
    571                 return RedirectToAction("Index", "Home");
     576                return RedirectToAction("Index", "Job");
    572577            }
    573578        }
     
    583588            {
    584589                var uid = Guid.Parse(id);
    585                 UserViewModel vm = new UserViewModel(accessClient).refreshAll();
     590                vm.refreshAll();
    586591
    587592                var user = vm.getUserById(uid);
     
    593598            else
    594599            {
    595                 return RedirectToAction("Index", "Home");
     600                return RedirectToAction("Index", "Job");
    596601            }
    597602        }
Note: See TracChangeset for help on using the changeset viewer.