Giter VIP home page Giter VIP logo

jfa-go's Introduction

Hi

A CS student in the UK. Stuff i've done:

  • jfa-go (jellyfin-accounts go): A user management app for Jellyfin/Emby, with features like invites, automated password resets, and new user profiles. This is a rewrite of my quarantine project jellyfin-accounts in Go and Typescript instead of Python and Javascript.
  • buildrone: An app for publicly hosting software builds from Drone CI. Very janky, but useful for doing nightly releases for my software. See here for a running instance.
  • waybar-mpris: Waybar component/utility for displaying and controlling MPRIS2 music players individually.
  • go-scrobble: Personal Last.FM scrobbler for MPRIS2 players, using the same mpris2client library I wrote for waybar-mpris.
  • filaments: A clone of the New York Times' Strands game, with some multiplayer and archival features.

I also host some things on my gitea instance here.

jfa-go's People

Contributors

andremxmx avatar bgabor997 avatar big-op01 avatar brixik1 avatar clankjake avatar collateral127 avatar dornj avatar dragoprime avatar emisticg avatar hrfee avatar joecom7 avatar killianbe avatar ksam3lm avatar maltechx avatar marketos-damigos avatar mastercreeper66 avatar mezzovide avatar mlgz0rn avatar mossh avatar pitah81 avatar rigrig avatar roand0617 avatar synost avatar tacooc avatar tonomis avatar vaheed avatar violetleporid avatar virusperfect avatar woosade avatar xcqi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jfa-go's Issues

Add armhf builds to the Docker container

Hi,

I'm a Raspberry Pi user, and I use Dockstarter to manage my apps. My Jellyfin and Ombi are installed in docker from Dockstarter because they have their armhf versions in the container.

I would like to use them with jfa-go to have unified authentication and account creation form for my friends. But the Docker version only contains the arm64 version of jfa-go.

Could it be possible to add the armhf edition into it ?
Thanks in advance for your help.
Have a great day

routing issue

using :
config.ini

[jellyfin]
; jellyfin server address. can be public, or local for security purposes.
server                      = http://localhost:8096
; publicly accessible jellyfin address for invite form. leave blank to reuse the above address.
public_server               = https://test.com
; the name of the client that will show up in the jellyfin dashboard.
client                      = jfa-go
; timeout of user cache in minutes. set to 0 to disable.
cache_timeout               = 30
; note: emby integration works but is missing some features, such as password resets.
type                        = jellyfin

[ui]
url_base        = /accounts

apache config

<VirtualHost *:443>

    ServerName test.com
    ProxyPreserveHost On

    ProxyPass "/accounts" "http://localhost:8056/accounts"
    ProxyPassReverse "/accounts" "http://localhost:8056/accounts"

    <Location "/accounts">
        Require ip 192.168.0.0/16
        Require ip 10.0.0.0/8
    </Location>
    <Location "/accounts/">
        Require all granted
    </Location>
    <Location "/accounts/invite">
        Require all granted
    </Location>

accessing https://test.com/accounts from public returned 403 forbidden as expected.
but accessing https://test.com/accounts/ and https://test.com/accounts/accounts returned admin page accesible from public domain.

New UI

image

Hello!

Really nice work done on the web! well done!
2 small questions, one what is the purple bar for?
Can the red crosses be updated in green as soon as the password meets the characteristics, a status in real time?

Thanks man :) !

Feature Request: SMTP Username

Is it possible to add an SMTP username in addition to the other SMTP settings? I use the SendGrid SMTP relay and it requires a username to authenticate.

P.S I love the app though!

Some little "bugs" I noticed

  • There's a useless space in the PIN code (sent in email), it's not user friendly to copy/paste it
    image

  • There's no information if you're trying to create a new account with an already used username (just infinite loop an no creation)

  • When I delete a user, could it be possible to delete it in Ombi too ?

  • For Français/Deutsch/Nederlands, in the admin menu, there's only the 3 first field translated :

image

login error : Error: Couldn't connect to jfa-go.

Hi, sorry to bother u again. Found another problem right after setup.

