protected async Task <IActionResult> RunProfileAsync(ShareStatusService shareStatus, UserManager <User> userManager, string profileId, Permission?sharePermission, Func <User, Task <IActionResult> > handler) { Ensure.NotNullOrEmpty(profileId, "profileId"); User entity = await userManager.FindByIdAsync(profileId); if (entity == null) { return(NotFound()); } string userId = HttpContext.User.FindUserId(); if (entity.Id != userId) { if (sharePermission == null) { return(Unauthorized()); } else if (sharePermission == Permission.Read && !await shareStatus.IsProfileSharedForReadAsync(profileId, userId)) { return(Unauthorized()); } else if (sharePermission == Permission.Write) { return(Unauthorized()); } } return(await handler(entity)); }
public ProfileController(UserManager <User> userManager, ShareStatusService shareStatus) { Ensure.NotNull(userManager, "userManager"); Ensure.NotNull(shareStatus, "shareStatus"); this.userManager = userManager; this.shareStatus = shareStatus; }
public Task <IActionResult> DeleteProfileAsync([FromServices] ShareStatusService shareStatus, [FromServices] UserManager <User> userManager, string profileId, string userName) => RunProfileAsync(shareStatus, userManager, profileId, async profile => { return(await DeleteAsync( userName, userId => db.ProfileShares.Where(s => s.ProfileId == profileId && s.UserId == userId) )); });
public StoryEntriesController(DataContext db, ShareStatusService shareStatus) { Ensure.NotNull(db, "db"); Ensure.NotNull(shareStatus, "shareStatus"); this.db = db; this.shareStatus = shareStatus; }
public MapController(DataContext dataContext, ShareStatusService shareStatus) { Ensure.NotNull(dataContext, "dataContext"); Ensure.NotNull(shareStatus, "shareStatus"); this.dataContext = dataContext; this.shareStatus = shareStatus; }
public EntryBeingController(DataContext db, ShareStatusService shareStatus) : base(db, shareStatus, RunEntryObserver) { Ensure.NotNull(db, "db"); Ensure.NotNull(shareStatus, "shareStatus"); this.db = db; this.shareStatus = shareStatus; }
public ShareController(DataContext db, IUserNameProvider userNames, ShareStatusService shareStatus) : base(db, shareStatus) { Ensure.NotNull(db, "db"); Ensure.NotNull(userNames, "userNames"); this.db = db; this.userNames = userNames; }
public Task <IActionResult> CreateProfileAsync([FromServices] ShareStatusService shareStatus, [FromServices] UserManager <User> userManager, string profileId, ShareModel model) => RunProfileAsync(shareStatus, userManager, profileId, profile => { return(CreateAsync( model, userId => db.ProfileShares.Where(s => s.ProfileId == profileId && s.UserId == userId), () => new ProfileShare(profileId) )); });
protected ControllerBase(DataContext db, ShareStatusService shareStatus, Func <IQueryable <Entry>, IQueryable <Entry> > runEntryObserver = null, Func <IQueryable <Story>, IQueryable <Story> > runStoryObserver = null) { Ensure.NotNull(db, "db"); Ensure.NotNull(shareStatus, "shareStatus"); this.db = db; this.shareStatus = shareStatus; this.runEntryObserver = runEntryObserver; this.runStoryObserver = runStoryObserver; }
public TimelineController(DataContext dataContext, IUserNameProvider userNames, ShareStatusService shareStatus) : base(dataContext, shareStatus) { Ensure.NotNull(dataContext, "dataContext"); Ensure.NotNull(userNames, "userNames"); Ensure.NotNull(shareStatus, "shareStatus"); this.dataContext = dataContext; this.userNames = userNames; this.shareStatus = shareStatus; }
public CalendarController(DataContext dataContext, ShareStatusService shareStatus, IUserPremiumProvider premiumProvider) : base(dataContext, shareStatus) { Ensure.NotNull(dataContext, "dataContext"); Ensure.NotNull(shareStatus, "shareStatus"); Ensure.NotNull(premiumProvider, "premiumProvider"); this.dataContext = dataContext; this.shareStatus = shareStatus; this.premiumProvider = premiumProvider; }
public BeingController(DataContext db, IUserNameProvider userNames, ShareStatusService shareStatus, ShareDeleter shareDeleter, FreeLimitsChecker freeLimits) : base(db, shareStatus) { Ensure.NotNull(db, "db"); Ensure.NotNull(userNames, "userNames"); Ensure.NotNull(shareStatus, "shareStatus"); Ensure.NotNull(shareDeleter, "shareDeleter"); Ensure.NotNull(freeLimits, "freeLimits"); this.db = db; this.userNames = userNames; this.shareStatus = shareStatus; this.shareDeleter = shareDeleter; this.freeLimits = freeLimits; }
public ImageController(ImageService service, DataContext dataContext, IFileStorage fileProvider, ShareStatusService shareStatus, IUserNameProvider userNames, FreeLimitsChecker freeLimits) : base(dataContext, shareStatus) { Ensure.NotNull(service, "service"); Ensure.NotNull(dataContext, "dataContext"); Ensure.NotNull(fileProvider, "fileProvider"); Ensure.NotNull(shareStatus, "shareStatus"); Ensure.NotNull(userNames, "userNames"); Ensure.NotNull(freeLimits, "freeLimits"); this.service = service; this.dataContext = dataContext; this.fileProvider = fileProvider; this.shareStatus = shareStatus; this.userNames = userNames; this.freeLimits = freeLimits; }
// DUPLICATED CODE FROM ProfileController.cs protected Task <IActionResult> RunProfileAsync(ShareStatusService shareStatus, UserManager <User> userManager, string profileId, Func <User, Task <IActionResult> > handler) => RunProfileAsync(shareStatus, userManager, profileId, null, handler);
public Task <IActionResult> GetProfileAsync([FromServices] ShareStatusService shareStatus, [FromServices] UserManager <User> userManager, string profileId) => RunProfileAsync(shareStatus, userManager, profileId, profile => { return(GetItemsAsync(db.ProfileShares.Where(s => s.ProfileId == profileId))); });