mirror of
https://github.com/hrfee/jfa-go.git
synced 2024-12-22 09:00:10 +00:00
ombi: reset password when using pwr links
When password reset links are enabled, the ombi password will be reset to the PIN along with Jellyfin.
This commit is contained in:
parent
22a0d8925d
commit
af61549bf1
@ -469,13 +469,13 @@
|
|||||||
"description": "Path to the folder Jellyfin puts password-reset files."
|
"description": "Path to the folder Jellyfin puts password-reset files."
|
||||||
},
|
},
|
||||||
"link_reset": {
|
"link_reset": {
|
||||||
"name": "Use reset link instead of PIN",
|
"name": "Use reset link instead of PIN (Required for Ombi)",
|
||||||
"required": false,
|
"required": false,
|
||||||
"requires_restart": true,
|
"requires_restart": true,
|
||||||
"depends_true": "enabled",
|
"depends_true": "enabled",
|
||||||
"type": "bool",
|
"type": "bool",
|
||||||
"value": false,
|
"value": false,
|
||||||
"description": "Send users a link to reset their password instead of a PIN."
|
"description": "Send users a link to reset their password instead of a PIN. Must be enabled to reset Ombi password at the same time as the Jellyfin password."
|
||||||
},
|
},
|
||||||
"language": {
|
"language": {
|
||||||
"name": "Default reset link language",
|
"name": "Default reset link language",
|
||||||
@ -722,7 +722,7 @@
|
|||||||
"order": [],
|
"order": [],
|
||||||
"meta": {
|
"meta": {
|
||||||
"name": "Ombi Integration",
|
"name": "Ombi Integration",
|
||||||
"description": "Connect to Ombi to automatically create both Ombi and Jellyfin accounts for new users. You'll need to create a user template for this to work. Once enabled, refresh to see an option in settings for this."
|
"description": "Connect to Ombi to automatically create both Ombi and Jellyfin accounts for new users. You'll need to create a user template for this to work. Once enabled, refresh to see an option in settings for this. To handle password resets for Ombi & Jellyfin, enable \"Use reset link instead of PIN\"."
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
"enabled": {
|
"enabled": {
|
||||||
|
@ -22,7 +22,11 @@
|
|||||||
</span>
|
</span>
|
||||||
<p class="content mb-1">
|
<p class="content mb-1">
|
||||||
{{ if .success }}
|
{{ if .success }}
|
||||||
|
{{ if .ombiEnabled }}
|
||||||
|
{{ .strings.youCanLoginOmbi }}
|
||||||
|
{{ else }}
|
||||||
{{ .strings.youCanLogin }}
|
{{ .strings.youCanLogin }}
|
||||||
|
{{ end }}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ .strings.tryAgain }}
|
{{ .strings.tryAgain }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
"resetFailed": "Password reset failed",
|
"resetFailed": "Password reset failed",
|
||||||
"tryAgain": "Please try again.",
|
"tryAgain": "Please try again.",
|
||||||
"youCanLogin": "You can now log in with the below code as your password.",
|
"youCanLogin": "You can now log in with the below code as your password.",
|
||||||
|
"youCanLoginOmbi": "You can now log in to Jellyfin & Ombi with the below code as your password.",
|
||||||
"changeYourPassword": "Make sure to change your password after you log in."
|
"changeYourPassword": "Make sure to change your password after you log in."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -130,7 +130,7 @@ func (ombi *Ombi) ModifyUser(user map[string]interface{}) (status int, err error
|
|||||||
err = fmt.Errorf("No ID provided")
|
err = fmt.Errorf("No ID provided")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
_, status, err = ombi.put(ombi.server+"/api/v1/Identity", user, false)
|
_, status, err = ombi.put(ombi.server+"/api/v1/Identity/", user, false)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
22
views.go
22
views.go
@ -144,6 +144,7 @@ func (app *appContext) ResetPassword(gc *gin.Context) {
|
|||||||
"contactMessage": app.config.Section("ui").Key("contact_message").String(),
|
"contactMessage": app.config.Section("ui").Key("contact_message").String(),
|
||||||
"strings": app.storage.lang.PasswordReset[lang].Strings,
|
"strings": app.storage.lang.PasswordReset[lang].Strings,
|
||||||
"success": false,
|
"success": false,
|
||||||
|
"ombiEnabled": app.config.Section("ombi").Key("enabled").MustBool(false),
|
||||||
}
|
}
|
||||||
resp, status, err := app.jf.ResetPassword(pin)
|
resp, status, err := app.jf.ResetPassword(pin)
|
||||||
if status == 200 && err == nil && resp.Success {
|
if status == 200 && err == nil && resp.Success {
|
||||||
@ -152,7 +153,26 @@ func (app *appContext) ResetPassword(gc *gin.Context) {
|
|||||||
} else {
|
} else {
|
||||||
app.err.Printf("Password Reset failed (%d): %v", status, err)
|
app.err.Printf("Password Reset failed (%d): %v", status, err)
|
||||||
}
|
}
|
||||||
gcHTML(gc, http.StatusOK, "password-reset.html", data)
|
defer gcHTML(gc, http.StatusOK, "password-reset.html", data)
|
||||||
|
if app.config.Section("ombi").Key("enabled").MustBool(false) {
|
||||||
|
jfUser, status, err := app.jf.UserByName(resp.UsersReset[0], false)
|
||||||
|
if status != 200 || err != nil {
|
||||||
|
app.err.Printf("Failed to get user \"%s\" from jellyfin/emby (%d): %v", resp.UsersReset[0], status, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ombiUser, status, err := app.getOmbiUser(jfUser.ID)
|
||||||
|
if status != 200 || err != nil {
|
||||||
|
app.err.Printf("Failed to get user \"%s\" from ombi (%d): %v", resp.UsersReset[0], status, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ombiUser["password"] = pin
|
||||||
|
status, err = app.ombi.ModifyUser(ombiUser)
|
||||||
|
if status != 200 || err != nil {
|
||||||
|
app.err.Printf("Failed to set password for ombi user \"%s\" (%d): %v", ombiUser["userName"], status, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
app.debug.Printf("Reset password for ombi user \"%s\"", ombiUser["userName"])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (app *appContext) InviteProxy(gc *gin.Context) {
|
func (app *appContext) InviteProxy(gc *gin.Context) {
|
||||||
|
Loading…
Reference in New Issue
Block a user