mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-22 02:18:26 +00:00
Add OpenID support to webapp
This commit is contained in:
@ -7,9 +7,8 @@
|
||||
package docspell.restserver.webapp
|
||||
|
||||
import docspell.backend.signup.{Config => SignupConfig}
|
||||
import docspell.common.LenientUri
|
||||
import docspell.common.{Ident, LenientUri}
|
||||
import docspell.restserver.{BuildInfo, Config}
|
||||
|
||||
import io.circe._
|
||||
import io.circe.generic.semiauto._
|
||||
import yamusca.implicits._
|
||||
@ -25,7 +24,8 @@ case class Flags(
|
||||
maxPageSize: Int,
|
||||
maxNoteLength: Int,
|
||||
showClassificationSettings: Boolean,
|
||||
uiVersion: Int
|
||||
uiVersion: Int,
|
||||
openIdAuth: List[Flags.OpenIdAuth]
|
||||
)
|
||||
|
||||
object Flags {
|
||||
@ -40,9 +40,20 @@ object Flags {
|
||||
cfg.maxItemPageSize,
|
||||
cfg.maxNoteLength,
|
||||
cfg.showClassificationSettings,
|
||||
uiVersion
|
||||
uiVersion,
|
||||
cfg.openid.filter(_.enabled).map(c => OpenIdAuth(c.provider.providerId, c.display))
|
||||
)
|
||||
|
||||
final case class OpenIdAuth(provider: Ident, name: String)
|
||||
|
||||
object OpenIdAuth {
|
||||
implicit val jsonDecoder: Decoder[OpenIdAuth] =
|
||||
deriveDecoder[OpenIdAuth]
|
||||
|
||||
implicit val jsonEncoder: Encoder[OpenIdAuth] =
|
||||
deriveEncoder[OpenIdAuth]
|
||||
}
|
||||
|
||||
private def getBaseUrl(cfg: Config): String =
|
||||
if (cfg.baseUrl.isLocal) cfg.baseUrl.rootPathToEmpty.path.asString
|
||||
else cfg.baseUrl.rootPathToEmpty.asString
|
||||
@ -50,6 +61,10 @@ object Flags {
|
||||
implicit val jsonEncoder: Encoder[Flags] =
|
||||
deriveEncoder[Flags]
|
||||
|
||||
implicit def yamuscaIdentConverter: ValueConverter[Ident] =
|
||||
ValueConverter.of(id => Value.fromString(id.id))
|
||||
implicit def yamuscaOpenIdAuthConverter: ValueConverter[OpenIdAuth] =
|
||||
ValueConverter.deriveConverter[OpenIdAuth]
|
||||
implicit def yamuscaSignupModeConverter: ValueConverter[SignupConfig.Mode] =
|
||||
ValueConverter.of(m => Value.fromString(m.name))
|
||||
implicit def yamuscaUriConverter: ValueConverter[LenientUri] =
|
||||
|
Reference in New Issue
Block a user