public UserApiController(UserQueries queries, UserService service, IUserPermissionContext permissionContext, IEntryThumbPersister thumbPersister) { this.queries = queries; this.service = service; this.permissionContext = permissionContext; this.thumbPersister = thumbPersister; }
public CommentApiController(IRepository db, IUserPermissionContext userContext, IUserIconFactory userIconFactory, IEntryLinkFactory entryLinkFactory) { this.db = db; this.userContext = userContext; this.userIconFactory = userIconFactory; this.entryLinkFactory = entryLinkFactory; }
public static void VerifyResourceAccess(this IUserPermissionContext permissionContext, IEnumerable<int> ownerIds) { permissionContext.VerifyLogin(); if (!ownerIds.Contains(permissionContext.LoggedUserId)) throw new NotAllowedException("You do not have access to this resource."); }
public DiscussionQueries(IDiscussionFolderRepository repository, IUserPermissionContext permissionContext, IUserIconFactory userIconFactory, IEntryLinkFactory entryLinkFactory) : base(repository, permissionContext) { this.userIconFactory = userIconFactory; this.entryLinkFactory = entryLinkFactory; }
public ServiceModel(ISessionFactory sessionFactory, IUserPermissionContext permissionContext, IEntryLinkFactory entryLinkFactory, BrandableStringsManager brandableStringsManager) { this.sessionFactory = sessionFactory; this.permissionContext = permissionContext; this.entryLinkFactory = entryLinkFactory; this.brandableStringsManager = brandableStringsManager; }
public EntryQueries(IAlbumRepository repository, IUserPermissionContext permissionContext, IEntryThumbPersister entryThumbPersister, IEntryImagePersisterOld entryImagePersisterOld) : base(repository, permissionContext) { this.entryThumbPersister = entryThumbPersister; this.entryImagePersisterOld = entryImagePersisterOld; }
public MikuDbAlbumService(ISessionFactory sessionFactory, IUserPermissionContext permissionContext, IEntryLinkFactory entryLinkFactory, AlbumService albumService, SongService songService) : base(sessionFactory, permissionContext, entryLinkFactory) { _albumService = albumService; _songService = songService; }
public SongListQueries(ISongListRepository repository, IUserPermissionContext permissionContext, IEntryLinkFactory entryLinkFactory, IEntryImagePersisterOld imagePersister) { this.repository = repository; this.permissionContext = permissionContext; this.entryLinkFactory = entryLinkFactory; this.imagePersister = imagePersister; }
public QueryService(ServiceModel services, ArtistQueries artistQueries, TagQueries tagQueries, IUserPermissionContext userPermissionContext) { Services = services; this.artistQueries = artistQueries; this.tagQueries = tagQueries; this.userPermissionContext = userPermissionContext; }
public AdminService(ISessionFactory sessionFactory, IUserPermissionContext permissionContext, IEntryLinkFactory entryLinkFactory, IEnumTranslations enumTranslations, IUserIconFactory userIconFactory) : base(sessionFactory, permissionContext, entryLinkFactory) { this.enumTranslations = enumTranslations; this.userIconFactory = userIconFactory; }
public static bool CanDelete <TEntry>(IUserPermissionContext permissionContext, TEntry entry) where TEntry : IEntryWithVersions, IEntryWithStatus { if (!permissionContext.IsLoggedIn) { return(false); } // Deleting requires edit permission if (!CanEdit(permissionContext, entry)) { return(false); } if (permissionContext.HasPermission(PermissionToken.DeleteEntries)) { return(true); } // Verified artists can delete their entries if (IsVerifiedFor(permissionContext, entry)) { return(true); } return(entry.ArchivedVersionsManager.VersionsBase.All(v => v.Author != null && v.Author.Id == permissionContext.LoggedUserId)); }
public EventEdit(ReleaseEventSeriesContract seriesContract, IUserPermissionContext userContext) : this() { Series = seriesContract; AllowedEntryStatuses = EntryPermissionManager.AllowedEntryStatuses(userContext).ToArray(); }
public ActivityFeedService(ISessionFactory sessionFactory, IUserPermissionContext permissionContext, IEntryLinkFactory entryLinkFactory, IUserIconFactory userIconFactory, EntryForApiContractFactory entryForApiContractFactory) : base(sessionFactory, permissionContext, entryLinkFactory) { this.userIconFactory = userIconFactory; this.entryForApiContractFactory = entryForApiContractFactory; }
public void CopyNonEditableProperties(TagForEditContract contract, IUserPermissionContext permissionContext) { AllowedEntryStatuses = EntryPermissionManager.AllowedEntryStatuses(permissionContext).ToArray(); CanDelete = contract.CanDelete; CurrentName = contract.Name; Deleted = contract.Deleted; Id = contract.Id; IsEmpty = contract.IsEmpty; Thumb = contract.Thumb; UrlSlug = contract.UrlSlug; string GetTagTargetTypeName(TagTargetTypes t) { switch (t) { case TagTargetTypes.Nothing: return("Nothing"); case TagTargetTypes.All: return("Anything"); } return(string.Join(", ", EnumVal <EntryType> .Values.Where(e => e != EntryType.Undefined).Where(e => t.HasFlag((TagTargetTypes)e)).Select(e => Translate.EntryTypeNames[e]))); } AllTagTargetTypes = new[] { TagTargetTypes.Album, TagTargetTypes.Artist, TagTargetTypes.Song, TagTargetTypes.Event } .ToDictionary(t => t, GetTagTargetTypeName); }
public EventEdit(ReleaseEventForEditContract contract, IUserPermissionContext userContext) : this() { ParamIs.NotNull(() => contract); Artists = contract.Artists; Category = contract.Category; CustomName = contract.CustomName = contract.CustomName; Date = contract.Date; DefaultNameLanguage = contract.DefaultNameLanguage; Description = contract.Description; EndDate = contract.EndDate; Id = contract.Id; Name = OldName = contract.Name; Names = contract.Names; PVs = contract.PVs; Series = contract.Series; SeriesNumber = contract.SeriesNumber; SeriesSuffix = contract.SeriesSuffix; SongList = contract.SongList; Status = contract.Status; Venue = contract.Venue; VenueName = contract.VenueName; WebLinks = contract.WebLinks; CopyNonEditableProperties(contract, userContext); }
public SongService(ISessionFactory sessionFactory, IUserPermissionContext permissionContext, IEntryLinkFactory entryLinkFactory, IEntryUrlParser entryUrlParser, VdbConfigManager config) : base(sessionFactory, permissionContext, entryLinkFactory) { _entryUrlParser = entryUrlParser; _config = config; }
public AlbumService(ISessionFactory sessionFactory, IUserPermissionContext permissionContext, IEntryLinkFactory entryLinkFactory, IUserIconFactory userIconFactory, IEntryThumbPersister entryThumbPersister) : base(sessionFactory, permissionContext, entryLinkFactory) { this.userIconFactory = userIconFactory; this.entryThumbPersister = entryThumbPersister; }
/// <summary> /// Gets a list of entry statuses that the user can edit or set. /// This means, the user is allowed to edit entries with any of these statuses, /// and the user is able to change the entry status to any of these. /// </summary> /// <remarks> /// Most of the time the allowed entry statuses are global, but associating a user account with an artist entry /// gives special entry-specific permissions for the user editing that entry. /// </remarks> /// <param name="permissionContext">User permission context identifying the user's global permissions.</param> /// <param name="entry">Entry to be checked. Can be null. If null, only global permissions will be checked.</param> /// <returns>A list of permissions that can be set by the user.</returns> public static StatusSet AllowedEntryStatuses(IUserPermissionContext permissionContext, IEntryBase entry = null) { // Check for basic edit permissions, without these the user is limited or disabled if (!permissionContext.HasPermission(PermissionToken.ManageDatabase)) { return(StatusSet.Empty); } // Moderators with lock permissions can edit everything if (permissionContext.HasPermission(PermissionToken.LockEntries)) { return(allPermissions); } // Trusted users can edit approved entries if (permissionContext.HasPermission(PermissionToken.ApproveEntries)) { return(trustedStatusPermissions); } // Verified artists get trusted permissions for their own entry if (IsVerifiedFor(permissionContext, entry)) { return(trustedStatusPermissions); } // Normal user permissions if (permissionContext.HasPermission(PermissionToken.ManageDatabase)) { return(normalStatusPermissions); } return(StatusSet.Empty); }
public TagQueries(ITagRepository repository, IUserPermissionContext permissionContext, IEntryLinkFactory entryLinkFactory, IEntryImagePersisterOld imagePersister) : base(repository, permissionContext) { this.entryLinkFactory = entryLinkFactory; this.imagePersister = imagePersister; }
public SongListWithArchivedVersionsContract(SongList songList, IUserPermissionContext permissionContext) : base(songList, permissionContext) { ArchivedVersions = songList.ArchivedVersionsManager.Versions.Select( a => new ArchivedSongListVersionContract(a)).ToArray(); }
protected QueriesBase(TRepo repository, IUserPermissionContext permissionContext) { ParamIs.NotNull(() => repository); ParamIs.NotNull(() => permissionContext); this.repository = repository; this.permissionContext = permissionContext; }
public AlbumQueries(IAlbumRepository repository, IUserPermissionContext permissionContext, IEntryLinkFactory entryLinkFactory, IEntryThumbPersister imagePersister, IUserMessageMailer mailer) : base(repository, permissionContext) { this.entryLinkFactory = entryLinkFactory; this.imagePersister = imagePersister; this.mailer = mailer; }
public VideoUrlParseResult ParseByUrl(string url, bool getTitle, IUserPermissionContext permissionContext) { if (!MatchedPVs.ContainsKey(url)) return ResultFunc(url, getTitle); return MatchedPVs[url]; }
public ActivityEntryQueries(IRepository repository, IUserIconFactory userIconFactory, IUserPermissionContext permissionContext, EntryForApiContractFactory entryForApiContractFactory) { _repository = repository; _userIconFactory = userIconFactory; _permissionContext = permissionContext; _entryForApiContractFactory = entryForApiContractFactory; }
public ArtistQueries(IArtistRepository repository, IUserPermissionContext permissionContext, IEntryLinkFactory entryLinkFactory, IEntryThumbPersister imagePersister, ObjectCache cache) : base(repository, permissionContext) { this.entryLinkFactory = entryLinkFactory; this.imagePersister = imagePersister; this.cache = cache; }
public OtherService(ISessionFactory sessionFactory, IUserPermissionContext permissionContext, IEntryLinkFactory entryLinkFactory, IUserIconFactory userIconFactory, EntryForApiContractFactory entryForApiContractFactory, ObjectCache cache) : base(sessionFactory, permissionContext, entryLinkFactory) { this.userIconFactory = userIconFactory; this.entryForApiContractFactory = entryForApiContractFactory; this.cache = cache; }
public ActivityEntryApiController(IRepository repository, IUserIconFactory userIconFactory, IUserPermissionContext permissionContext, EntryForApiContractFactory entryForApiContractFactory) { this.repository = repository; this.userIconFactory = userIconFactory; this.permissionContext = permissionContext; this.entryForApiContractFactory = entryForApiContractFactory; }
public SongListForEditContract(SongList songList, IUserPermissionContext permissionContext) : base(songList, permissionContext) { SongLinks = songList.SongLinks .OrderBy(s => s.Order) .Select(s => new SongInListEditContract(s, permissionContext.LanguagePreference)) .ToArray(); }
public SongListQueries(ISongListRepository repository, IUserPermissionContext permissionContext, IEntryLinkFactory entryLinkFactory, IEntryImagePersisterOld imagePersister, IUserIconFactory userIconFactory) : base(repository, permissionContext) { this.entryLinkFactory = entryLinkFactory; this.imagePersister = imagePersister; this.userIconFactory = userIconFactory; }
public SongListWithArchivedVersionsContract(SongList songList, IUserPermissionContext permissionContext) : base(songList) { ArchivedVersions = songList.ArchivedVersionsManager.Versions.Select( a => new ArchivedSongListVersionContract(a)).ToArray(); Version = songList.Version; }
public SongListForEditContract(SongList songList, IUserPermissionContext permissionContext, bool loadSongs = true) : base(songList, permissionContext) { if (loadSongs) SongLinks = songList.SongLinks .OrderBy(s => s.Order) .Select(s => new SongInListEditContract(s, permissionContext.LanguagePreference)) .ToArray(); }
public static void VerifyAccess <T>(IUserPermissionContext permissionContext, T entry, Func <IUserPermissionContext, T, bool> accessCheck) where T : class, IEntryBase { ParamIs.NotNull(() => entry); if (!accessCheck(permissionContext, entry)) { throw new NotAllowedException(); } }
protected ServiceBase( ISessionFactory sessionFactory, IUserPermissionContext permissionContext, IEntryLinkFactory entryLinkFactory) { ParamIs.NotNull(() => sessionFactory); this.sessionFactory = sessionFactory; this.permissionContext = permissionContext; this.entryLinkFactory = entryLinkFactory; }
public SongListContract(SongList list, IUserPermissionContext permissionContext) : base(list) { ParamIs.NotNull(() => list); Author = new UserContract(list.Author); CanEdit = EntryPermissionManager.CanEdit(permissionContext, list); Description = list.Description; FeaturedCategory = list.FeaturedCategory; }
public SongEditViewModel(SongContract song, IUserPermissionContext permissionContext, SongForEditContract editedSong = null) : this() { ParamIs.NotNull(() => song); Song = song; AllowedEntryStatuses = EntryPermissionManager.AllowedEntryStatuses(permissionContext); EditedSong = editedSong; }
public ArtistEditViewModel(ArtistContract artist, IUserPermissionContext permissionContext, ArtistForEditContract editedArtist = null) : this() { ParamIs.NotNull(() => artist); Artist = artist; AllowedEntryStatuses = EntryPermissionManager.AllowedEntryStatuses(permissionContext); EditedArtist = editedArtist; }
public AlbumEditViewModel(AlbumContract album, IUserPermissionContext permissionContext, AlbumForEditContract editedAlbum = null) : this() { ParamIs.NotNull(() => album); Album = album; EditedAlbum = editedAlbum; AllowedEntryStatuses = EntryPermissionManager.AllowedEntryStatuses(permissionContext); }
public UserDetailsContract(User user, IUserPermissionContext permissionContext) : base(user, permissionContext.LanguagePreference) { AboutMe = user.Options.AboutMe; LastLogin = user.LastLogin; LastLoginAddress = user.Options.LastLoginAddress; Location = user.Options.Location; SongLists = user.SongLists .Where(l => l.FeaturedCategory == SongListFeaturedCategory.Nothing) .Select(l => new SongListContract(l, permissionContext)).ToArray(); WebLinks = user.WebLinks.OrderBy(w => w.DescriptionOrUrl).Select(w => new WebLinkContract(w)).ToArray(); }
public SongListContract(SongList list, IUserPermissionContext permissionContext) : base(list) { ParamIs.NotNull(() => list); Author = new UserWithEmailContract(list.Author); CanEdit = EntryPermissionManager.CanEdit(permissionContext, list); Description = list.Description; FeaturedCategory = list.FeaturedCategory; Thumb = (list.Thumb != null ? new EntryThumbContract(list.Thumb) : null); }
private static AgentLoginData CreateAgentLoginData(IRepositoryContext<AuditLogEntry> ctx, IUserPermissionContext permissionContext, User user = null) { if (user != null) return new AgentLoginData(user); if (permissionContext.LoggedUser != null) { user = ctx.OfType<User>().Load(permissionContext.LoggedUser.Id); return new AgentLoginData(user); } else { return new AgentLoginData(permissionContext.Name); } }
public ServiceModel(ISessionFactory sessionFactory, IUserPermissionContext permissionContext, IEntryLinkFactory entryLinkFactory) { this.sessionFactory = sessionFactory; this.permissionContext = permissionContext; this.entryLinkFactory = entryLinkFactory; }
public MikuDbAlbumService(ISessionFactory sessionFactory, IUserPermissionContext permissionContext, IEntryLinkFactory entryLinkFactory, ServiceModel services) : base(sessionFactory, permissionContext, entryLinkFactory) { this.Services = services; }
public VideoUrlParseResult ParseByUrl(string url, bool getTitle, IUserPermissionContext permissionContext) { return VideoServiceHelper.ParseByUrl(url, getTitle, permissionContext); }
public SongListsByCategoryContract(SongListFeaturedCategory category, IEnumerable<SongList> lists, IUserPermissionContext permissionContext) { Category = category; Lists = lists.Select(l => new SongListContract(l, permissionContext)).ToArray(); }
public override bool IsAuthorized(IUserPermissionContext permissionContext) { return permissionContext.HasPermission(PermissionToken.AddRawFileMedia); }
/// <summary> /// Tests whether the user has the required permissions to add PVs for this service. /// </summary> /// <param name="permissionContext">Permission context. Can be null (when no user is logged in).</param> /// <returns>True if the user authorized to add PVs for this service, otherwise false.</returns> public virtual bool IsAuthorized(IUserPermissionContext permissionContext) { return true; }
public RankingService(ISessionFactory sessionFactory, IUserPermissionContext permissionContext, IEntryLinkFactory entryLinkFactory) : base(sessionFactory, permissionContext, entryLinkFactory) { }
public PVApiController(IPVParser pvParser, IUserPermissionContext permissionContext) { this.pvParser = pvParser; this.permissionContext = permissionContext; }
public NHibernateAuditLogger(IRepositoryContext<AuditLogEntry> ctx, IUserPermissionContext permissionContext) { Ctx = ctx; PermissionContext = permissionContext; }
public ActivityFeedService(ISessionFactory sessionFactory, IUserPermissionContext permissionContext, IEntryLinkFactory entryLinkFactory) : base(sessionFactory, permissionContext, entryLinkFactory) { }
public SongListDetailsContract(SongList list, PartialFindResult<SongInListContract> songLinks, IUserPermissionContext permissionContext) : base(list, permissionContext) { SongLinks = songLinks; //SongLinks = list.SongLinks.Select(s => new SongInListContract(s, permissionContext.LanguagePreference)).ToArray(); }
public MikuDbAlbumService(ISessionFactory sessionFactory, IUserPermissionContext permissionContext, IEntryLinkFactory entryLinkFactory) : base(sessionFactory, permissionContext, entryLinkFactory) { }