using System.Collections.Generic; using System.Xml.Serialization; namespace Jellyfin.Plugin.SSO_Auth.Config; /// /// Plugin Configuration. /// public class PluginConfiguration : MediaBrowser.Model.Plugins.BasePluginConfiguration { /// /// Initializes a new instance of the class. /// public PluginConfiguration() { SamlConfigs = new List(); OIDConfigs = new List(); } [XmlArray("SamlConfigs")] [XmlArrayItem(typeof(SamlConfig), ElementName = "SamlConfigs")] public List SamlConfigs { get; set; } [XmlArray("OIDConfigs")] [XmlArrayItem(typeof(OIDConfig), ElementName = "OIDConfigs")] public List OIDConfigs { get; set; } } [XmlRoot("PluginConfiguration")] public class SamlConfig { public string SamlEndpoint { get; set; } public string SamlClientId { get; set; } public string SamlCertificate { get; set; } public bool Enabled { get; set; } public bool EnableAuthorization { get; set; } public bool EnableAllFolders { get; set; } public string[] EnabledFolders { get; set; } public string[] AdminRoles { get; set; } public string[] Roles { get; set; } public bool EnableFolderRoles { get; set; } [XmlArray("FolderRoleMappings")] [XmlArrayItem(typeof(FolderRoleMap), ElementName = "FolderRoleMappings")] public List FolderRoleMapping { get; set; } } [XmlRoot("PluginConfiguration")] public class OIDConfig { public string OIDEndpoint { get; set; } public string OIDClientId { get; set; } public string OIDSecret { get; set; } public bool Enabled { get; set; } public bool EnableAuthorization { get; set; } public bool EnableAllFolders { get; set; } public string[] EnabledFolders { get; set; } public string[] AdminRoles { get; set; } public string[] Roles { get; set; } public bool EnableFolderRoles { get; set; } [XmlArray("FolderRoleMappings")] [XmlArrayItem(typeof(FolderRoleMap), ElementName = "FolderRoleMap")] public List FolderRoleMapping { get; set; } public string RoleClaim { get; set; } } public class FolderRoleMap { public string Role { get; set; } public List Folders { get; set; } }