1
0
mirror of https://github.com/hrfee/jfa-go.git synced 2024-12-22 17:10:10 +00:00

add reset link option to setup

This commit is contained in:
Harvey Tindall 2021-05-02 14:15:03 +01:00
parent af61549bf1
commit 43effd0c32
Signed by: hrfee
GPG Key ID: BBC65952848FB1A2
4 changed files with 31 additions and 10 deletions

13
api.go
View File

@ -1805,22 +1805,27 @@ func (app *appContext) Logout(gc *gin.Context) {
func (app *appContext) GetLanguages(gc *gin.Context) { func (app *appContext) GetLanguages(gc *gin.Context) {
page := gc.Param("page") page := gc.Param("page")
resp := langDTO{} resp := langDTO{}
if page == "form" { switch page {
case "form":
for key, lang := range app.storage.lang.Form { for key, lang := range app.storage.lang.Form {
resp[key] = lang.Meta.Name resp[key] = lang.Meta.Name
} }
} else if page == "admin" { case "admin":
for key, lang := range app.storage.lang.Admin { for key, lang := range app.storage.lang.Admin {
resp[key] = lang.Meta.Name resp[key] = lang.Meta.Name
} }
} else if page == "setup" { case "setup":
for key, lang := range app.storage.lang.Setup { for key, lang := range app.storage.lang.Setup {
resp[key] = lang.Meta.Name resp[key] = lang.Meta.Name
} }
} else if page == "email" { case "email":
for key, lang := range app.storage.lang.Email { for key, lang := range app.storage.lang.Email {
resp[key] = lang.Meta.Name resp[key] = lang.Meta.Name
} }
case "pwr":
for key, lang := range app.storage.lang.PasswordReset {
resp[key] = lang.Meta.Name
}
} }
if len(resp) == 0 { if len(resp) == 0 {
respond(500, "Couldn't get languages", gc) respond(500, "Couldn't get languages", gc)

View File

@ -376,7 +376,18 @@
<input type="text" class="input ~neutral !normal mt-half" id="password_resets-watch_directory" placeholder="/config/jellyfin"> <input type="text" class="input ~neutral !normal mt-half" id="password_resets-watch_directory" placeholder="/config/jellyfin">
<p class="support mb-1">{{ .lang.PasswordResets.pathToJellyfinNotice }}</p> <p class="support mb-1">{{ .lang.PasswordResets.pathToJellyfinNotice }}</p>
</label> </label>
<label class="label"> <label class="switch">
<input type="checkbox" id="password_resets-link_reset"><span>{{ .lang.PasswordResets.resetLinks }}</span>
<p class="support mb-1">{{ .lang.PasswordResets.resetLinksNotice }}</p>
</label>
<label class="row label">
<p class="mt-half">{{ .lang.PasswordResets.resetLinksLanguage }}</p>
<div class="select ~neutral !normal mt-half mb-1">
<select id="password_resets-language">
</select>
</div>
</label>
<label class="row label">
<span class="mt-half">{{ .lang.Strings.emailSubject }}</span> <span class="mt-half">{{ .lang.Strings.emailSubject }}</span>
<input type="text" class="input ~neutral !normal mt-half mb-1" id="password_resets-subject" placeholder="{{ .emailLang.PasswordReset.title }}"> <input type="text" class="input ~neutral !normal mt-half mb-1" id="password_resets-subject" placeholder="{{ .emailLang.PasswordReset.title }}">
</label> </label>

View File

@ -76,7 +76,7 @@
}, },
"ombi": { "ombi": {
"title": "Ombi", "title": "Ombi",
"description": "By connecting to Ombi, both a Jellyfin and Ombi account will be created when a user joins through jfa-go. After setup if finished, go to Settings to set a default profile for new ombi users.", "description": "By connecting to Ombi, both a Jellyfin and Ombi account will be created when a user joins through jfa-go. After setup is finished, go to Settings to set a default profile for new ombi users.",
"apiKeyNotice": "Find this in the first tab of Ombi settings." "apiKeyNotice": "Find this in the first tab of Ombi settings."
}, },
"email": { "email": {
@ -108,7 +108,10 @@
"title": "Password Resets", "title": "Password Resets",
"description": "When a user tries to reset their password, Jellyfin creates a file named 'passwordreset-*.json' which contains a PIN. jfa-go reads the file and sends the PIN to the user.", "description": "When a user tries to reset their password, Jellyfin creates a file named 'passwordreset-*.json' which contains a PIN. jfa-go reads the file and sends the PIN to the user.",
"pathToJellyfin": "Path to Jellyfin configuration directory", "pathToJellyfin": "Path to Jellyfin configuration directory",
"pathToJellyfinNotice": "If you don't know where this is, try resetting your password in Jellyfin. A popup with '<path to jellyfin>/passwordreset-*.json' will appear." "pathToJellyfinNotice": "If you don't know where this is, try resetting your password in Jellyfin. A popup with '<path to jellyfin>/passwordreset-*.json' will appear.",
"resetLinks": "Send a link instead of a PIN",
"resetLinksNotice": "If Ombi integration is enabled, use this to sync Jellyfin password resets with Ombi.",
"resetLinksLanguage": "Default reset link language"
}, },
"passwordValidation": { "passwordValidation": {
"title": "Password Validation", "title": "Password Validation",

View File

@ -187,8 +187,8 @@ class Select {
} }
class LangSelect extends Select { class LangSelect extends Select {
constructor(page: string, el: HTMLElement) { constructor(page: string, el: HTMLElement, depends?: string, dependsTrue?: boolean, section?: string, setting?: string) {
super(el); super(el, depends, dependsTrue, section, setting);
_get("/lang/" + page, null, (req: XMLHttpRequest) => { _get("/lang/" + page, null, (req: XMLHttpRequest) => {
if (req.readyState == 4 && req.status == 200) { if (req.readyState == 4 && req.status == 200) {
for (let code in req.response) { for (let code in req.response) {
@ -256,7 +256,9 @@ const settings = {
"password_resets": { "password_resets": {
"enabled": new Checkbox(get("password_resets-enabled"), "", false, "password_resets", "enabled"), "enabled": new Checkbox(get("password_resets-enabled"), "", false, "password_resets", "enabled"),
"watch_directory": new Input(get("password_resets-watch_directory"), "", "", "enabled", true, "password_resets"), "watch_directory": new Input(get("password_resets-watch_directory"), "", "", "enabled", true, "password_resets"),
"subject": new Input(get("password_resets-subject"), "", "", "enabled", true, "password_resets") "subject": new Input(get("password_resets-subject"), "", "", "enabled", true, "password_resets"),
"link_reset": new Checkbox(get("password_resets-link_reset"), "enabled", true, "password_resets", "link_reset"),
"language": new LangSelect("pwr", get("password_resets-language"), "link_reset", true, "password_resets", "language")
}, },
"notifications": { "notifications": {
"enabled": new Checkbox(get("notifications-enabled")) "enabled": new Checkbox(get("notifications-enabled"))