1
0
mirror of https://github.com/hrfee/jfa-go.git synced 2024-12-28 20:10:11 +00:00
Commit Graph

297 Commits

Author SHA1 Message Date
68aedf07ae
discord: pad, underline invite link 2023-06-19 18:03:35 +01:00
094f7cea94
discord: use placeholder if guild icon not available
also centers the invite on the form/user discord modal.
2023-06-19 17:48:24 +01:00
765a749959
discord: modularize user-facing code
will be done for others too, code for discord account linking in form
and userpage is now in ts/modules/account-linking.ts as a configurable
class.
2023-06-19 11:58:09 +01:00
cf7983ca11
userpage: add/edit discord
works identically to on the form, would like to eventually factor out
the discord/telegram/matrix verif stuff so it can be shared between the
two pages though.
2023-06-18 21:38:12 +01:00
609039baeb
userpage: change email (+ confirmation)
edit/add button added for email address. Confirmation works too.
2023-06-18 19:38:09 +01:00
5beeeb958b
userpage: show expiry 2023-06-18 12:27:18 +01:00
a22f032924
userpage: show and allow modification of contact methods 2023-06-17 17:27:44 +01:00
d3c5feaf1b
userpage: use form langfile, move login strings to common
login-related stuff was moved into common using the langmover script, so
that the user page doesn't have to use the admin language files.
2023-06-17 12:48:28 +01:00
726acb9c29
userpage: initial page
login, lang, and theme work. Currently only makes a request to a
hello-world type endpoint to verify auth works. Accessible at
/my/account.
2023-06-16 14:43:37 +01:00
54fde33a20
admin: a little more refactoring
all theme functionality is now in theme.ts, and the tab stuff has been
changed a little but kept in admin as it won't be in use anywhere else
for the time being.
2023-06-16 13:43:34 +01:00
b8cc75c6b4
login: modularize frontend code
all in ts/modules/login.ts
2023-06-15 23:52:16 +01:00
4014e93155
signup: add reCAPTCHA
can be enabled in settings > captcha, requires a site key & secret key
from google. New wiki article explains getting these. currently a little
ugly looking on the page itself, hopefully fixable.
2023-06-15 17:11:27 +01:00
bf12016315
accounts: make filter names translatable 2023-06-14 19:59:38 +01:00
b544931ee5
accounts: fix id filtering, make string translatable 2023-06-14 18:57:30 +01:00
708d382a3f
accounts: fix hiding of search options header for default sort 2023-06-14 18:43:46 +01:00
6ddd09ff1f
accounts: add header to "actions" and "search options" 2023-06-14 18:38:12 +01:00
ddc560e862
accounts: move filter button, add clear search
filter button now on left due to the dropdown being huge.
2023-06-14 17:36:41 +01:00
6f452c62de
accounts: fix search bugs, adjust top bar layout
search bar is now massive with a small filter button next to it.
Action buttons are on their own row.
Also fixed dealing with going from a search with filters in to an empty
one, search() is now called for any change at all to the input.
2023-06-14 17:15:24 +01:00
76bb95098c
accounts: add list of available filters, fix deletion of existing date filters
The "Filters" button gives a list of filterable fields, and buttons to
select the type, including true/false, text match, and on/before/after a
date. When clicked, the appropriate values are put in the search box and
the cursor is placed if any input is needed.

