Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/03/18 15:06:21 (6 years ago)
Author:
jzenisek
Message:

#2839:

  • adapted job execution implementation at ProjectJobsView
  • prohibited resource checking for non-admins
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/HeuristicLab.Services.Hive/3.3/HiveService.cs

    r16208 r16209  
    483483          }
    484484
    485 
    486485          jobDto.CopyToEntity(job);
    487486
     
    523522
    524523      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client);
    525       bool isAdministrator = RoleVerifier.IsInRole(HiveRoles.Administrator);
    526       var currentUserId = UserManager.CurrentUserId;
     524      // check if user is an admin, or granted to administer a job-parenting project, or job owner
     525      AuthorizationManager.AuthorizeForJob(jobId, DT.Permission.Full);
    527526
    528527      var pm = PersistenceManager;
    529528      using (new PerformanceLogger("UpdateJobState")) {
    530         var jobDao = pm.JobDao;
    531         var projectDao = pm.ProjectDao;
     529        var jobDao = pm.JobDao;       
    532530        pm.UseTransaction(() => {
    533531          var job = jobDao.GetById(jobId);
    534           if (job != null) {
    535 
    536             var administrationGrantedProjects = projectDao
    537               .GetAdministrationGrantedProjectsForUser(currentUserId)
    538               .ToList();
    539 
    540             // check if user is an admin, or granted to administer a job-parenting project,...
    541             if (!isAdministrator && !administrationGrantedProjects.Contains(job.Project))
    542               AuthorizationManager.AuthorizeForJob(jobId, DT.Permission.Full); // ... or job owner
     532          if (job != null) {           
    543533
    544534            // note: allow solely state changes from "Online" to "StatisticsPending" = deletion request by user for HiveStatisticGenerator           
     
    563553
    564554      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client);
    565       bool isAdministrator = RoleVerifier.IsInRole(HiveRoles.Administrator);
    566       var currentUserId = UserManager.CurrentUserId;
     555      // check if user is an admin, or granted to administer a job-parenting project, or job owner
     556      foreach (var jobId in jobIds)
     557          AuthorizationManager.AuthorizeForJob(jobId, DT.Permission.Full);
    567558
    568559      var pm = PersistenceManager;
     
    571562        var projectDao = pm.ProjectDao;
    572563        pm.UseTransaction(() => {
    573           var administrationGrantedProjects = projectDao
    574             .GetAdministrationGrantedProjectsForUser(currentUserId)
    575             .ToList();
    576 
    577564          foreach (var jobId in jobIds) {
    578565            var job = jobDao.GetById(jobId);
    579566            if (job != null) {
    580 
    581               // check if user is an admin, or granted to administer a job-parenting project,...
    582               if (!isAdministrator && !administrationGrantedProjects.Contains(job.Project))
    583                 AuthorizationManager.AuthorizeForJob(jobId, DT.Permission.Full); // ... or job owner
    584567
    585568              // note: allow solely state changes from "Online" to "StatisticsPending" = deletion request by user for HiveStatisticGenerator
Note: See TracChangeset for help on using the changeset viewer.