Add a reset-password admin route

This commit is contained in:
Eike Kettner
2021-01-04 16:32:54 +01:00
parent 2a172ce720
commit 668abf2140
7 changed files with 120 additions and 15 deletions

View File

@ -1,5 +1,8 @@
package docspell.common
import cats.effect.Sync
import cats.implicits._
import io.circe.{Decoder, Encoder}
final class Password(val pass: String) extends AnyVal {
@ -18,6 +21,12 @@ object Password {
def apply(pass: String): Password =
new Password(pass)
def generate[F[_]: Sync]: F[Password] =
for {
id <- Ident.randomId[F]
pass = id.id.take(11)
} yield Password(pass)
implicit val passwordEncoder: Encoder[Password] =
Encoder.encodeString.contramap(_.pass)