Dates and strings are also now matched correctly, and case-insensitively when
deleting a filter.
2023-06-14 14:01:05 +01:00
8ac3bb9711
accounts: show list row of search filters, click to remove
any filters in your search box will show as little button/chip things on
the row below. Clicking them will remove them from the search.
2023-06-13 22:27:08 +01:00
ff62f8821a
accounts: filter by date, with =, <, >
Uses "any-date-parser" library to understand more date/time types.
Format is: "<field>:<equals, less than, greater than><date>", where the
part after the colon uses =, <, >. Omitting a symbol is the same as
using "=".
2023-06-13 17:19:24 +01:00
90c433443f
accounts: filter by string field, general search
string fields can now be searched by with the "<field>:<value>" syntax,
also added back a better general search, that supports essentially all
string fields, including Jellyfin ID.
2023-06-13 13:55:40 +01:00
8a37663c89
accounts: start advanced search filter support
uses the same format "<field>:<value>", but supports quoted <values>
(allows for spaces in them), and lays groundwork to support string and
date-type field filtering. Truthiness is supported, meaning you can
check if an email is set with "email:yes" for example.
2023-06-13 13:39:13 +01:00
bc4015ac50
accounts: add indicator of sorted column at top of list
When clicking on a column to sort by it, a button with "Sorting By:
<column>" appears. Clicking it will reset the sort, which defaults for
ascending username.
2023-06-13 12:13:12 +01:00
f13c0d78a8
accounts: ability to sort by columns
click on column header in account table to sort by it, click again to
change sort direction. Works for all of them.
2023-06-13 11:07:56 +01:00
3e52beef14
update node deps, fix resulting issues 2023-06-12 18:44:10 +01:00
e4f03fac4b
setup: report panic errors to user
many issues occur with setup, all this does is tell the user something
bad happened and to check the logs. Might help with solving issues.
Also fixed some now invalid typescript.
2023-06-11 15:11:00 +01:00
27ef7ce560
css: revert global change to absolute position for dropdowns
changing dropdowns to always have absolute positioning (in c187b94)
caused issues with all other dropdowns, where neighbors were positioned
below and hidden. adding the "over-top" class to a dropdown now gives
it absolute positioning.
2023-02-05 00:49:13 +00:00
775ebd3b1e
Accounts: Unlink Telegram/Discord/Matrix through cog
Added an unlinking section to the little cog dropdown next to users so
that one can remove and re-link a different account for a Jellyfin user.
Also adjusted padding in the dropdown.
2023-02-05 00:23:16 +00:00
eb85ee4d35
add option to auto redirect to jellyfin (or given link)
if enabled (General>Auto redirect on success), the user will not have to
    click "continue" on the form or creation success page and will
    insted be redirected. For #242.
2023-02-02 10:34:22 +00:00
Aleksa Siriški
f50596c4a1
fixed setExpiry()
The bug was that setExpiry didn't work if account was enabled and didn't have an expiry already.
2023-02-01 23:11:21 +01:00
2722e8482d
Invites: unique email/ID requirement
"Require unique ..." Settings (`require_unique` in relevant sections of
config.ini) are now available for email/discord/telegram/matrix. An
error is shown on the invite form if a non-unique address/ID is used.
This was on my kanban without a link to an issue, so i'm guessing it was
requested on Discord.
2023-02-01 15:11:10 +00:00
ac25c9cd7f
accounts: Show "contact through" cog when only email is given"
one portion of #233: When adding an email address to an account, the
admin (for now) will manually have to enable its use by clicking the cog icon and
enabling "contact through email". Only for now, currently some other
unfinished work is stopping me from committing the other portion of code
for this issue.
2023-01-30 14:00:29 +00:00
cebde9d4c0
setup: report errors when saving config 2022-02-03 19:19:21 +00:00
Harvey Tindall
e814af1af5
Merge pull request #191 from LubricantJam/main
Further Mobile Optimisations
2022-01-30 16:27:33 +00:00
ecbff16a88
modal: change transition
now a simple fade-in/fade-out, which is part of tailwind.config.js
rather than modal.css.
2022-01-30 16:24:40 +00:00
James Finch
93b1e9c371 Fixed dark text on dark mode. 2022-01-28 22:33:30 +00:00
25451eb763
form: show radios for only linked contact methods 2022-01-27 16:56:21 +00:00
dbefb80f63
form: reliably disable submit button, communicate if account linking is required 2022-01-27 16:48:46 +00:00
4b02960fd1
form: add captcha regen button
lots of false negatives so this is a solution for now.