C:\jfa-go\data\confirmation.html
[INFO] 00:06:48 Using Jellyfin server type
[INFO] 00:06:48 Authenticated with http://localhost:8096
[INFO] 00:06:48 Invite daemon started
[INFO] 00:06:48 Starting password reset daemon
[INFO] 00:06:49 Loading routes
[INFO] 00:06:49 Starting router @ 0.0.0.0:8056
[GIN] GET(/) => 200
[GIN] GET(//css/bundle.css) => 200
[GIN] GET(//css/remixicon.css) => 200
[GIN] GET(//js/admin.js) => 200
[GIN] GET(//css/bundle.css) => 200
[GIN] GET(//css/remixicon.css) => 200
[GIN] GET(//banner.svg) => 200
[GIN] GET(//lang/admin) => 404
[GIN] GET(//token/refresh) => 404
[GIN] GET(//favicon-32x32.png) => 200
[GIN] GET(//css/remixicon.woff2?t=1590207869815) => 200
[GIN] GET(//apple-touch-icon.png) => 200
[GIN] GET(//favicon-32x32.png) => 200
[GIN] GET(//token/login) => 404
[GIN] GET(//css/remixicon.woff2?t=1590207869815) => 200

Cannot send emails

Describe the bug

Emails fail to send

To Reproduce

  1. Configure SMTP
  2. Send invite

Logs

[DEBUG] 12:45:51 api.go:487: Generating new invite
[DEBUG] 12:45:51 api.go:513: kBQJ9nEqYkmX6XZL7wth8n: Sending invite email
smtp.gmail.com:465
[ERROR] 12:45:52 api.go:522: kBQJ9nEqYkmX6XZL7wth8n: Failed to send to [email protected]
[DEBUG] 12:45:52 api.go:523: kBQJ9nEqYkmX6XZL7wth8n: Error: 534 5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbv
5.7.14 cpOxZA4Xp5FTmcIhCYBGFcoV98-NZ5cAxBcX_Sa13eoSGf0_2mV_1HSgniJ4Ob0HwdcAf
5.7.14 dHkwVoJVrQPlDTYp6KsLJBh_JO6DVNcsGcObk0t9yxXFbidzQaEGrLUQPlgeN5I0>
5.7.14 Please log in via your web browser and then try again.
5.7.14  Learn more at
5.7.14  https://support.google.com/mail/answer/78754 r23sm185553ejd.56 - gsmtp

Configuration

Email method: SMTP
Sent from (address): [email protected]
Sent from (name): Jellyfin
Username: n/a
Encryption Method: ssl_tls
Server address: smtp.gmail.com
Port: 465
Password: ************

Platform/Version

Linux v0.2.7

error formlang.string

Hi
i've update docker unstable and i've that error ;)

jfa-go version: git (4fc9bdb)
Socket: /tmp/jfa-go.sock
[INFO] 04:29:13 Failed to load language files: json: cannot unmarshal object into Go struct field formLang.strings of type string

[Feature Request] Mass User Management & Existing User Detection

Mass User Management

  • Able to mass update the settings of All Users (both Admin and regular users), Regular users, and Admin users.

Settings that can be updated are:

  • Personal Preferences
  • Library Access
  • Possibly everything in Profile section

This is useful if you have handful of users.

Existing User Detection

  • When someone tries to register an existing user, it will prompt "Username is already in used"

Add custom listen path

Hi @hrfee !
Thanks for your work it's exactly what I needed 😄

Just like in Ombi, Sonarr etc, I would like to have jfa-go listen on a custom path, like http://0.0.0.0:8056/jfa-go

I think it would a very useful feature, as jfa-go is supposed to be used in multiple-services environments.

email confirmation process returned error

email confirmation process returned error, and not redirected to the jf login page, but user is created and welcome email also sent.

[log]
[DEBUG] 19:47:19 api.go:586: Generating new invite
[GIN/DEBUG] 19:47:19: POST(/invites) => 200 in 10.9988ms;
[DEBUG] 19:47:19 auth.go:89: Auth succeeded
[DEBUG] 19:47:19 api.go:788: Invites requested
[GIN/DEBUG] 19:47:19: GET(/invites) => 200 in 1.9984ms;
[DEBUG] 19:47:27 api.go:478: HXjQWeiFv4iJYfhmvDjiXk: New user attempt
[DEBUG] 19:47:27 api.go:360: HXjQWeiFv4iJYfhmvDjiXk: Email confirmation required
[INFO] 19:47:29 HXjQWeiFv4iJYfhmvDjiXk: Sent user confirmation email to [email protected]
[GIN/DEBUG] 19:47:29: POST(/newUser) => 401 in 2.1991211s;
[DEBUG] 19:47:59 daemon.go:37: Daemon: Checking invites
[DEBUG] 19:48:59 daemon.go:37: Daemon: Checking invites
[DEBUG] 19:49:44 api.go:411: Applying settings from profile "default"
[DEBUG] 19:49:44 api.go:417: Applying policy from profile "default"
[DEBUG] 19:49:44 api.go:425: Applying homescreen from profile "default"
[DEBUG] 19:49:44 api.go:454: [email protected]: Sending welcome email to [email protected]
[INFO] 19:49:46 [email protected]: Sent welcome email to [email protected]
[GIN/DEBUG] 19:49:46: GET(/invite/HXjQWeiFv4iJYfhmvDjiXk?key=xxx => 200 in 2.6689999s;
[INFO] 19:49:48 HXjQWeiFv4iJYfhmvDjiXk: New user failed: User [email protected] already exists
[GIN-debug] [WARNING] Headers were already written. Wanted to override status code 401 with 404
[Request Header]
POST /accounts/newUser HTTP/2
Host: test.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0
Accept: */*
Accept-Language: en,id;q=0.7,en-US;q=0.3
Accept-Encoding: gzip, deflate, br
Authorization: Bearer undefined
Content-Type: application/json; charset=UTF-8
Content-Length: 124
Origin: https://test.com
Connection: keep-alive
Referer: https://test.com/accounts/invite/L5oc37skvhq8WszXio7VW5
Cookie: __cfduid=xxx; refresh=xxx
TE: Trailers
[Response Header]
HTTP/2 401 Unauthorized
date: Wed, 10 Feb 2021 12:41:09 GMT
server: Apache/2.4.46 (Win64) LibreSSL/3.2.3
content-type: application/json; charset=utf-8
content-length: 38
X-Firefox-Spdy: h2

Fresh install and bug when u try to delete user on jfa

Hi
It's always me ^^
Fresh install to unstable

when i want delete user in jfa i press delete and nothing working

error :

2020/11/02 18:14:38 [Recovery] 2020/11/02 - 18:14:38 panic recovered:
interface conversion: interface {} is nil, not string
/usr/local/go/src/runtime/iface.go:261 (0x40af6e)
	panicdottypeE: panic(&TypeAssertionError{iface, have, want, ""})
/opt/build/api.go:210 (0xb6f8d8)
/opt/build/api.go:417 (0xb7264c)
/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:161 (0x990e7a)
/opt/build/auth.go:92 (0xb7c9f7)
/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:161 (0x990e7a)
/go/pkg/mod/github.com/gin-gonic/[email protected]/recovery.go:83 (0x9a4b44)
/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:161 (0x990e7a)
/go/pkg/mod/github.com/gin-gonic/[email protected]/logger.go:241 (0x9a3c44)
/go/pkg/mod/github.com/gin-gonic/[email protected]/context.go:161 (0x990e7a)
/go/pkg/mod/github.com/gin-gonic/[email protected]/gin.go:409 (0x99ae99)
/go/pkg/mod/github.com/gin-gonic/[email protected]/gin.go:367 (0x99a58c)
/usr/local/go/src/net/http/server.go:2843 (0x719fc2)
	serverHandler.ServeHTTP: handler.ServeHTTP(rw, req)
/usr/local/go/src/net/http/server.go:1925 (0x7156cc)
	(*conn).serve: serverHandler{c.server}.ServeHTTP(w, w.req)
/usr/local/go/src/runtime/asm_amd64.s:1374 (0x46fcc0)
	goexit: BYTE	$0x90	// NOP) 

2nde : user's email not appear in jfa (work for ombi)

3th : user account in jfa not auto update when we create user, i need to restart docker for synch

if u need something i'm here, i can help u on discord if u want tester :)

Request access for Greek Translation

Hello,

I would like to help with the translation of the project into Greek.

How can I request the addition of the language in weblate?

Thanks in advance.

"Click below to continue to Jellyfin." does nothing

Describe the bug

After creating an account through an invite link, clicking the "Continue" button does nothing.

To Reproduce

  1. create a new invite link
  2. use the invite link to create a new account
    -> Success! (this works fine, the account was created)
  3. press the "continue" button
    Expected result: redirect to Jellyfin
    Actual result: nothing happens

image

Logs
Debug logs:

[GIN/DEBUG] 00:16:27: GET(/invite/aj6DvYcTrB8z3uPtw3xXZ7) => 200 in 2.719397ms; 
[GIN/DEBUG] 00:16:28: GET(/invite/js/modules/modal.js) => 200 in 209.141µs; 
[GIN/DEBUG] 00:16:28: GET(/invite/js/modules/common.js) => 200 in 340.531µs; 
[GIN/DEBUG] 00:16:28: GET(/invite/css/remixicon.css) => 200 in 568.81µs; 
[GIN/DEBUG] 00:16:28: GET(/invite/css/modal.css) => 200 in 231.104µs; 
[GIN/DEBUG] 00:16:28: GET(/favicon-32x32.png) => 200 in 193.891µs; 
[GIN/DEBUG] 00:16:28: GET(/apple-touch-icon.png) => 200 in 202.703µs; 
[DEBUG] 00:16:28 daemon.go:37: Daemon: Checking invites
[DEBUG] 00:16:40 auth.go:89: Auth succeeded
[DEBUG] 00:16:40 api.go:871: Users requested
[DEBUG] 00:16:40 auth.go:89: Auth succeeded
[DEBUG] 00:16:40 api.go:686: Invites requested
[DEBUG] 00:16:41 api.go:302: aj6DvYcTrB8z3uPtw3xXZ7: New user attempt
[DEBUG] 00:16:43 api.go:361: Applying settings from profile "Default"
[DEBUG] 00:16:43 api.go:367: Applying policy from profile "Default"
[DEBUG] 00:16:43 api.go:375: Applying homescreen from profile "Default"
[GIN/DEBUG] 00:16:44: POST(/newUser) => 200 in 3.072307966s; 

The browser console log was empty, and all network requests returned 200

Configuration
The only relevant configs settings I could think of:

[jellyfin]
server        = https://jellyfin.<mydomain>.net
public_server = https://jellyfin.<mydomain>.net

(My Jellyfin server is publicly accessible at https://jellyfin.<mydomain>.net)

Platform/Version
Version 0.2.5
Commit fdc97b4
Running in Docker

Browser: tried in both Firefox 84.0.2 and Chromium 87.0.4280.88

standard_init_linux.go:219: exec user process caused: exec format error

Hello,

I have this docker compose:
version: "2.1"
services:
jfa-go:
image: hrfee/jfa-go
container_name: jfa-go
#environment:
# - PUID=1000
# - PGID=1000
# - TZ=Europe/Lisbon
volumes:
- /mnt/appdata/jfago:/data
- /mnt/appdata/jellyfin:/jf
- /etc/localtime:/etc/localtime
ports:
- 8056:8056
# - 8057:8057
restart: unless-stopped

And I am having this issue:
standard_init_linux.go:219: exec user process caused: exec format error

Can someone help me?

Thanks

Ombi don't remove user

Hi
Ombi don't remove user when i delete him with your app. Email not appear to i need to write manually
thx :)

Reverse Proxy: URL Base being ignored for certain paths

Read the FAQ first!

Describe the bug

Web paths seem to ignore url_base value when looking for banner.svg, bundle.css, remixicon.css and when navigating between invites, accounts and settings. This affects link generation as the link will omit the url_base value if you have switched tabs and therefore fail.

E.g.
Reverse proxy to http://test.com/accounts. After navigating to the other pages (Accounts/Settings) the /accounts is dropped (http://test.com/settings). Navigating back to the invites page will result in the invite url being http:/test.com/invite/xxx.... which will fail to parse.

The invite links do generate properly however if the accounts/settings pages are not accessed thereby not dropping the url_base.

To Reproduce

  1. Startup jfa-admin with the latest docker image (0.2.5) or latest commit (46fe3a7)
  2. Setup url_base to be /accounts
  3. Setup reverse-proxy to link to /accounts (tested with Caddy2 and nginx using the supplied config in the wiki)
  4. Load the page (e.g. http(s)://domain.com/accounts/)

Whilst the interface looks fine and is mostly functional, there are errors in the console for resources.

  1. Navigate to Accounts or Settings page
    URL will change to omit the url_base resulting in /accounts and /settings rather than /url_base/accounts, /url_base/settings

  2. Navigate back to Invites page, url_base will not be visible

  3. Generate invite link, link does not include url_base

Logs
Docker Image Logs - Nothing special. All HTTP 200 responses

Chrome Console Logs - Initial Connect

GET http://host.com/css/bundle.css net::ERR_ABORTED 404 (Not Found)
GET http://host.com/css/remixicon.css net:ERR_ABORTED 404 (Not Found)
GET http://192.168.1.200:8080/banner.svg 404 (Not Found)
GET http://192.168.1.200:8080/accounts/token/refresh 400 (Bad Request)

Configuration
config.ini

url_base = /accounts

nginx config

http {
  server {
    listen 80;
    location ~ ^/accounts/(.*)$ {
      rewrite ^/accounts/(.*) /$1 break;
      proxy_hide_header Content-Security-Policy;
      add_header Content-Security-Policy "";
      proxy_pass http://localhost:8056;
      http2_push_preload on;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Forwarded-Protocol $scheme;
      proxy_set_header X-Forwarded-Host $http_host;
      proxy_buffering off;
    }
  }
}

Caddy2 Caddyfile

host.com {
  route /accounts* {
    uri strip_prefix /accounts
    reverse_proxy localhost:8056
  }
}

Platform/Version
Docker Containers running on Host Debian distributions. Tested with docker:latest and docker:unstable with the same results.
hrfee/jfa-go:latest (0.2.5, fdc97b4)
hrfee/jfa-go:unstable (46fe3a7)

Accessed through Chrome on Linux version 88.0.4324.146

URL BASE BREAK DOCKER UNSTABLE

Hello
the recent modification on the base url broke my jfa, docker unstabe, unable to connect to the admin page. I don't use a template, only a json for the modified lang

ISSUE INSTALL

Hi there,

When I run:
#go run setup.go

returns
#command-line-arguments
./setup.go:13:12: undefined: appContext
./setup.go:16:15: undefined: newJellyfin

Could you help me?

split routing invite page (/accounts/invite) from admin page (/accounts)

what i tried to do was making
/accounts only available from LAN http://192.168.x.x/accounts
and accounts/invite available to WAN https://test.com/invite
but i think its not possible because when i try to access the https://test.com/invite/xxx from WAN this is happen

Untitled

because /accounts isnt accesible from WAN.
i think this kind of configuration should be possible, because it will reduce security risk if /accounts (admin page) not available to public, only /invite.

Blank Users

Version 0.1.7
Commit d31254b

I already moved my data from jf-accounts to jfa-go but seems like it doesn't show existing users. Also, I'm not sure if the New user default should show the users too but it doesn't show it as well.

[GIN/DEBUG] 18:00:16: GET(/getConfig) => 200 in 1.542772ms;
[DEBUG] 18:00:17 auth.go:102: Auth succeeded
[DEBUG] 18:00:17 api.go:466: Users requested
[GIN/DEBUG] 18:00:17: GET(/getUsers) => 200 in 226.439µs;
[DEBUG] 18:00:18 auth.go:102: Auth succeeded
[INFO] 18:00:18 Config requested
[GIN/DEBUG] 18:00:18: GET(/getConfig) => 200 in 926.328µs;
[DEBUG] 18:00:19 auth.go:102: Auth succeeded
[DEBUG] 18:00:19 api.go:466: Users requested
[GIN/DEBUG] 18:00:19: GET(/getUsers) => 200 in 162.136µs;

image

image

Also, I got this error during testing earlier when I tried to use Forgot Password feature:

[INFO] 17:47:10 New password reset for user "userhere"
panic: interface conversion: interface {} is nil, not string

It crashed the jfa-go

Translated email texts are blank

Description
Translated email texts are blank in the unstable docker image (worked fine in the regular image)

To Reproduce
Create a new invitation, sending out an email
-> all the text is missing, the general layout and invite link-button are present though.
Same for notification emails about the account being created

Logs

Nothing unusual shows up
[DEBUG] 19:24:09 auth.go:89: Auth succeeded
[DEBUG] 19:24:09 api.go:485: Generating new invite
[DEBUG] 19:24:09 api.go:511: hLbuYV74gEzh33erGqUUad: Sending invite email
<mail server hostname:port>
[INFO] 19:24:11 hLbuYV74gEzh33erGqUUad: Sent invite email to <email address>
[GIN/DEBUG] 19:24:11: POST(/invites) => 200 in 1.354491768s; 

Configuration

If you see it as necessary, include relevant sections of your config.ini, for example, include [email] and [smtp]|[mailgun] if you have an email issue.

Platform/Version
Docker: hrfee/jfa-go:unstable
Version: git
Commit: 882a346

for admin translation

{
"meta": {
"name": "French (FR)"
},
"strings": {
"invites": "Invite",
"accounts": "Comptes",
"settings": "Reglages,
"theme": "Thème",
"inviteDays": "Jours",
"inviteHours": "Heures",
"inviteMinutes": "Minutes",
"inviteNumberOfUses": "Nombre d'utilisateur",
"warning": "Attention",
"inviteInfiniteUsesWarning": "les invitationsinfinies peuvent être utilisées abusivement",
"inviteSendToEmail": "Envoyer à",
"login": "S'identifier",
"logout": "Se déconecter",
"create": "Créer",
"apply": "Appliquer",
"delete": "Effacer",
"submit": "Soumettre",
"name": "Nom",
"username": "Nom d'utilisateur",
"password": "Mot de passe",
"emailAddress": "Addresse Email",
"lastActiveTime": "Dernière activité",
"from": "De,
"user": "Utilisateur",
"aboutProgram": "A propros",
"version": "Version",
"commitNoun": "Commettre",
"newUser": "Nouvel utilisateur",
"profile": "Profil",
"modifySettings": "Modifier les paramètres",
"modifySettingsDescription": "Appliquez les paramètres à partir d'un profil existant ou obtenez-les directement auprès d'un utilisateur.",
"applyHomescreenLayout": "Appliquer la disposition de l'écran d'accueil",
"sendDeleteNotificationEmail": "Envoyer un e-mail de notification ",
"sendDeleteNotifiationExample": "Votre compte a été supprimé. ",
"settingsRestartRequired": "Redémarrage nécessaire ",
"settingsRestartRequiredDescription": "Un redémarrage est nécessaire pour appliquer certains paramètres que vous avez modifiés. Redémarrer maintenant ou plus tard? "
"settingsApplyRestartLater": "Appliquer, redémarrer plus tard ",
"settingsApplyRestartNow": "Appliquer et redémarrer ",
"settingsApplied": "Paramètres appliqués.",
"settingsRefreshPage": "Actualisez la page dans quelques secondes ",
"settingsRequiredOrRestartMessage": "Remarque: {} indique un champ obligatoire, {R} indique que les modifications nécessitent un redémarrage. ",
"settingsSave": "Sauver",
"ombiUserDefaults": "Paramètres par défaut de l'utilisateur Ombi",
"ombiUserDefaultsDescription": "Créez un utilisateur Ombi et configurez-le, puis sélectionnez-le ci-dessous. Ses paramètres / autorisations seront stockés et appliqués aux nouveaux utilisateurs Ombi créés par jfa-go ",
"userProfiles": "Profils d'utilisateurs",
"userProfilesDescription": "Les profils sont appliqués aux utilisateurs lorsqu'ils créent un compte. Un profil inclut les droits d'accès à la bibliothèque et la disposition de l'écran d'accueil. ",
"userProfilesIsDefault": "Défaut",
"userProfilesLibraries": "Bibliothèques",
"addProfile": "Ajouter un profil",
"addProfileDescription": "Créez un utilisateur Jellyfin et configurez-le, puis sélectionnez-le ci-dessous. Lorsque ce profil est appliqué à une invitation, de nouveaux utilisateurs seront créés avec les paramètres. ",
"addProfileNameOf": "Nom de profil",
"addProfileStoreHomescreenLayout": "Enregistrer la disposition de l'écran d'accueil"
},
"variableStrings": {
"settingsRequiredOrRestartMessage": "Remarque: {
} indique un champ obligatoire, {R} indique que les modifications nécessitent un redémarrage. "
},
"quantityStrings": {
"modifySettingsFor": {
"singular": "Modifier les paramètres pour {n} utilisateur",
"plural": "Modifier les paramètres pour {n} utilisateurs"
},
"deleteNUsers": {
"singular": "Supprimer {n} utilisateur",
"plural": "Supprimer {n} utilisateurs"
},
"addUser": {
"singular": "Ajouter un utilisateur",
"plural": "Ajouter des utilisateurs"
},
"deleteUser": {
"singular": "Supprimer l'utilisateur",
"plural": "Supprimer les utilisateurs"
}
}
}

Invite emails

I can not get the "Invite emails" feature to work. I have setup smtp to connect with my gmail. At first i tried ssl_tsl but i was receiving a "failed to send error".
Changing the port and method to "starttls" cleared the error but i am not receiving any invitation email.

`
[INFO] 08:47:36 Token requested (login attempt)
[GIN] GET(/getToken) => 200
[GIN] GET(/getInvites) => 200
[INFO] 08:48:35 ******************: Sent invite email to [email protected]
[GIN] POST(/generateInvite) => 200
[GIN] GET(/getInvites) => 200

`

Also no path is undefined when attempting to "reset pw"
pwreset

Setting a baseurl for reverse proxy breaks login on both inside and outside network (404 error)

Read the FAQ first!

Describe the bug

As soon as a baseurl is set in the settings ( /accounts ), trying to login will lead to this error:

[GIN] GET(/accounts/token/login) => 404

Both connections from the local network or the outside are broken. No way to connect if baseurl is set up. So I can't use jfa-go with my nginx reverse proxy.

To Reproduce

Install jfa-go 0.3.0
Set a baseurl
It can no longer login

Logs

Logs from jfa-go in debug mode:

`[INFO] 18:56:06 Starting router @ 0.0.0.0:8056
[GIN/DEBUG] 18:56:41: GET(/) => 200 in 24.12524ms;
[GIN/DEBUG] 18:56:41: GET(/css/bundle.css) => 200 in 20.37937ms;
[GIN/DEBUG] 18:56:41: GET(/css/bundle.css) => 200 in 6.337037ms;
[GIN/DEBUG] 18:56:41: GET(/js/admin.js) => 200 in 6.832649ms;
[GIN/DEBUG] 18:56:41: GET(/css/remixicon.css) => 200 in 73.097222ms;
[GIN/DEBUG] 18:56:41: GET(/css/remixicon.css) => 200 in 23.07237ms;
[GIN/DEBUG] 18:56:42: GET(/banner.svg) => 200 in 544.13µs;
[GIN/DEBUG] 18:56:42: GET(/accounts/lang/admin) => 404 in 10.935278ms;
[GIN/DEBUG] 18:56:42: GET(/accounts/token/refresh) => 404 in 9.227796ms;
[GIN/DEBUG] 18:56:42: GET(/css/remixicon.woff2?t=1590207869815) => 200 in 21.925778ms;
[GIN/DEBUG] 18:56:42: GET(/accounts/apple-touch-icon.png) => 404 in 7.966611ms;
[GIN/DEBUG] 18:56:42: GET(/accounts/favicon-32x32.png) => 404 in 8.384926ms;

[GIN/DEBUG] 18:56:48: GET(/accounts/token/login) => 404 in 9.329556ms;
`
The 404 error reproduces at each login tries. It happen on both
[localip]:8056 ;
[localip]:8056/accounts ;
[servername]/accounts

Screenshot:
image

Configuration

Nothing special configured. Did initial setup, connection to Jellyfin successful according the test in initial setup (my Jellyfin is hosted on the same server), and restarted the pi.

Platform/Version

Jfa-go 0.3.0 on Raspberry Pi (armv6) , no Docker.

Cannot create new user from invite

I am running the unstable version in docker and cannot get it to create a new user in jellyfish. I can create the invite but when we try to test it fails to create the user and stays on the account creation page.

form.js:1 GET https://my.domain.tld/invite/0xbd64e0/lang/form 404
(anonymous) @ form.js:1
site.webmanifest:1 GET https://my.domain.tld/invite/0xbd64e0/site.webmanifest 404
site.webmanifest:1 Manifest: Line: 1, column: 1, Syntax error.
rFXZQhzRQQSC7pLBSKHZY5:1 The resource https://my.domain.tld/css/remixicon.css was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriateasvalue and it is preloaded intentionally.
rFXZQhzRQQSC7pLBSKHZY5:1 The resource https://my.domain.tld/css/bundle.css was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriateasvalue and it is preloaded intentionally.
form.js:1 POST https://my.domain.tld/invite/0xbd64e0/newUser 404

Traefik reverse proxy fails when using base URL

Read the FAQ first!

Describe the bug

Traefik reverse proxy fails if url_base set. Works fine on a subdomain, but will show 404 when on a base URL. The page constantly tries to access css/* etc in a loop when loaded.

image
image

To Reproduce

What to do to reproduce the problem.

Logs

jfa-go_1         | [GIN/DEBUG] 17:44:33: GET(/jfa/css/remixicon.css) => 404 in 15.106287ms; 
jfa-go_1         | [GIN/DEBUG] 17:44:33: GET(/jfa/css/bundle.css) => 404 in 4.464636ms; 
jfa-go_1         | [GIN/DEBUG] 17:44:33: GET(/jfa/css/remixicon.css) => 404 in 4.170007ms; 
jfa-go_1         | [GIN/DEBUG] 17:44:33: GET(/jfa/css/bundle.css) => 404 in 4.261646ms; 
jfa-go_1         | [GIN/DEBUG] 17:44:33: GET(/jfa/css/remixicon.css) => 404 in 3.39886ms; 
jfa-go_1         | [GIN/DEBUG] 17:44:33: GET(/jfa/css/bundle.css) => 404 in 4.219146ms; 
jfa-go_1         | [GIN/DEBUG] 17:44:33: GET(/jfa/css/remixicon.css) => 404 in 3.291027ms; 
jfa-go_1         | [GIN/DEBUG] 17:44:33: GET(/jfa/css/bundle.css) => 404 in 3.163965ms; 
jfa-go_1         | [GIN/DEBUG] 17:44:33: GET(/jfa/css/remixicon.css) => 404 in 3.461112ms; 
jfa-go_1         | [GIN/DEBUG] 17:44:33: GET(/jfa/css/bundle.css) => 404 in 3.266258ms; 
jfa-go_1         | [GIN/DEBUG] 17:44:33: GET(/jfa/css/remixicon.css) => 404 in 3.411234ms; 
jfa-go_1         | [GIN/DEBUG] 17:44:33: GET(/jfa/css/bundle.css) => 404 in 3.760947ms; 
jfa-go_1         | [GIN/DEBUG] 17:44:33: GET(/jfa/css/remixicon.css) => 404 in 3.579617ms; 
jfa-go_1         | [GIN/DEBUG] 17:44:33: GET(/jfa/css/bundle.css) => 404 in 3.373669ms; 
jfa-go_1         | [GIN/DEBUG] 17:44:33: GET(/jfa/css/remixicon.css) => 404 in 3.285983ms; 
jfa-go_1         | [GIN/DEBUG] 17:44:33: GET(/jfa/css/bundle.css) => 404 in 3.738771ms; 

Configuration

url_base set to /jfa

docker config:

jfa-go:
    image: hrfee/jfa-go:unstable
    restart: always
    user: 1000:1000
    volumes:
      - /opt/docker/jfa-go:/data
      - /opt/docker/jellyfin:/jf
      - /etc/localtime:/etc/localtime:ro
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.jfa-go.rule=Host(`services.${DOMAIN}`) && PathPrefix(`/jfa`)"
      - "traefik.http.routers.jfa-go.tls=true"

Platform/Version

Docker, latest git as of 11/02/2021 17:30 GMT

Translation

The Admin page, Account creation form and Emails can now be translated at this weblate instance.

Unable to run jfa-go

Describe the bug

Can't run jfa-go with the latest release, get an error

To Reproduce

On fresh install, run jfa-go

Logs

Error output: -bash: /usr/bin/jfa-go: cannot execute binary file: Exec format error

Configuration

None, cannot get to web interface

Platform/Version

Linux v0.2.7

Debug sent email

Need to debug sent email to the user. Since my smtp provider rewrite the url for invite/confirmation button i cant see if the url sent to the smtp provider if its correct or not. Any way to do this?

For mail txt translation

I was mounting the volume /opt/jfa-go/data to edit and translate mail messages, but it may be usefull to share my translation :)

created.txt

Un utilisateur a été créé avec ce code {{ .code }}.

Nom: {{ .username }}
Adresse: {{ .address }} 
Date: {{ .time }}  // "Heure" if it's only minutes and hours, I didn't check it

invite.txt :

Salut {{ .username }},

Quelqu'un vient de demander une réïnitialisation du mot de passe via Jellyfin.
Si c'était bien toi, renseigne le code PIN en dessous.
Ce code expirera le {{ .expiry_date }}, à {{ .expiry_time }} UTC, soit dans {{ .expires_in }}.
Si ce n'était pas toi, tu peux ignorer ce mail.

PIN: {{ .pin }}

{{ .message }}

deleted.txt

Ton compte Jellyfin a été supprimé.
Motif : {{ .reason }}

{{ .message }}

invite-mail.txt :

Salut,
Tu as été invité à rejoindre Jellyfin.
Pour continuer, suis le lien en dessous.
L'invitation expirera le {{ .expiry_date }}, à {{ .expiry_time }}, soit dans {{ .expires_in }}, alors fais vite !

{{ .invite_link }}

unable to run jfa-go

tried to run the program after few days but got below mentioned error, kindly take a look and revert back with solution

�[35mjfa-go version: �[0;97m0.0.0�[0;35m (�[0;37mfa96f21�[0;35m)
�[0mSocket: C:\Users\MrKhan\AppData\Local\Temp\jfa-go.sock
[INFO] 19:52:23 �[35m

WARNING: Don't use debug mode in production, as it exposes pprof on the network.

�[0m
[DEBUG] 19:52:23 main.go:359: Loaded config file "C:\Users\MrKhan\AppData\Roaming\jfa-go\config.ini"
[DEBUG] 19:52:23 main.go:369: Loading storage
[DEBUG] 19:52:23 main.go:426: Using css file "bs4-jf.css"
[DEBUG] 19:52:23 main.go:441: Using Jellyfin for authentication
2020/11/21 19:52:23 Failed to authenticate with Jellyfin @ http://localhost:8096: Timed out
[ERROR] 19:52:23 main.go:458: Failed to authenticate with Jellyfin @ http://localhost:8096: Code 0

[Feature Request] Invite-specific User Default

I'm sorry for opening another feature request after my previous one.

As the title says, possibility to set a New User Defaults to specific invite.

By default it will use the New User Defaults in settings.


Also, I'll include this here. There seems to be a bug in User creation notification. Ticking it shows this in logs:

Bug 1

[DEBUG] 15:13:52 api.go:526: qrMiurBYiFPgTN7Mggtw3H: Set "notify-creation" to false for [email protected]

Sometimes ticking User creation gives this:

Bug 2

[DEBUG] 15:15:50 api.go:487: qrMiurBYiFPgTN7Mggtw3H: Notification settings change requested
[DEBUG] 15:15:50 api.go:521: qrMiurBYiFPgTN7Mggtw3H: Set "notify-expiry" to false for XXXXX
[DEBUG] 15:15:50 api.go:526: qrMiurBYiFPgTN7Mggtw3H: Set "notify-creation" to false for XXXXX

To reproduce Bug 2:
Turn on Expiry first then after that turn on User creation

Run under path of Jellyfin

Short and simple:

  • I am using NGINX to rev-proxy to Jellyfin.
  • I would love to run jfa-go.

Can I run it in a sub-address? i.e.: cloud.mydomain.tld/jfa-go/?
I assume all I'd have to do is something like...

location /jfa-go {
  proxy_pass http://localhost:12345
  # ...
}

But I'd just like to make sure that this is supported :)

user profile not working

new invite with user profile. account created, but user profile not applied.

jellyfin 10.7.0-RC3
jfa-go 0.3.0

For admin translation

{
"meta": {
"name": "French (FR)"
},
"strings": {
"invites": "Invite",
"accounts": "Comptes",
"settings": "Reglages,
"theme": "Thème",
"inviteDays": "Jours",
"inviteHours": "Heures",
"inviteMinutes": "Minutes",
"inviteNumberOfUses": "Nombre d'utilisateur",
"warning": "Attention",
"inviteInfiniteUsesWarning": "les invitationsinfinies peuvent être utilisées abusivement",
"inviteSendToEmail": "Envoyer à",
"login": "S'identifier",
"logout": "Se déconecter",
"create": "Créer",
"apply": "Appliquer",
"delete": "Effacer",
"submit": "Soumettre",
"name": "Nom",
"username": "Nom d'utilisateur",
"password": "Mot de passe",
"emailAddress": "Addresse Email",
"lastActiveTime": "Dernière activité",
"from": "De,
"user": "Utilisateur",
"aboutProgram": "A propros",
"version": "Version",
"commitNoun": "Commettre",
"newUser": "Nouvel utilisateur",
"profile": "Profil",
"modifySettings": "Modifier les paramètres",
"modifySettingsDescription": "Appliquez les paramètres à partir d'un profil existant ou obtenez-les directement auprès d'un utilisateur.",
"applyHomescreenLayout": "Appliquer la disposition de l'écran d'accueil",
"sendDeleteNotificationEmail": "Envoyer un e-mail de notification ",
"sendDeleteNotifiationExample": "Votre compte a été supprimé. ",
"settingsRestartRequired": "Redémarrage nécessaire ",
"settingsRestartRequiredDescription": "Un redémarrage est nécessaire pour appliquer certains paramètres que vous avez modifiés. Redémarrer maintenant ou plus tard? "
"settingsApplyRestartLater": "Appliquer, redémarrer plus tard ",
"settingsApplyRestartNow": "Appliquer et redémarrer ",
"settingsApplied": "Paramètres appliqués.",
"settingsRefreshPage": "Actualisez la page dans quelques secondes ",
"settingsRequiredOrRestartMessage": "Remarque: {} indique un champ obligatoire, {R} indique que les modifications nécessitent un redémarrage. ",
"settingsSave": "Sauver",
"ombiUserDefaults": "Paramètres par défaut de l'utilisateur Ombi",
"ombiUserDefaultsDescription": "Créez un utilisateur Ombi et configurez-le, puis sélectionnez-le ci-dessous. Ses paramètres / autorisations seront stockés et appliqués aux nouveaux utilisateurs Ombi créés par jfa-go ",
"userProfiles": "Profils d'utilisateurs",
"userProfilesDescription": "Les profils sont appliqués aux utilisateurs lorsqu'ils créent un compte. Un profil inclut les droits d'accès à la bibliothèque et la disposition de l'écran d'accueil. ",
"userProfilesIsDefault": "Défaut",
"userProfilesLibraries": "Bibliothèques",
"addProfile": "Ajouter un profil",
"addProfileDescription": "Créez un utilisateur Jellyfin et configurez-le, puis sélectionnez-le ci-dessous. Lorsque ce profil est appliqué à une invitation, de nouveaux utilisateurs seront créés avec les paramètres. ",
"addProfileNameOf": "Nom de profil",
"addProfileStoreHomescreenLayout": "Enregistrer la disposition de l'écran d'accueil"
},
"variableStrings": {
"settingsRequiredOrRestartMessage": "Remarque: {
} indique un champ obligatoire, {R} indique que les modifications nécessitent un redémarrage. "
},
"quantityStrings": {
"modifySettingsFor": {
"singular": "Modifier les paramètres pour {n} utilisateur",
"plural": "Modifier les paramètres pour {n} utilisateurs"
},
"deleteNUsers": {
"singular": "Supprimer {n} utilisateur",
"plural": "Supprimer {n} utilisateurs"
},
"addUser": {
"singular": "Ajouter un utilisateur",
"plural": "Ajouter des utilisateurs"
},
"deleteUser": {
"singular": "Supprimer l'utilisateur",
"plural": "Supprimer les utilisateurs"
}
}
}

Feature request: integration with Ombi

It would be helpful if jfa could integrate with Ombi's user database, and when a user is signed up for Jellyfin they are added to Ombi with their email and username/password.

Unable to send email

Updated to jfa-go, but unfortunately I am still unable to send email below is the error which I got while I pressed send invitation button. Checked it with two different email providers but got same error.
jfa-go

[ERROR] 01:23:36 api.go:517: vDb5eBFUrqH29HtbDzWRyN: Failed to send to [email protected]
[GIN] POST(/invites) => 200
[GIN] GET(/invites) => 200
[GIN] GET(/users) => 200
[INFO] 01:24:03 Config requested
[GIN] GET(/config) => 200
[GIN] GET(/invites) => 200
[INFO] 01:24:36 Config modification requested
[GIN] POST(/config) => 200
[INFO] 01:24:42 Config modification requested
[GIN] POST(/config) => 200
[ERROR] 01:24:53 api.go:517: LAqE4ipG9i4NRYBnjeHruc: Failed to send to [email protected]
[GIN] POST(/invites) => 200
[GIN] GET(/invites) => 200
[GIN] GET(/invites) => 200
[ERROR] 01:25:23 api.go:517: gSX8d84MF3Beb3vYgSBfRm: Failed to send to [email protected]
[GIN] POST(/invites) => 200
[GIN] GET(/invites) => 200
[GIN] GET(/invites) => 200
[GIN] GET(/invites) => 200
[GIN] GET(/invites) => 200

NEW FEATURES : Verification password

Hi,
here is an idea to embellish jfa-go, add a written password verification. Too many users are wrong, so if checking the match no more problem
:)
have a nice day

Config file does not get updated when features are added

The issue

When a new feature is added and you try to enable it in the web UI, the settings will not save.
This seems to be because config files from an older version do not have the required fields present and they aren't appended automatically.

A workaround is to delete redo the entire configuration with the setup page as this generates an entirely new config file with all the options present, but it's really not that obvious to spot if you're not a poweruser/dev who knows where to look.

I remember pondering about this problem when I was working on my own go application config file. I oped to use json and a struct for the config and just json serialized/deserialized the entire struct. Had the advantage that missing fields would just get added with a default value.
Maybe something similar could be applicable here: The entire config with all fields is saved with default values, regardless of which fields were present during load.

Since you're using a text based file and I haven't had the chance to look at the exact implementation (I remember it was maybe key-value based), I can't tell if this approach would be effective for you also.

To Reproduce

Use an older config file, for example pre-ombi integration and try to enable ombi integration with the web interface.

Platform/Version

  • Dockerized
  • Version 0.1.9
  • Commit 4e86288

Some features if you need ideas :)

Once again, thank's for your work, it's so usefull to manage my jellyfin :)

Some ideas :
• A mail confirmation with the username used (a lot of users forget it and try to use their email address !)
• Add a private name note to my invitation (just to manage it more easily)

Infinite validation loading from facebook redirection link

I posted a link in our facebook private group to invite my friends, and a lot of them have a bug, when they clic on this link, a infinite loading when validating their account.
Their only solution is to copy/paste this link.

I personally couldn't reproduce this bug, but i noticed it's when their web browser didn't remove the facebook redirection URL part.

Of course their account is not created when there is this infinite loading.

Installation ubuntu

How to install in Ubuntu 20.4? It is very necessary, but I can not install. I copied the git, and what next?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.