diff --git a/MediaBrowser.Controller/Entities/Audio/Audio.cs b/MediaBrowser.Controller/Entities/Audio/Audio.cs index 63c907c1f2..9651a4f045 100644 --- a/MediaBrowser.Controller/Entities/Audio/Audio.cs +++ b/MediaBrowser.Controller/Entities/Audio/Audio.cs @@ -1,4 +1,5 @@ -using System; +using MediaBrowser.Model.Configuration; +using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; @@ -131,5 +132,10 @@ namespace MediaBrowser.Controller.Entities.Audio return base.GetUserDataKey(); } + + protected override bool GetBlockUnratedValue(UserConfiguration config) + { + return config.BlockUnratedMusic; + } } } diff --git a/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs b/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs index 3facccec14..203e6dc431 100644 --- a/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs +++ b/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Model.Entities; +using MediaBrowser.Model.Configuration; +using MediaBrowser.Model.Entities; using System; using System.Collections.Generic; using System.Linq; @@ -109,6 +110,11 @@ namespace MediaBrowser.Controller.Entities.Audio return base.GetUserDataKey(); } + + protected override bool GetBlockUnratedValue(UserConfiguration config) + { + return config.BlockUnratedMusic; + } } public class MusicAlbumDisc : Folder diff --git a/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs b/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs index aaf35d7075..860d34fd82 100644 --- a/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs +++ b/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Model.Dto; +using MediaBrowser.Model.Configuration; +using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; using System; using System.Collections.Generic; @@ -107,5 +108,10 @@ namespace MediaBrowser.Controller.Entities.Audio return "Artist-" + item.Name; } + + protected override bool GetBlockUnratedValue(UserConfiguration config) + { + return config.BlockUnratedMusic; + } } } diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index 2aa3e5eccc..e713a014c3 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -7,6 +7,7 @@ using MediaBrowser.Controller.Localization; using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Resolvers; +using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Logging; using System; @@ -985,7 +986,7 @@ namespace MediaBrowser.Controller.Entities if (string.IsNullOrEmpty(rating)) { - return !user.Configuration.BlockNotRated; + return !GetBlockUnratedValue(user.Configuration); } var value = localizationManager.GetRatingLevel(rating); @@ -999,6 +1000,16 @@ namespace MediaBrowser.Controller.Entities return value.Value <= maxAllowedRating.Value; } + /// + /// Gets the block unrated value. + /// + /// The configuration. + /// true if XXXX, false otherwise. + protected virtual bool GetBlockUnratedValue(UserConfiguration config) + { + return config.BlockNotRated; + } + /// /// Determines if this folder should be visible to a given user. /// Default is just parental allowed. Can be overridden for more functionality. diff --git a/MediaBrowser.Controller/Entities/Book.cs b/MediaBrowser.Controller/Entities/Book.cs index 87b90b824f..b51e93690b 100644 --- a/MediaBrowser.Controller/Entities/Book.cs +++ b/MediaBrowser.Controller/Entities/Book.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using MediaBrowser.Model.Configuration; +using System.Collections.Generic; namespace MediaBrowser.Controller.Entities { @@ -42,5 +43,10 @@ namespace MediaBrowser.Controller.Entities { Tags = new List(); } + + protected override bool GetBlockUnratedValue(UserConfiguration config) + { + return config.BlockUnratedBooks; + } } } diff --git a/MediaBrowser.Controller/Entities/Game.cs b/MediaBrowser.Controller/Entities/Game.cs index c15a31dd32..a32e0d2bf1 100644 --- a/MediaBrowser.Controller/Entities/Game.cs +++ b/MediaBrowser.Controller/Entities/Game.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Model.Entities; +using MediaBrowser.Model.Configuration; +using MediaBrowser.Model.Entities; using System; using System.Collections.Generic; @@ -129,5 +130,10 @@ namespace MediaBrowser.Controller.Entities return base.GetDeletePaths(); } + + protected override bool GetBlockUnratedValue(UserConfiguration config) + { + return config.BlockUnratedGames; + } } } diff --git a/MediaBrowser.Controller/Entities/GameSystem.cs b/MediaBrowser.Controller/Entities/GameSystem.cs index 054071b351..63af8082a6 100644 --- a/MediaBrowser.Controller/Entities/GameSystem.cs +++ b/MediaBrowser.Controller/Entities/GameSystem.cs @@ -1,4 +1,5 @@ -using System; +using MediaBrowser.Model.Configuration; +using System; namespace MediaBrowser.Controller.Entities { @@ -38,5 +39,11 @@ namespace MediaBrowser.Controller.Entities } return base.GetUserDataKey(); } + + protected override bool GetBlockUnratedValue(UserConfiguration config) + { + // Don't block. Determine by game + return false; + } } } diff --git a/MediaBrowser.Controller/Entities/Movies/BoxSet.cs b/MediaBrowser.Controller/Entities/Movies/BoxSet.cs index a1154482c0..f9b6922a21 100644 --- a/MediaBrowser.Controller/Entities/Movies/BoxSet.cs +++ b/MediaBrowser.Controller/Entities/Movies/BoxSet.cs @@ -1,5 +1,6 @@ -using System; +using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Entities; +using System; using System.Collections.Generic; namespace MediaBrowser.Controller.Entities.Movies @@ -29,5 +30,10 @@ namespace MediaBrowser.Controller.Entities.Movies /// /// The tags. public List Tags { get; set; } + + protected override bool GetBlockUnratedValue(UserConfiguration config) + { + return config.BlockUnratedMovies; + } } } diff --git a/MediaBrowser.Controller/Entities/Movies/Movie.cs b/MediaBrowser.Controller/Entities/Movies/Movie.cs index b4cf6c0477..2126fb0d07 100644 --- a/MediaBrowser.Controller/Entities/Movies/Movie.cs +++ b/MediaBrowser.Controller/Entities/Movies/Movie.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Model.Entities; +using MediaBrowser.Model.Configuration; +using MediaBrowser.Model.Entities; using System; using System.Collections.Generic; using System.IO; @@ -180,5 +181,9 @@ namespace MediaBrowser.Controller.Entities.Movies }); } + protected override bool GetBlockUnratedValue(UserConfiguration config) + { + return config.BlockUnratedMovies; + } } } diff --git a/MediaBrowser.Controller/Entities/MusicVideo.cs b/MediaBrowser.Controller/Entities/MusicVideo.cs index 68ad4630a5..d9eff8fbeb 100644 --- a/MediaBrowser.Controller/Entities/MusicVideo.cs +++ b/MediaBrowser.Controller/Entities/MusicVideo.cs @@ -1,4 +1,5 @@ using MediaBrowser.Controller.Entities.Audio; +using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Entities; using System; @@ -48,5 +49,10 @@ namespace MediaBrowser.Controller.Entities { return this.GetProviderId(MetadataProviders.Tmdb) ?? this.GetProviderId(MetadataProviders.Imdb) ?? base.GetUserDataKey(); } + + protected override bool GetBlockUnratedValue(UserConfiguration config) + { + return config.BlockUnratedMusic; + } } } diff --git a/MediaBrowser.Controller/Entities/TV/Episode.cs b/MediaBrowser.Controller/Entities/TV/Episode.cs index 7f94ab8e87..42897e09fe 100644 --- a/MediaBrowser.Controller/Entities/TV/Episode.cs +++ b/MediaBrowser.Controller/Entities/TV/Episode.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; +using MediaBrowser.Model.Configuration; namespace MediaBrowser.Controller.Entities.TV { @@ -292,5 +293,10 @@ namespace MediaBrowser.Controller.Entities.TV { return new[] { Path }; } + + protected override bool GetBlockUnratedValue(UserConfiguration config) + { + return config.BlockUnratedSeries; + } } } diff --git a/MediaBrowser.Controller/Entities/TV/Season.cs b/MediaBrowser.Controller/Entities/TV/Season.cs index 5727b316bb..2d781118eb 100644 --- a/MediaBrowser.Controller/Entities/TV/Season.cs +++ b/MediaBrowser.Controller/Entities/TV/Season.cs @@ -1,5 +1,6 @@ using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Localization; +using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Querying; using System; @@ -260,5 +261,11 @@ namespace MediaBrowser.Controller.Entities.TV { return GetEpisodes(user); } + + protected override bool GetBlockUnratedValue(UserConfiguration config) + { + // Don't block. Let either the entire series rating or episode rating determine it + return false; + } } } diff --git a/MediaBrowser.Controller/Entities/TV/Series.cs b/MediaBrowser.Controller/Entities/TV/Series.cs index 71785fa7a7..9c2cf0b704 100644 --- a/MediaBrowser.Controller/Entities/TV/Series.cs +++ b/MediaBrowser.Controller/Entities/TV/Series.cs @@ -1,5 +1,6 @@ using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Localization; +using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Querying; using System; @@ -217,5 +218,10 @@ namespace MediaBrowser.Controller.Entities.TV return false; }); } + + protected override bool GetBlockUnratedValue(UserConfiguration config) + { + return config.BlockUnratedSeries; + } } } diff --git a/MediaBrowser.Controller/Entities/Trailer.cs b/MediaBrowser.Controller/Entities/Trailer.cs index 591fea14ad..8e3ad14b3a 100644 --- a/MediaBrowser.Controller/Entities/Trailer.cs +++ b/MediaBrowser.Controller/Entities/Trailer.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Model.Entities; +using MediaBrowser.Model.Configuration; +using MediaBrowser.Model.Entities; using System; using System.Collections.Generic; using System.Runtime.Serialization; @@ -113,5 +114,10 @@ namespace MediaBrowser.Controller.Entities return base.GetUserDataKey(); } + + protected override bool GetBlockUnratedValue(UserConfiguration config) + { + return config.BlockUnratedTrailers; + } } } diff --git a/MediaBrowser.Model/Configuration/UserConfiguration.cs b/MediaBrowser.Model/Configuration/UserConfiguration.cs index b736474e0d..90accff94c 100644 --- a/MediaBrowser.Model/Configuration/UserConfiguration.cs +++ b/MediaBrowser.Model/Configuration/UserConfiguration.cs @@ -60,6 +60,13 @@ namespace MediaBrowser.Model.Configuration public bool DisplayUnairedEpisodes { get; set; } public bool EnableRemoteControlOfOtherUsers { get; set; } + public bool BlockUnratedMovies { get; set; } + public bool BlockUnratedTrailers { get; set; } + public bool BlockUnratedSeries { get; set; } + public bool BlockUnratedMusic { get; set; } + public bool BlockUnratedGames { get; set; } + public bool BlockUnratedBooks { get; set; } + /// /// Initializes a new instance of the class. ///