Also the registering of each discord command is now logged for debugging
purposes.
2022-01-26 22:14:16 +00:00
987e0ddd4e
accounts: show "Set expiry" button for non-disabled users
previously hidden in a dropdown on the "re-enable" button for disabled
users only, now can be used on active ones.
2022-01-25 15:27:16 +00:00
1c942186aa
form: fix captcha
wouldn't compile (not sure why i didn't notice) and after fixing, the
check was being performed after deleting the invite so would always
fail.
2022-01-13 20:40:58 +00:00
d9f8785372
form: add CAPTCHAs
Enabled in Settings > Captchas, shows a captcha on the account creation
form.
2022-01-10 01:55:48 +00:00
6448a7db9e
accounts: allow giving individual users jfa-go access
New "Access jfa-go" column allows you to select users for jfa-go access.
New "Allow All" setting allows all Jellyfin users access, as disabling
"Admin Only" no longer does this.
2022-01-09 19:37:17 +00:00
4024334c0c
accounts: add ability to label users
press the pen icon next to their username to add a nick-name to remind
you who they are.
2022-01-08 16:20:31 +00:00
9874dce520
merge tailwind and upgraded a17t
a17t v0.10 became a tailwind plugin rather than standalone css, and made
some other changes. Much of the original custom CSS now uses tailwind
classes, and there have been some other UI changes.
2022-01-04 20:28:36 +00:00
2f50ab36fd
pad table and some other stuff 2022-01-04 20:09:51 +00:00
6124b9b3f3
switch accounts tab table to white bg 2022-01-04 19:22:49 +00:00
a8ce35c13f
fixed height on table rows 2022-01-01 03:29:09 +00:00
26d9864051
fix layout on remaining html 2022-01-01 02:58:26 +00:00
a3a22d353c
lang: make loadLangSelector respect existing params 2022-01-01 02:54:02 +00:00
dd5eecf9f9
fix textareas 2022-01-01 02:17:24 +00:00
7e0e0b0520
fix form layout 2021-12-31 18:52:03 +00:00
cf91ee62ed
change invite color in light mode 2021-12-31 16:07:21 +00:00
2d3a5c739c
fix about page 2021-12-31 02:22:23 +00:00
3dbb993d35
fix button layout on accounts tab 2021-12-31 02:03:29 +00:00
508168b49e
fix more oddities 2021-12-31 01:51:42 +00:00
0e1cbd7e7b
fix m-half in ts 2021-12-31 00:26:11 +00:00
e73ecb7a52
fix some padding issues 2021-12-31 00:22:28 +00:00
acc8892f26
switch to DOM based variant adding 2021-12-30 23:52:53 +00:00
51b59ae103
settings: add button to get logs 2021-12-30 17:54:27 +00:00
18ae03554f
tailwind: upgrade a17t, somewhat functional dark mode
instead of adding dark: variants to each element, a preprocessor script
adds them. still needs to be implemented to typescript.
2021-12-30 00:49:43 +00:00
aedea1bea6
admin: move theme icon to top left; add icon 2021-12-24 19:34:18 +00:00
360c25d084
accounts: hide "Send PWR" when link resets disabled
for #182.
2021-12-24 19:05:48 +00:00
0fd4f516b1
email: Add option to require on sign-up
for #172
2021-12-20 18:50:48 +00:00
73c7f22bd1
messages: add option to show/hide linking on registration
In each of the Discord/Telegram/Matrix sections, the "Show on user
registration" option can be disabled to hide the "Link xxx" button on
the registration form. This is useful is you're only using these
registrations for admin purposes.
2021-11-17 16:49:26 +00:00
b39ad5c688
site: add features, dono button 2021-11-14 23:06:15 +00:00
9092f42834
remove vulnerable node deps, cleanup 2021-11-14 14:50:40 +00:00
4da1c8c2b6
Ombi: Integrate with profiles, Retire user defaults
NOTE: If you previously used the Ombi integration, New ombi users
won't be created until you set this up.

