Changeset 6457 for branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.DataAccess/3.4/HiveDao.cs
- 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.DataAccess/3.4/HiveDao.cs
r6452 r6457 31 31 public static HiveDataContext CreateContext(bool longRunning = false) { 32 32 var context = new HiveDataContext(Settings.Default.HeuristicLab_Hive_LinqConnectionString); 33 if (longRunning) context.CommandTimeout = (int)Settings.Default.LongRunningDatabaseCommandTimeout.TotalSeconds; 33 if (longRunning) context.CommandTimeout = (int)Settings.Default.LongRunningDatabaseCommandTimeout.TotalSeconds; 34 34 return context; 35 35 } … … 319 319 } 320 320 } 321 322 /// <summary> 323 /// Sets the permissions for a experiment. makes sure that only one permission per user exists. 324 /// </summary> 325 public void SetHiveExperimentPermission(Guid hiveExperimentId, Guid grantedByUserId, Guid grantedUserId, Permission permission) { 326 using (var db = CreateContext()) { 327 HiveExperimentPermission hiveExperimentPermission = db.HiveExperimentPermissions.SingleOrDefault(x => x.HiveExperimentId == hiveExperimentId && x.GrantedUserId == grantedUserId); 328 if (hiveExperimentPermission != null) { 329 if (permission == Permission.NotAllowed) { 330 // not allowed, delete 331 db.HiveExperimentPermissions.DeleteOnSubmit(hiveExperimentPermission); 332 } else { 333 // update 334 hiveExperimentPermission.Permission = permission; 335 hiveExperimentPermission.GrantedByUserId = grantedByUserId; // update grantedByUserId, always the last "granter" is stored 336 } 337 } else { 338 // insert 339 if (permission != Permission.NotAllowed) { 340 hiveExperimentPermission = new HiveExperimentPermission() { HiveExperimentId = hiveExperimentId, GrantedByUserId = grantedByUserId, GrantedUserId = grantedUserId, Permission = permission }; 341 db.HiveExperimentPermissions.InsertOnSubmit(hiveExperimentPermission); 342 } 343 } 344 db.SubmitChanges(); 345 } 346 } 321 347 #endregion 322 348 … … 596 622 public Permission GetPermissionForExperiment(Guid experimentId, Guid userId) { 597 623 using (var db = CreateContext()) { 624 HiveExperiment hiveExperiment = db.HiveExperiments.SingleOrDefault(x => x.HiveExperimentId == experimentId); 625 if (hiveExperiment == null) return Permission.NotAllowed; 626 if (hiveExperiment.OwnerUserId == userId) return Permission.Full; 598 627 HiveExperimentPermission permission = db.HiveExperimentPermissions.SingleOrDefault(p => p.HiveExperimentId == experimentId && p.GrantedUserId == userId); 599 628 return permission != null ? permission.Permission : Permission.NotAllowed;
Note: See TracChangeset
for help on using the changeset viewer.