Commit Graph

2702 Commits

Author SHA1 Message Date
a61c9c5e98 Reorgranised blade view files to form a convention
- Primarily moved and re-organised view files.
- Included readme within views to document the convention.
- Fixed some issues with page field select list in previous commit.
- Tweaked some route names while going through.
- Split some views out further.

Closes #2805
2021-08-22 13:17:32 +01:00
2036618fbd Merge branch 'master' of github.com:BookStackApp/BookStack 2021-08-21 20:25:22 +01:00
ce6e25b341 Added lithuanian option to locale system 2021-08-21 20:24:58 +01:00
73ebe571a1 New Crowdin updates (#2892)
* New translations entities.php (Spanish, Argentina)

* New translations entities.php (German Informal)

* New translations activities.php (Lithuanian)

* New translations settings.php (Lithuanian)

* New translations passwords.php (Lithuanian)

* New translations errors.php (Lithuanian)

* New translations entities.php (Lithuanian)

* New translations common.php (Lithuanian)

* New translations auth.php (Lithuanian)

* New translations validation.php (Spanish, Argentina)

* New translations settings.php (Spanish, Argentina)

* New translations common.php (Spanish, Argentina)

* New translations auth.php (Spanish, Argentina)

* New translations activities.php (Spanish, Argentina)

* New translations validation.php (Lithuanian)
2021-08-21 20:24:31 +01:00
a274406038 Merge pull request #2868 from ffranchina/master
Adding Lithuanian language
2021-08-21 20:05:35 +01:00
1a6293ce24 Optimized loading of page/chapter URLs to be a little more efficient
- Loaded book_slug as part of chapter/page queries instead of books
 being loaded in afterwards.
- Removed unused page method.
- Updated some page queries to load specific attributes.
2021-08-21 19:59:55 +01:00
8db047de70 New Crowdin updates (#2807)
* New translations entities.php (Chinese Simplified)

* New translations settings.php (Chinese Simplified)

* New translations common.php (Chinese Simplified)

* New translations entities.php (Chinese Simplified)

* New translations settings.php (Portuguese)

* New translations activities.php (Portuguese)

* New translations common.php (Portuguese)

* New translations entities.php (Portuguese)

* New translations settings.php (French)

* New translations entities.php (Latvian)

* New translations common.php (Latvian)

* New translations common.php (Italian)

* New translations settings.php (Italian)

* New translations entities.php (Italian)

* New translations entities.php (German)

* New translations entities.php (Dutch)

* New translations settings.php (German)

* New translations settings.php (Dutch)

* New translations common.php (German)

* New translations common.php (Dutch)

* New translations settings.php (Italian)

* New translations activities.php (Persian)

* New translations activities.php (Persian)

* New translations auth.php (Persian)

* New translations auth.php (Persian)

* New translations validation.php (Persian)

* New translations validation.php (Persian)

* New translations common.php (Persian)

* New translations pagination.php (Persian)

* New translations passwords.php (Persian)

* New translations common.php (Persian)

* New translations components.php (Persian)

* New translations errors.php (Persian)

* New translations errors.php (Persian)

* New translations entities.php (Persian)

* New translations activities.php (Norwegian Bokmal)

* New translations common.php (Norwegian Bokmal)

* New translations entities.php (Norwegian Bokmal)

* New translations errors.php (Norwegian Bokmal)

* New translations settings.php (Norwegian Bokmal)

* New translations settings.php (Norwegian Bokmal)

* New translations activities.php (Polish)

* New translations common.php (Polish)

* New translations errors.php (Polish)

* New translations settings.php (Polish)

* New translations activities.php (Czech)

* New translations activities.php (Czech)

* New translations auth.php (Czech)

* New translations common.php (Czech)

* New translations entities.php (Czech)

* New translations errors.php (Czech)

* New translations passwords.php (Czech)

* New translations auth.php (Czech)

* New translations entities.php (Czech)

* New translations settings.php (Czech)

* New translations validation.php (Czech)

* New translations auth.php (Czech)

* New translations auth.php (Czech)

* New translations entities.php (Czech)

* New translations settings.php (Czech)

* New translations components.php (Czech)

* New translations activities.php (Czech)

* New translations activities.php (Indonesian)

* New translations entities.php (Indonesian)

* New translations settings.php (Indonesian)

* New translations errors.php (Vietnamese)

* New translations common.php (Vietnamese)

* New translations activities.php (Chinese Traditional)

* New translations common.php (Chinese Traditional)

* New translations entities.php (Chinese Traditional)

* New translations errors.php (Chinese Traditional)

* New translations errors.php (Chinese Traditional)

* New translations settings.php (Chinese Traditional)

* New translations common.php (Portuguese, Brazilian)

* New translations common.php (Portuguese, Brazilian)

* New translations activities.php (Chinese Traditional)

* New translations common.php (Chinese Simplified)

* New translations activities.php (Ukrainian)

* New translations auth.php (Ukrainian)

* New translations common.php (Ukrainian)

* New translations settings.php (Ukrainian)

* New translations validation.php (Ukrainian)

* New translations activities.php (Chinese Simplified)

* New translations auth.php (Chinese Simplified)

* New translations settings.php (Chinese Simplified)

* New translations settings.php (Turkish)

* New translations validation.php (Chinese Simplified)

* New translations auth.php (Chinese Traditional)

* New translations validation.php (Chinese Traditional)

* New translations activities.php (Vietnamese)

* New translations auth.php (Vietnamese)

* New translations common.php (Vietnamese)

* New translations settings.php (Vietnamese)

* New translations validation.php (Vietnamese)

* New translations validation.php (Turkish)

* New translations common.php (Turkish)

* New translations auth.php (Portuguese, Brazilian)

* New translations auth.php (Slovenian)

* New translations validation.php (Russian)

* New translations activities.php (Slovak)

* New translations auth.php (Slovak)

* New translations common.php (Slovak)

* New translations settings.php (Slovak)

* New translations validation.php (Slovak)

* New translations activities.php (Slovenian)

* New translations common.php (Slovenian)

* New translations auth.php (Turkish)

* New translations settings.php (Slovenian)

* New translations validation.php (Slovenian)

* New translations activities.php (Swedish)

* New translations auth.php (Swedish)

* New translations common.php (Swedish)

* New translations settings.php (Swedish)

* New translations validation.php (Swedish)

* New translations activities.php (Turkish)

* New translations activities.php (Portuguese, Brazilian)

* New translations settings.php (Portuguese, Brazilian)

* New translations common.php (Russian)

* New translations validation.php (Bosnian)

* New translations common.php (Latvian)

* New translations settings.php (Latvian)

* New translations validation.php (Latvian)

* New translations activities.php (Bosnian)

* New translations auth.php (Bosnian)

* New translations common.php (Bosnian)

* New translations settings.php (Bosnian)

* New translations activities.php (Norwegian Bokmal)

* New translations activities.php (Latvian)

* New translations auth.php (Norwegian Bokmal)

* New translations common.php (Norwegian Bokmal)

* New translations settings.php (Norwegian Bokmal)

* New translations validation.php (Norwegian Bokmal)

* New translations activities.php (German Informal)

* New translations auth.php (German Informal)

* New translations common.php (German Informal)

* New translations settings.php (German Informal)

* New translations auth.php (Latvian)

* New translations validation.php (Croatian)

* New translations validation.php (Portuguese, Brazilian)

* New translations settings.php (Persian)

* New translations activities.php (Indonesian)

* New translations auth.php (Indonesian)

* New translations common.php (Indonesian)

* New translations settings.php (Indonesian)

* New translations validation.php (Indonesian)

* New translations activities.php (Persian)

* New translations auth.php (Persian)

* New translations common.php (Persian)

* New translations validation.php (Persian)

* New translations settings.php (Croatian)

* New translations activities.php (Spanish, Argentina)

* New translations auth.php (Spanish, Argentina)

* New translations common.php (Spanish, Argentina)

* New translations settings.php (Spanish, Argentina)

* New translations validation.php (Spanish, Argentina)

* New translations activities.php (Croatian)

* New translations auth.php (Croatian)

* New translations common.php (Croatian)

* New translations settings.php (Russian)

* New translations auth.php (Russian)

* New translations common.php (Chinese Traditional)

* New translations common.php (Czech)

* New translations validation.php (Bulgarian)

* New translations activities.php (Catalan)

* New translations auth.php (Catalan)

* New translations common.php (Catalan)

* New translations settings.php (Catalan)

* New translations validation.php (Catalan)

* New translations auth.php (Czech)

* New translations settings.php (Czech)

* New translations common.php (Bulgarian)

* New translations validation.php (Czech)

* New translations activities.php (Danish)

* New translations auth.php (Danish)

* New translations common.php (Danish)

* New translations settings.php (Danish)

* New translations validation.php (Danish)

* New translations activities.php (German)

* New translations auth.php (German)

* New translations settings.php (Bulgarian)

* New translations auth.php (Bulgarian)

* New translations settings.php (German)

* New translations activities.php (Spanish)

* New translations settings.php (Chinese Traditional)

* New translations common.php (Portuguese, Brazilian)

* New translations activities.php (Czech)

* New translations activities.php (French)

* New translations auth.php (French)

* New translations common.php (French)

* New translations settings.php (French)

* New translations validation.php (French)

* New translations auth.php (Spanish)

* New translations activities.php (Bulgarian)

* New translations common.php (Spanish)

* New translations settings.php (Spanish)

* New translations validation.php (Spanish)

* New translations activities.php (Arabic)

* New translations auth.php (Arabic)

* New translations common.php (Arabic)

* New translations settings.php (Arabic)

* New translations validation.php (Arabic)

* New translations common.php (German)

* New translations validation.php (German)

* New translations activities.php (Russian)

* New translations activities.php (Polish)

* New translations settings.php (Korean)

* New translations validation.php (Korean)

* New translations activities.php (Dutch)

* New translations auth.php (Dutch)

* New translations common.php (Dutch)

* New translations settings.php (Dutch)

* New translations validation.php (Dutch)

* New translations auth.php (Polish)

* New translations auth.php (Korean)

* New translations common.php (Polish)

* New translations settings.php (Polish)

* New translations validation.php (Polish)

* New translations activities.php (Portuguese)

* New translations auth.php (Portuguese)

* New translations common.php (Portuguese)

* New translations settings.php (Portuguese)

* New translations validation.php (Portuguese)

* New translations common.php (Korean)

* New translations activities.php (Korean)

* New translations activities.php (Hebrew)

* New translations validation.php (Hungarian)

* New translations auth.php (Hebrew)

* New translations common.php (Hebrew)

* New translations settings.php (Hebrew)

* New translations validation.php (Hebrew)

* New translations activities.php (Hungarian)

* New translations auth.php (Hungarian)

* New translations common.php (Hungarian)

* New translations settings.php (Hungarian)

* New translations activities.php (Italian)

* New translations validation.php (Japanese)

* New translations auth.php (Italian)

* New translations common.php (Italian)

* New translations settings.php (Italian)

* New translations validation.php (Italian)

* New translations activities.php (Japanese)

* New translations auth.php (Japanese)

* New translations common.php (Japanese)

* New translations settings.php (Japanese)

* New translations validation.php (German Informal)

* New translations activities.php (Spanish)

* New translations auth.php (Spanish)

* New translations common.php (Spanish)

* New translations settings.php (Spanish)

* New translations validation.php (Spanish)
2021-08-21 18:57:32 +01:00
b005acdd6c Updated pages API to not clear content if not provided
Can now update page details without supplying page content.
Added test to cover.

Closes #2856
2021-08-21 18:54:38 +01:00
822fea4303 Updated js dependancies 2021-08-21 15:53:45 +01:00
ac110eb6b2 Merge pull request #2890 from BookStackApp/analysis-kabPRy
Apply fixes from StyleCI
2021-08-21 15:50:16 +01:00
64785ed9da Apply fixes from StyleCI 2021-08-21 14:49:40 +00:00
cac31b2074 Merge pull request #2827 from BookStackApp/mfa
MFA System
2021-08-21 15:47:55 +01:00
2d306949b5 Cleaned some unused elements during testing 2021-08-21 15:38:43 +01:00
78e94bb003 Improved login redirect and setup experience
- Updated auth system for mfa to not update intended URL so that the
  user is not redirected to mfa setup after eventual login.
- Added notification for users setting up MFA, after setup when
  redirected back to login screen to advise that MFA setup was complete
  but they need to login again.
- Updated some bits of wording to display better.
2021-08-21 15:14:24 +01:00
622ea03c65 Added attribution for new libs added
- Also hard-set TOTP algorithm with comment from testing others.
2021-08-08 14:52:29 +01:00
f1f59cf086 Extracted text to translation files
Also aligned mfa method delete route to align with others.
2021-08-08 14:24:44 +01:00
773be963ba Updated auth changes to work with remember me 2021-08-07 22:32:19 +01:00
ef9354a0cb Verified mfa session expires on logout
Since sessions are invalidated upon logout.
2021-08-07 21:53:13 +01:00
39a205ed28 Quick test of email confirmation routes and fix of tests 2021-08-07 21:18:59 +01:00
70f39757b1 Updated API auth handling of email confirmations
Email confirmations are now done within the guard during auth checking
instead of at the middleware layer.
2021-08-05 22:07:08 +01:00
c429cf7818 Merge branch 'v21.05.x' 2021-08-04 21:32:29 +01:00
65ebffa002 Updated when github actions run 2021-08-04 21:22:53 +01:00
a04064f981 Updated php dependancies up minor versions 2021-08-04 21:10:55 +01:00
7d19057e68 Fixed issue where user id still used on profile pages
Updated to use slugs and added testing to cover.
2021-08-04 21:08:51 +01:00
0de0507137 Added vb.net code language option
Related to #2869
2021-08-04 20:56:34 +01:00
7a8954ee65 Fixed audit log user dropdown usability issue
User search input blur would trigger the submission of the search
filters which would cause strange thing where you'd click on a search
filtered user which would blur the input hence submit, but the user
would think they've clicked the user and the page would reload but the
input had not updated at that point.

Related to #2863
2021-08-04 20:48:23 +01:00
a3ad840bdd Adding Lithuanian language 2021-08-03 23:42:34 +02:00
9b271e559f Worked on MFA setup required flow
- Restructured some of the route naming to be a little more consistent.
- Moved the routes about to be more logically in one place.
- Created a new middleware to handle the auth of people that should be
  allowed access to mfa setup routes, since these could be used by
  existing logged in users or by people needing to setup MFA on access.
- Added testing to cover MFA setup required flow.
- Added TTL and method tracking to session last-login tracking system.
2021-08-02 22:02:25 +01:00
4597069083 Added Backup code verification logic
Also added testing to cover as part of this in addition to adding the
core backup code handling required.

Also added the standardised translations for switching mfa mode and
adding testing for this switching.
2021-08-02 16:35:37 +01:00
a3f19ebe96 Added TOTP verification upon access 2021-08-02 15:04:43 +01:00
1af5bbf3f7 Added login redirect system to confirm/mfa
Also continued a bit on the MFA verification system.
Moved some MFA routes to public space using updated login service to get
the current user that is either logged in or last attempted login (With
correct creds).
2021-07-18 16:52:31 +01:00
1278fb4969 Started moving MFA and email confirmation to new login flow
Instead of being soley middleware based.
2021-07-17 18:24:50 +01:00
9249addb5c Updated all login events to route through single service 2021-07-17 17:45:00 +01:00
78f9c01519 Started on some MFA access-time checks
Discovered some difficult edge cases:
- User image loading in header bar when using local_secure storage
- 404s showing user-specific visible content due to content listing on
  404 page since user is in semi-logged in state. Maybe need to go
  through and change up how logins are handled to centralise and
  provide us better control at login time to prevent any auth level.
2021-07-16 23:23:36 +01:00
f696aa5eea Added the ability to remove an MFA method
Includes testing to cover
2021-07-14 21:27:21 +01:00
7c86c26cd0 Added command to reset user MFA
Includes tests to cover the command.
2021-07-14 20:50:36 +01:00
cfc0c593db Added MFA indicator to user list
Also fixed issue with showing incorrect MFA method count on user edit
page changes done in last commit
2021-07-14 20:19:05 +01:00
bb43acef21 Added MFA setup link on user edit view 2021-07-14 20:06:41 +01:00
09c2814dc7 Added role based MFA control
- Added new DB column for control and role updated create/update actions.
- Created new middleware as a start to actual enforcement logic.
- Added indicator to role list of whether MFA is enforced.
2021-07-03 13:34:48 +01:00
1c43602f4b Merge branch 'v21.05.x' 2021-07-03 12:02:13 +01:00
b1ee1a856f Updated php dependancies for minor release 2021-07-03 11:57:32 +01:00
4da72aa267 Fixed issue with translation loading without theme
System was using the empty state return from theme_path,
when no theme was configured, for loading in languages
which would result in the root path being looked up upon.

This changes the theme_path helper to return null in cases a theme
is not configured instead of empty string to help prevent assumed
return path will be legitimate, and to help enforce error case
handling.

For #2836
2021-07-03 11:53:46 +01:00
529971c534 Added backup code setup flow
- Includes testing to cover flow.
- Moved TOTP logic to its own controller.
- Added some extra totp tests.
2021-07-02 20:53:33 +01:00
83c8f73142 Covered TOTP setup with testing 2021-07-02 19:51:30 +01:00
916a82616f Complete base flow for TOTP setup
- Includes DB storage and code validation.
- Extracted TOTP work to its own service file.
- Still needs testing to cover this side of things.
2021-06-30 22:10:02 +01:00
d25cd83d8e Added TOTP generation view and started verification stage
Also updated MFA setup view to have settings-like listed interface to
make it possible to extend with extra options in the future.
2021-06-29 22:06:49 +01:00
efb6a6b457 Started barebones work of MFA system 2021-06-28 22:02:45 +01:00
f295ab87b4 Updated comments of theme event to match usage 2021-06-28 21:17:10 +01:00
ca8be9af3c Swapped PHPCS for StyleCI
Trying out StyleCI as an automated easy way to ensure code style is
consistent across the PHP codebase.
PHPCS+PHPCBF was good but I wouldn't run it enough then I'd get paranoid
about running it with pending PRs. Better to let the robots stay on top
of things.
2021-06-26 16:40:29 +01:00
0155525945 Merge pull request #2820 from BookStackApp/analysis-6470L9
Apply fixes from StyleCI
2021-06-26 16:28:09 +01:00