Ombi settings can be added to a profile in Settings > User Profiles.
The "Modify settings" options will now apply to ombi if the selected
profile has ombi settings.
2021-11-13 18:53:53 +00:00
c988239fa8
accounts: allow yes/no in search 2021-11-13 17:00:18 +00:00
0bf8cd65cd
add option to set new expiry for when re-enabling users
for this reddit comment: https://www.reddit.com/r/jellyfin/comments/nc6tsi/tip_jfago_is_awesome/hgh0yet/?context=3
2021-10-18 20:39:23 +01:00
eeb9b07bce
admin: add manual "Send Password reset" to accounts tab
Only appears with Reset links enabled.
Pressing this sends a PWR link to the users selected.
if one user is selected, or if one of you selected users doesn't have a
method of contact, a link is given to the admin to send to them
manually.
2021-10-13 15:04:22 +01:00
9885c25a2e
email: cleanup; allow re-enabling of custom email without changes 2021-07-24 19:49:08 +01:00
27ad7a4cf7
setup: add descriptive "test connection" messages; disable next button
for #129.
2021-07-24 14:15:10 +01:00
6b4d4da455
accounts: show cog when user known for disabled chatbot 2021-07-20 15:45:00 +01:00
b10b558358
announcements: add {username}
also works in the subject.
2021-07-16 19:39:06 +01:00
3e55cd1e31
accounts: add templates for announcements
you can now save announcements as templates, and then use them later by
hovering over the "Announce" button, as well as delete them.
2021-07-10 16:43:27 +01:00
b682685a3b
update weblate link 2021-06-30 18:06:31 +01:00
b8d9d22545
add landing page for jfa-go.com; move wiki
located in `site/`. Wiki now @ wiki.jfa-go.com.
2021-06-30 00:32:03 +01:00
fc0e86ffd8
change wiki mentions to new location
now at jfa-go.com.
2021-06-23 22:31:11 +01:00
729fc7baf7
Setup: add messages, set password via link
Also changed some section names to use "messages" instead of "emails".
Since I haven't added Discord/Telegram/Matrix bot setup, I mentioned you
can do these later and linked to the setup guides. Sections related to
email mostly now depend on [messages]/enabled now too. Set password via
link has been added to password resets.
2021-06-23 15:44:48 +01:00
21125033ff
Add copy button to crash page 2021-06-13 15:36:36 +01:00
b538922c05
Show log on log.Fatal calls, provide "sanitized" version, fix goreleaser
Sanitization means change anything in double quotes to "CENSORED". A
notice is included telling the user to check for themselves as well.
2021-06-11 23:28:21 +01:00
0a71d5b216
PWR: Add option to set new password from magic link
For #103. Enable in Settings > Password Resets. Also changes the user's
ombi password.
2021-06-07 13:49:05 +01:00
0014db44f0
form: module-ize password validator 2021-06-05 22:17:10 +01:00
375022ba95
Matrix: Add token generation wizard
Pressing the "+" next to matrix in settings allows you to enter a
homeserver, username and password to enable matrix and generate an
access token.
2021-05-30 23:09:20 +01:00
75fdf6ec3d
Matrix: Connect on accounts tab, customizable chat topic 2021-05-30 11:47:41 +01:00
59ebf52fe2
Matrix: Show matrix on accounts page 2021-05-30 00:05:46 +01:00
e97b90d4d7
Matrix: Setup bot, add PIN verification
PIN is verified but not used currently. Works a little different than
the others, you input your matrix user ID and then the PIN is sent to
you. The bot doesn't support E2EE, so the bot being the first one to
message ensures the chat is unencrypted.
2021-05-29 17:43:11 +01:00
1f9af8df89
Discord: Add option to provide server invite
When enabled, a temporary one-use invite is created and shown to the
user on the account creation form.
2021-05-23 19:50:03 +01:00
ce8cdced4d
Discord: Fix GetUsers, add invite messages
The "Send to" box on the invite tab now accepts username#discriminator,
and a search icon has been added which opens a search window similar to
the one on the accounts tab. DiscordDaemon.GetUsers was also very broken
and wouldn't work with full username#discriminator, that's been fixed.
2021-05-23 16:16:31 +01:00
b8e3fc636c
Accounts: Fix cog on telegram when no discord linked
Also, disable telegram & discord if an auth/initialization error occurs.
2021-05-23 14:48:36 +01:00
168b217553
Discord: fix user links 2021-05-23 14:32:35 +01:00
7d698d63e3
Discord: split discord search into own module
Will also be used for "Send to" on the invite page.
2021-05-23 14:22:18 +01:00
e98c9b46f1
Accounts: no wrapping for contact dropdown 2021-05-22 23:18:43 +01:00
b3ce7acfcb
Accounts: Always inline icons, only one settings cog
Admin chip, email edit bot and contact method cog icon are now always inline.
Only one cog icon is shown now.
2021-05-22 23:05:53 +01:00
9fac79b1f0
Discord: Add users via accounts tab
Doesn't require a PIN like Telegram, as we can access a list of guild
users with the GuildMembers intent set. This has to be enabled under
Bot > Priviliged Gateway intents on the developer portal.
2021-05-22 21:42:15 +01:00
35d407afef
Discord: remove @ from username 2021-05-22 15:31:25 +01:00
a6447165b7
add email notify enable/disable; remove (de)hyphening
hyphen/dehyphen conflicted with new migration for email contact
preference, and it's been a while since this has been an issue so i've
just commented it out for now.
2021-05-21 22:46:46 +01:00
f8f5f35cc1
PIN verification, notifications, multiple notif providers
Discord, Email & Telegram can be enabled, although email is always
enabled right now (will fix). Also apparently markdown hyperlinks don't
work in Discord, eventually will implement something to convert them to
embeds.
2021-05-21 21:35:25 +01:00
c560ec0f9f
Merge branch 'main' into telegram 2021-05-08 16:08:20 +01:00
71554e0c85
Telegram: Change user's contact method in accounts
By clicking the cog next to the telegram username, one can select
whether to contact through telegram or email.
2021-05-08 15:53:42 +01:00
b91302ddf8
Invite: fix "none yet" message on users created 2021-05-07 22:41:51 +01:00
ea0293bd4e
Split some settings into new "messages" section
Most email dependant sections now depend on this. Also renamed more
email things.
2021-05-07 21:53:29 +01:00
2d93b3b7ee
Telegram: Allow admin to add telegram contact
Works in the same way as on the form, but can now be done in the
accounts tab.
2021-05-07 18:20:35 +01:00
0f41d1e6cf
Telegram: Display username on accounts tab 2021-05-07 17:01:22 +01:00
716d6a931a
Telegram: Send messages via telegram
Most messages are now sent as plaintext via telegram when suitable.
2021-05-07 16:06:47 +01:00
72bf280e2d
telegram: Fix UI and store useful Telegram info
Creation now works, and language preferences made before signup are
kept. telegram file storage now uses the Jellyfin ID as a key, which
makes much more sense. Also added radios to select preferred notification
method (email/telegram) as well, which the admin will soon be able to
change also.
2021-05-07 14:32:51 +01:00
326c2cf70a
modal: use arrow function to avoid 'this' naming collision 2021-05-07 14:30:30 +01:00
2816c6277d
modal: add onopen/onclose 2021-05-07 13:22:07 +01:00
99875b9176
almost complete telegram user verification
When signing up, the user is given a pin code which they send to a
telegram bot. This provides user verification, but more importantly
allows the bot to message the user, as the Telegram API requires the
user to interact with the bot before it can do the opposite.

