- Timestamp:
- 12/20/17 11:27:33 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/HiveService.cs
r15547 r15552 69 69 70 70 #region Task Methods 71 [Obsolete] 71 72 public Guid AddTask(DT.Task task, DT.TaskData taskData, IEnumerable<Guid> resourceIds) { 72 73 RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client); … … 353 354 var pm = PersistenceManager; 354 355 using (new PerformanceLogger("GetJobs")) { 356 // TODO-JAN: optimization potential - avoid using too many joins in linq 355 357 var jobDao = pm.JobDao; 356 358 var jobPermissionDao = pm.JobPermissionDao; … … 364 366 .Select(x => x.ToDto()) 365 367 .ToList(); 368 // calculate stats only for owned & permitted jobs; TODO: query only needed ones, not all 366 369 var statistics = taskDao.GetAll() 370 .Where(x => jobs.Select(y => y.Id).Contains(x.JobId)) 367 371 .GroupBy(x => x.JobId) 368 372 .Select(x => new { … … 393 397 } 394 398 399 [Obsolete] 395 400 public Guid AddJob(DT.Job jobDto) { 396 401 RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client); … … 515 520 var jobDao = pm.JobDao; 516 521 pm.UseTransaction(() => { 517 // child task will be deleted by db-trigger 522 // child tasks will be deleted by db-trigger 523 // entries in AssignedJobResource will be deleted by foreign key clause CASCADE ON DELETE 518 524 jobDao.Delete(jobId); 519 525 pm.SubmitChanges(); … … 728 734 public void DeleteProject(Guid projectId) { 729 735 RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator); 730 AuthorizationManager.AuthorizeForProjectAdministration(projectId);731 736 var pm = PersistenceManager; 732 737 using (new PerformanceLogger("DeleteProject")) { 733 738 var projectDao = pm.ProjectDao; 734 pm.UseTransaction(() => { 739 var assignedJobResourceDao = pm.AssignedJobResourceDao; 740 pm.UseTransaction(() => { 741 assignedJobResourceDao.DeleteByProjectId(projectId); 735 742 projectDao.Delete(projectId); 736 743 pm.SubmitChanges(); … … 748 755 } 749 756 757 // query granted projects for use (i.e. to calculate on) 750 758 public IEnumerable<DT.Project> GetProjects() { 751 759 RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client); … … 757 765 var currentUserId = UserManager.CurrentUserId; 758 766 return pm.UseTransaction(() => { 759 var projectPermissions = projectPermissionDao.GetAll(); 760 return projectDao.GetAll().ToList() 761 .Where(x => isAdministrator 762 || x.OwnerUserId == currentUserId 763 || UserManager.VerifyUser(currentUserId, projectPermissions 764 .Where(y => y.ProjectId == x.ProjectId) 765 .Select(z => z.GrantedUserId) 766 .ToList()) 767 ) 768 .Select(x => x.ToDto()) 769 .ToList(); 767 var userAndGroupIds = new List<Guid> { currentUserId }; 768 userAndGroupIds.AddRange(UserManager.GetUserGroupIdsOfUser(currentUserId)); 769 return projectDao.GetGrantedProjectsForUser(userAndGroupIds) 770 .Select(x => x.ToDto()); 771 //var projectPermissions = projectPermissionDao.GetAll(); 772 //return projectDao.GetAll().ToList() 773 // .Where(x => isAdministrator 774 // || x.OwnerUserId == currentUserId 775 // || UserManager.VerifyUser(currentUserId, projectPermissions 776 // .Where(y => y.ProjectId == x.ProjectId) 777 // .Select(z => z.GrantedUserId) 778 // .ToList()) 779 // ) 780 // .Select(x => x.ToDto()) 781 // .ToList(); 770 782 }); 771 783 } … … 816 828 var projectPermissionDao = pm.ProjectPermissionDao; 817 829 var projectDao = pm.ProjectDao; 830 var assignedJobResourceDao = pm.AssignedJobResourceDao; 818 831 pm.UseTransaction(() => { 819 832 if (cascading) { 820 833 var childProjectIds = projectDao.GetChildProjectIdsById(projectId); 821 834 projectPermissionDao.DeleteByProjectIdsAndGrantedUserIds(childProjectIds, grantedUserIds); 835 assignedJobResourceDao.DeleteByProjectIdsAndUserIds(childProjectIds, grantedUserIds); 822 836 } 823 837 projectPermissionDao.DeleteByProjectIdAndGrantedUserIds(projectId, grantedUserIds); 838 assignedJobResourceDao.DeleteByProjectIdAndUserIds(projectId, grantedUserIds); 824 839 pm.SubmitChanges(); 825 840 }); … … 829 844 public IEnumerable<DT.ProjectPermission> GetProjectPermissions(Guid projectId) { 830 845 RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client); 846 AuthorizationManager.AuthorizeForProjectAdministration(projectId); 831 847 var pm = PersistenceManager; 832 848 using (new PerformanceLogger("GetProjectPermissions")) { … … 880 896 using (new PerformanceLogger("UnassignProjectResources")) { 881 897 var assignedProjectResourceDao = pm.AssignedProjectResourceDao; 898 var assignedJobResourceDao = pm.AssignedJobResourceDao; 882 899 var projectDao = pm.ProjectDao; 883 900 pm.UseTransaction(() => { … … 885 902 var childProjectIds = projectDao.GetChildProjectIdsById(projectId); 886 903 assignedProjectResourceDao.DeleteByProjectIdsAndResourceIds(childProjectIds, resourceIds); 904 assignedJobResourceDao.DeleteByProjectIdsAndResourceIds(childProjectIds, resourceIds); 887 905 } 888 906 assignedProjectResourceDao.DeleteByProjectIdAndResourceIds(projectId, resourceIds); 889 pm.SubmitChanges(); 890 }); 891 } 892 } 893 894 public IEnumerable<AssignedProjectResource> GetAssignedResourcesForProject(Guid projectId) { 907 assignedJobResourceDao.DeleteByProjectIdAndResourceIds(projectId, resourceIds); 908 pm.SubmitChanges(); 909 }); 910 } 911 } 912 913 public IEnumerable<DT.AssignedProjectResource> GetAssignedResourcesForProject(Guid projectId) { 895 914 RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client); 896 915 var pm = PersistenceManager; … … 903 922 } 904 923 } 924 905 925 #endregion 906 926
Note: See TracChangeset
for help on using the changeset viewer.