- Timestamp:
- 06/20/11 17:04:35 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive/3.4/HiveService.cs
r6452 r6457 44 44 private IAuthorizationManager author { 45 45 get { return ServiceLocator.Instance.AuthorizationManager; } 46 } 46 } 47 47 private ITransactionManager trans { 48 48 get { return ServiceLocator.Instance.TransactionManager; } … … 212 212 public HiveExperiment GetHiveExperiment(Guid id) { 213 213 authen.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client); 214 return dao.GetHiveExperiments(x => 215 x.HiveExperimentId == id 216 && (x.OwnerUserId == author.UserId || x.HiveExperimentPermissions.Count(hep => hep.Permission != Permission.NotAllowed && hep.GrantedUserId == author.UserId) > 0) 217 ).FirstOrDefault(); 214 var hiveExperiment = dao.GetHiveExperiments(x => 215 x.HiveExperimentId == id 216 && (x.OwnerUserId == author.UserId || x.HiveExperimentPermissions.Count(hep => hep.Permission != Permission.NotAllowed && hep.GrantedUserId == author.UserId) > 0) 217 ).FirstOrDefault(); 218 if (hiveExperiment != null) hiveExperiment.Permission = dao.GetPermissionForExperiment(hiveExperiment.Id, author.UserId); 219 return hiveExperiment; 218 220 } 219 221 220 222 public IEnumerable<HiveExperiment> GetHiveExperiments() { 221 223 authen.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client); 222 return dao.GetHiveExperiments(x => x.OwnerUserId == author.UserId || x.HiveExperimentPermissions.Count(hep => hep.Permission != Permission.NotAllowed && hep.GrantedUserId == author.UserId) > 0); 224 var hiveExperiments = dao.GetHiveExperiments(x => x.OwnerUserId == author.UserId || x.HiveExperimentPermissions.Count(hep => hep.Permission != Permission.NotAllowed && hep.GrantedUserId == author.UserId) > 0); 225 foreach (var he in hiveExperiments) 226 he.Permission = dao.GetPermissionForExperiment(he.Id, author.UserId); 227 return hiveExperiments; 223 228 } 224 229 225 230 public IEnumerable<HiveExperiment> GetAllHiveExperiments() { 226 231 authen.AuthenticateForAnyRole(HiveRoles.Administrator); 227 return dao.GetHiveExperiments(x => true); 232 var hiveExperiments = dao.GetHiveExperiments(x => true); 233 foreach (var he in hiveExperiments) 234 he.Permission = dao.GetPermissionForExperiment(he.Id, author.UserId); 235 return hiveExperiments; 228 236 } 229 237 … … 249 257 HiveExperiment he = dao.GetHiveExperiment(hiveExperimentId); 250 258 dao.DeleteHiveExperiment(hiveExperimentId); // child jobs will be deleted by db-trigger 259 }); 260 } 261 #endregion 262 263 #region HiveExperimentPermission Methods 264 public void GrantPermission(Guid hiveExperimentId, Guid grantedUserId, Permission permission) { 265 authen.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client); 266 trans.UseTransaction(() => { 267 HiveExperiment he = dao.GetHiveExperiment(hiveExperimentId); 268 if (he == null) throw new FaultException<FaultReason>(new FaultReason("Could not find hiveExperiment with id " + hiveExperimentId)); 269 Permission perm = dao.GetPermissionForExperiment(he.Id, author.UserId); 270 if (perm != Permission.Full) throw new FaultException<FaultReason>(new FaultReason("Not allowed to grant permissions for this experiment")); 271 dao.SetHiveExperimentPermission(hiveExperimentId, author.UserId, grantedUserId, permission); 272 }); 273 } 274 275 public void RevokePermission(Guid hiveExperimentId, Guid grantedUserId) { 276 authen.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client); 277 trans.UseTransaction(() => { 278 HiveExperiment he = dao.GetHiveExperiment(hiveExperimentId); 279 if (he == null) throw new FaultException<FaultReason>(new FaultReason("Could not find hiveExperiment with id " + hiveExperimentId)); 280 Permission perm = dao.GetPermissionForExperiment(he.Id, author.UserId); 281 if (perm != Permission.Full) throw new FaultException<FaultReason>(new FaultReason("Not allowed to grant permissions for this experiment")); 282 dao.SetHiveExperimentPermission(hiveExperimentId, author.UserId, grantedUserId, Permission.NotAllowed); 251 283 }); 252 284 } … … 461 493 #endregion 462 494 495 #region Downtime Methods 496 public Guid AddDowntime(Downtime downtime) { 497 authen.AuthenticateForAnyRole(HiveRoles.Administrator); 498 return trans.UseTransaction(() => dao.AddDowntime(downtime)); 499 } 500 501 public void DeleteDowntime(Guid downtimeId) { 502 authen.AuthenticateForAnyRole(HiveRoles.Administrator); 503 trans.UseTransaction(() => { 504 dao.DeleteDowntime(downtimeId); 505 }); 506 } 507 508 public void UpdateDowntime(Downtime downtime) { 509 authen.AuthenticateForAnyRole(HiveRoles.Administrator); 510 trans.UseTransaction(() => { 511 dao.UpdateDowntime(downtime); 512 }); 513 } 514 515 public IEnumerable<Downtime> GetDowntimesForResource(Guid resourceId) { 516 authen.AuthenticateForAnyRole(HiveRoles.Administrator); 517 return trans.UseTransaction(() => dao.GetDowntimes(x => x.ResourceId == resourceId)); 518 } 519 #endregion 520 463 521 #region Helper Methods 464 522 private IEnumerable<Job> GetChildJobs(Guid? parentJobId, bool recursive, bool includeParent) { … … 477 535 } 478 536 #endregion 479 480 #region Downtime Methods481 public Guid AddDowntime(Downtime downtime) {482 authen.AuthenticateForAnyRole(HiveRoles.Administrator);483 return trans.UseTransaction(() => dao.AddDowntime(downtime));484 }485 486 public void DeleteDowntime(Guid downtimeId) {487 authen.AuthenticateForAnyRole(HiveRoles.Administrator);488 trans.UseTransaction(() => {489 dao.DeleteDowntime(downtimeId);490 });491 }492 493 public void UpdateDowntime(Downtime downtime) {494 authen.AuthenticateForAnyRole(HiveRoles.Administrator);495 trans.UseTransaction(() => {496 dao.UpdateDowntime(downtime);497 });498 }499 500 public IEnumerable<Downtime> GetDowntimesForResource(Guid resourceId) {501 authen.AuthenticateForAnyRole(HiveRoles.Administrator);502 return trans.UseTransaction(() => dao.GetDowntimes(x => x.ResourceId == resourceId));503 }504 #endregion505 537 } 506 538 }
Note: See TracChangeset
for help on using the changeset viewer.