The bot should recognize the correct language, but a /lang command is
also provided to change it.

The verification process is pretty much functional but ui is still
broken, and it isn't properly integrated yet.
2021-05-07 01:08:12 +01:00
0e21942cd6
add hard restart for updates on *nix
reincarnates app.Restart() removed in
bbb0568cc4 as app.HardRestart().
2021-05-03 20:08:23 +01:00
b2b5083102
fix checkCheckCount on accounts reload 2021-05-03 18:55:46 +01:00
c0f316d049
add preview to Announcements 2021-05-03 18:35:27 +01:00
2c6d08319b
add typechecking step to Makefile when DEBUG=on 2021-05-03 18:32:56 +01:00
43effd0c32
add reset link option to setup 2021-05-02 14:15:03 +01:00
22a0d8925d
Remove unused typescript, update config readme 2021-05-02 13:23:33 +01:00
90a2c1f2e7
Fix email editor for other email types 2021-04-22 19:16:41 +01:00
8fdab39b18
use templateEmail and show conditionals in editor 2021-04-15 15:34:17 +01:00
55e21f8be3
accounts: add user enable/disable & emails 2021-04-12 21:28:36 +01:00
3dc0df0ac2
fix user expiry when only month field set 2021-04-09 13:35:46 +01:00
d701c5f27d
add months field to invites & expiry 2021-04-08 20:43:01 +01:00
871bc9f396
use proper date formatting on form for expiry 2021-04-07 15:17:15 +01:00
66b7df7cde
use selected language for time format, add manual selector
You can now choose between 12h and 24h time in the top left language
menu. Your preference is stored by the browser for future visits.
2021-04-07 15:09:44 +01:00
7196361cf6
(hopefully) get proper locale from browser 2021-04-07 14:05:17 +01:00
3f8414c70a
use unix timestamp for inv created & usedBy
usedBy is still stored as a string in invites.json to cope with existing
invites with times stored formatted. knz/strtime requires cgo for
strptime, so it has been replaced with the native itchyny/timefmt-go.
2021-04-06 21:25:44 +01:00
6ec2186bdf
switch accounts tab to unix times
should now respect the client's locale.
2021-04-06 20:53:30 +01:00
9370913ace
add password reset link option
When enabled (in Settings > Password Resets), a magic link will be sent
instead of a PIN when the user tries reset their password. By doing
this the user doesn't have to keep the Jellyfin tab open to enter the
code.
2021-03-30 22:41:28 +01:00
a0a25d64f1
rewrite stripmd, fix some typos
doesn't work any better, but more efficient and doesn't require
eyebleach after viewing.
2021-03-26 23:13:19 +00:00
1704ae8cb1
fix language link color on dark theme 2021-03-20 18:24:35 +00:00
de92516d52
add updates section to setup 2021-03-20 18:00:01 +00:00
c556878f11
hide password resets on setup when emby selected 2021-03-18 16:47:13 +00:00
111533fa2d
add advanced setting type with toggle in settings 2021-03-15 22:51:17 +00:00
03247ddef8
Add accounts search 2021-03-13 14:26:29 +00:00
e6e5b0f3cf
respect browser/os dark mode preference 2021-03-10 19:42:40 +00:00
92332206f0
add basic update functionality
If enabled, jfa-go pings buildrone (hosted at builds.hrfee.pw) every 30
min for new updates. If there is one, it gets information (and if
applicable, a binary) from the appropriate source (buildrone, github, or
dockerhub) and displays it on the admin page. You can switch update
channels between stable and unstable. For binary releases, updates are
downloaded automatically and installed when the user presses update.

Since this obviously introduces some "phone-home" functionality into
jfa-go, I just want to say IPs are not and will not be logged by
buildrone, although I may later introduce functionality to give a rough
idea of the number of users (again, no IPs stored). The whole thing can
also be turned off in settings.
2021-03-07 15:23:44 +00:00
1ec5d2ca3f
add disabled badge, extend expiry button to accounts 2021-02-28 17:52:24 +00:00
1e9d184508
implement user expiry functionality
All works now, but i'll add a field on the accounts tab for users with
an expiry, as well as a 'disabled' badge.
2021-02-28 15:41:06 +00:00
2934832a98
implement frontend for user expiry/duration
this will add an optional validity period to users, where their account
will be disabled (or deleted) a specified amount of time after they
created it.
2021-02-28 00:44:28 +00:00
40fc5e9604
Fix email editor when plaintext setting enabled 2021-02-22 16:40:37 +00:00
52d9cda61a
Move email rendering to browser
the email preview no longer has a delay after each change. This also
avoids a race condition in which the email currently being edited could
be actually sent.
2021-02-22 00:43:36 +00:00
d1b1b90de3
Add email list accessible by edit button in settings 2021-02-21 15:51:42 +00:00
058cac2e7b
implement email editor w/ live(?) preview
not accessible in the ui currently, but the object is available as
window.ee for testing.
2021-02-20 22:49:59 +00:00
fa433c88a8
add announcement emails
After selecting users in the accounts tab, you can press 'Announce',
then write a subject and message (with markdown), and an email will be
sent to each selected user.
2021-02-18 14:58:53 +00:00
91d3d2596e
fix broken invite links 2021-02-11 13:49:06 +00:00
192c9a4764
account for lack of trailing slash in url 2021-02-09 20:45:35 +00:00
218882b7c6
remove debug console.log 2021-02-08 11:50:58 +00:00
c09ffb49e7
switch emails to normal text when not editing
fixes padding on small screens.
2021-02-05 18:24:27 +00:00
2c8be42bbc
fix invite links with URL base 2021-02-05 13:33:34 +00:00
6691ae27f4
fix navigation with URL base set 2021-02-05 13:31:56 +00:00