Commit graph

588 commits

Author SHA1 Message Date
Christoph Wurst
7269766e05
Merge pull request #36363 from nextcloud/feat/app-framework/usesession-attribute
feat(app-framework): Add UseSession attribute to replace annotation
2023-01-27 16:59:14 +01:00
Julien Veyssier
8766e4f242
handle and return touchProvider errors
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2023-01-27 11:10:56 +01:00
Julien Veyssier
946a1af9fd
add 'last used timestamp' management for reference providers
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2023-01-27 11:10:56 +01:00
Julien Veyssier
6431c5a559
extend the reference API for the new link picker
- add 2 interfaces for discoverable and searchable reference providers
- new OCS route to get info on discoverable/searchable reference providers
- new abstract ADiscoverableReferenceProvider that only implements jsonSerialize
- listen to RenderReferenceEvent to inject provider list with initial state

Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2023-01-27 11:10:55 +01:00
Christoph Wurst
20e00cdf17
feat(app-framework): Add UseSession attribute to replace annotation
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-01-27 09:40:35 +01:00
Côme Chilliet
f5c361cf44
composer run cs:fix
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-01-20 11:45:08 +01:00
Simon L
06a572ff55
Merge pull request #27492 from cyclops8456/feature/24301-remove-can-install-on-occ-maintenance-install
Remove the CAN_INSTALL file when occ maintenance:install is complete
2023-01-18 19:53:02 +01:00
Christoph Wurst
20fcfb5739
feat(app framework)!: Inject services into controller methods
Usually Nextcloud DI goes through constructor injection. This has the
implication that each instance of a class builds the full DI tree. That
is the injected services, their services, etc. Occasionally there is a
service that is only needed for one controller method. Then the DI tree
is build regardless if used or not.

If services are injected into the method, we only build the DI tree if
that method gets executed.

This is also how Laravel allows injection.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-01-18 14:00:38 +01:00
Christoph Wurst
f22101d421
Fix login loop if login CSRF fails and user is not logged in
If CSRF fails but the user is logged in that they probably logged in in
another tab. This is fine. We can just redirect.
If CSRF fails and the user is also not logged in then something is
fishy. E.g. because Nextcloud contantly regenrates the session and the
CSRF token and the user is stuck in an endless login loop.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-01-18 09:39:17 +01:00
Alex Harpin
644df591b1 Rename canInstallExists method and add new method for removal
Rename canInstallExists to shouldRemoveCanInstallFile to cover removal of this file for non-git channels and logging any failure to remove it.

Add new method to detect if this file exists during web based installation.

Signed-off-by: Alex Harpin <development@landsofshadow.co.uk>
2023-01-10 11:59:06 +00:00
Alex Harpin
72af140723 Move CAN_INSTALL check to method and remove unlink from SetupController
Move the check for the CAN_INSTALL file in the config directory to a method in the Setup class and remove the call to unlink from the SetupController as this in now handled in the Setup class.

Signed-off-by: Alex Harpin <development@landsofshadow.co.uk>
2023-01-10 11:59:06 +00:00
Joas Schilling
b4a29644cc
Add a const for the max user password length
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-01-04 11:23:43 +01:00
Joas Schilling
9cfaf27142
Also limit the password length on reset
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-01-03 16:36:01 +01:00
Christoph Wurst
138deec333
chore: Make the LoginController strict
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2022-12-15 10:52:28 +01:00
Daniel Kesselberg
b5f6ecfb00 Fix GH-33187
$this->userId is null when loggedin via app password.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2022-12-12 19:12:18 +00:00
Richard Steinmetz
fc4dd3041c
Fix default redirect on successful WebAuthn login
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2022-12-05 12:51:53 +01:00
Simon L
23f336761e
Merge pull request #35385 from pulsejet/patch-previewtype
Fix type of PreviewController::$userId
2022-12-03 19:09:37 +01:00
Carl Schwan
6c76443e89 Revert unrelated change from #34940
Probably a left over from an experience that I added by mistake in the
change

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-12-02 11:29:38 +01:00
Varun Patil
136b2c5949 Fix type of PreviewController::$userId
Can be null if not logged in; currently crashes

Signed-off-by: Varun Patil <varunpatil@ucla.edu>
2022-11-24 02:33:31 -08:00
Carl Schwan
86d9626901 Add mastodon personal info field
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-11-21 16:28:56 +01:00
Julius Härtl
8629d8e44f
Check share attributes on preview endpoints
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-10-25 11:35:31 +02:00
Julius Härtl
11bedf1c3b
Use proper error pages instead of always redirecting
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-10-21 15:12:21 +02:00
John Molakvoæ (skjnldsv)
bd303388e3
Cleanup ie and old edge properties
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2022-10-19 10:02:51 +02:00
Côme Chilliet
71ee292650 Add rate limiting on lost password emails
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-18 14:49:02 +00:00
Julien Veyssier
6e03d99ab8
fix reference preview endpoint when no server-side cache configured
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2022-10-13 15:18:21 +02:00
Joas Schilling
0642d17e4f
Fix URLs on reference resolving
The vue-richtext app currently sends leading spaces if they are in the text.

Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-09-30 09:40:43 +02:00
Julius Härtl
f4a2ab137b Add cache header for image endpoint if link previews
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-09-28 13:21:28 +00:00
Julius Härtl
5fa7563bf9
Add endpoint to fetch a cachable reference data
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-09-26 17:44:49 +02:00
Carl Schwan
66a7a89898 Add api to load additional section in profile page
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-09-14 12:55:40 +02:00
Carl Schwan
bc9a488046
Update avatars on update
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-09-09 14:23:41 +02:00
Carl Schwan
76d0165330
Dark theme for guest avatar
And better caching policy

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-09-09 13:37:51 +02:00
Carl Schwan
f98ae2b5b0
Avatar new style
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-09-09 13:37:51 +02:00
Christopher Ng
f44d2586b1 Remake profile picture saving with Vue
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2022-09-02 02:22:57 +00:00
Julius Härtl
1ab66988bc
Inject all dependnencies and increase cache timeout
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-08-31 18:02:57 +02:00
Julius Härtl
80f6a5834a
Refactor cache handling
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-08-31 16:24:35 +02:00
Julius Härtl
a392235e23
Cleanup
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-08-31 16:24:33 +02:00
Julius Härtl
0ce0d37ac1
Implement image caching
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-08-31 16:20:06 +02:00
Julius Härtl
de3e541fde
API for fetching reference metadata
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-08-31 16:20:05 +02:00
Joas Schilling
85eb3b2920
Fix wording of undeliverable push notifications
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-08-31 12:42:31 +02:00
Christopher Ng
9ba11ecefd Improve handling of profile page
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2022-08-22 19:28:35 +00:00
NoSleep82
b03aedf128
Update core/Controller/LostController.php
Co-authored-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
Signed-off-by: NoSleep82 <52562874+NoSleep82@users.noreply.github.com>
2022-08-21 13:16:23 +02:00
NoSleep82
61548c520b
Update LostController.php
i would be useful to know who is trying to reset the password (misspelled username or email, ex user or some sort of attack)

Signed-off-by: NoSleep82 <52562874+NoSleep82@users.noreply.github.com>
2022-08-19 18:30:32 +02:00
Carl Schwan
253118298d Redesign guest pages for better accessibility
- Use white box and put content on it
- Improve focus indicator

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-07-27 10:43:21 +02:00
Christopher Ng
92500e810f Identify the login page explicitly by the page title
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2022-07-20 23:55:50 +00:00
Thomas Citharel
abe5ff3654
Make LostController use IInitialState and LoggerInterface
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-06-10 16:41:41 +02:00
Thomas Citharel
44e13848a1
Add password reset typed events
These hooks are only used in the Encryption app from what I can see.

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-06-10 16:41:41 +02:00
Christopher Ng
57c66bf7cb Use Image class from public API
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2022-06-02 00:37:36 +00:00
Carl Schwan
b70c6a128f Update core to PHP 7.4 standard
- Typed properties
- Port to LoggerInterface

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-05-20 22:18:06 +02:00
Joas Schilling
6084d691b0
Merge pull request #32375 from nextcloud/bugfix/noid/show-user-account-on-grant-loginflow-step
Show user account on grant loginflow step
2022-05-16 11:18:22 +02:00
Joas Schilling
db1813f640
Show user account on grant loginflow step
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-05-13 10:50:30 +02:00
Thomas Citharel
232322fe06
Modernize contacts menu
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-12 18:31:59 +02:00
John Molakvoæ
3c6253f965
Remove old legacy SvgController and IconsCacher
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2022-05-10 23:24:07 +02:00
Joas Schilling
6e4d721278
Expose shareWithDisplayNameUnique also on autocomplete endpoint
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-05-03 12:51:23 +02:00
Vincent Petry
576e4e8f2a
Merge pull request #31592 from nextcloud/fix/direct-arg-flow-v2
Add direct arg to login flow
2022-03-29 18:21:40 +02:00
Vincent Petry
80388663af Add direct arg to login flow
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
Co-Authored-by: Carl Schwan <carl@carlschwan.eu>
2022-03-28 10:28:45 +02:00
Joas Schilling
5f75d2e104
Remove old shortening
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-03-23 21:42:29 +01:00
Joas Schilling
a0c7798c7d
Limit the length of app password names
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-03-23 10:47:56 +01:00
Christopher Ng
1fc0b4320c Add global profile toggle config
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2022-03-18 02:55:12 +00:00
Carl Schwan
36721a8d0d Fix caching of the user avatar
Now on firefox/safari it is only refetched once a day. On Chrom{e,ium}
we keep the previous behavior of maybe refetching it more often.

This also notify the user about this behavior when they upload an avatar
picture.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-02-25 14:24:07 +01:00
Carl Schwan
7dddbd0c35 Improve caching policy
* Cache css with version in url. This makes most js and css requests to
  be cached by the browser

* Force caching previews, the etag is in the url so that if the propfind
  gives a new etag, we will refresh it otherwise it's no use to try to
  fetch the new etag and do tons of DB queries

Tested with firefox and 'debug' => false (important so that the js/css
urls are generated with ?v= parameter)

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-02-16 11:35:57 +01:00
Joas Schilling
6dd60b6d30
Only allow avatars in 64 and 512 pixel size
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-02-07 16:47:51 +01:00
Christopher Ng
22768769c3 Improve installation pages
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2022-01-14 19:59:46 +00:00
John Molakvoæ (skjnldsv)
b664aad7ab
Move bundles to /dist
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2022-01-08 10:11:58 +01:00
John Molakvoæ
bfaeb6ae64
Merge pull request #29531 from nextcloud/bugfix/noid/flow-auth-v2-apptoken 2021-12-30 08:14:23 +01:00
Julius Härtl
e00173a71b
Also pass user on flow v2 landing
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-12-29 11:52:31 +01:00
Julius Härtl
61dd1d3d97
Pass username prefill through unauthenticated request redirects
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-12-29 11:52:31 +01:00
Julius Härtl
aa3f4bdf63
Allow using an app token to login with v2 flow auth
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-12-03 08:37:42 +01:00
Christopher Ng
be5b9e36cd Hide user status from public
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2021-11-23 22:58:44 +00:00
Côme Chilliet
5a20e20e9e
Fix errors in AvatarController when data() returns null
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2021-11-23 09:29:01 +01:00
Christoph Wurst
c8caba265f
Explicitly allow some routes without 2FA
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-11-17 18:42:21 +01:00
Joas Schilling
fa036b2001
Move common logic to share manager
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-11-09 10:10:53 +01:00
Christopher Ng
f4307ef4b1 Respect user enumeration settings on profile
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2021-11-05 21:33:03 +00:00
Vitor Mattos
d613b32045
add check isFairUseOfFreePushService on login
Signed-off-by: Vitor Mattos <vitor@php.rio>
2021-10-23 00:54:50 +02:00
Joas Schilling
3ce3c0f117
Add an OCS endpoint for the hovercard contact actions
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-10-20 10:22:40 +02:00
Christopher Ng
309354852f Profile backend
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2021-10-19 04:59:35 +00:00
Julius Härtl
d68f028251
Merge pull request #27733 from PhrozenByte/enhancement/noid/IURLGenerator-linkToDefaultPageUrl 2021-10-05 13:06:59 +02:00
Pytal
3a94d7c2ea
Merge pull request #28794 from nextcloud/fix/noid/guest-activation-pwd-reset-disabled
allow using of disabled password reset mechanism for special cases
2021-09-14 18:29:10 -07:00
Arthur Schiwon
a843d3c5db
allow using of disabled password reset mechanism for special cases
- LostController has three endpoints
- door opener email() still rejects
- resetform(), reachable from mail, checks the token first and may report
  that password reset is disabled
- setPassword() got its check removed as it is behind CSFR anyway and still
  requires a valid token
- this allows special cases like activating a freshly created guest account

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-09-10 22:48:16 +02:00
Arthur Schiwon
6857136f06
fixes missing prefix to validate password reset token
- also fixes the test which missed asserting the presence of it

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-09-10 19:06:50 +02:00
Arthur Schiwon
a20de15b43
add a job to clean up expired verification tokens
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-09-09 14:03:35 +02:00
Arthur Schiwon
19cc757531
move verification token logic out of lost password controller
- to make it reusable
- needed for local email verification

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-09-09 14:03:29 +02:00
Lukas Reschke
2994dbe215
Fix codestyle
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2021-09-06 10:53:01 +00:00
Lukas Reschke
dd054b2ee8
Check if SVG path is valid
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2021-09-06 10:46:12 +00:00
Christoph Wurst
4b0e18ae1b
Merge pull request #27294 from pjft/patch-2
Update TwoFactorChallengeController.php
2021-08-19 12:40:40 +02:00
Jonas Meurer
7c76e85dde
Use IURLGenerator function to get value of \OC::$WEBROOT global
Signed-off-by: Jonas Meurer <jonas@freesources.org>
2021-08-16 10:56:47 +02:00
Jonas Meurer
5f5bacde8f
UnifiedSearchController: strip webroot from URL before finding a route
This should fix route matching in UnifiedSearchController on setups with
Nextcloud in a subfolder (webroot).

Fixes: #24144
Signed-off-by: Jonas Meurer <jonas@freesources.org>
2021-08-16 10:56:25 +02:00
Daniel Rudolf
4d7430949a
Remove usage of \OC_Util::getDefaultPageUrl() and \OC_Util::redirectToDefaultPage()
Signed-off-by: Daniel Rudolf <github.com@daniel-rudolf.de>
2021-08-04 19:02:57 +02:00
Daniel Rudolf
aa455e71d9
Merge branch 'master' into enhancement/noid/IURLGenerator-linkToDefaultPageUrl 2021-08-04 18:52:55 +02:00
Daniel Rudolf
e478db9161
Deprecate RedirectToDefaultAppResponse
Signed-off-by: Daniel Rudolf <github.com@daniel-rudolf.de>
2021-07-01 15:13:08 +02:00
Gary Kim
b78f3a57d1
Migrate HintException to OCP
Signed-off-by: Gary Kim <gary@garykim.dev>
2021-06-30 15:28:02 -04:00
Daniel Rudolf
12059eb65b
Add IUrlGenerator::linkToDefaultPageUrl()
Replaces the deprecated \OC_Util::getDefaultPageUrl() and makes this API public.

Signed-off-by: Daniel Rudolf <github.com@daniel-rudolf.de>
2021-06-30 16:20:57 +02:00
pjft
b1086e25bb Add logging to 2FA failure
For security reasons, we may want to monitor failures of 2FA challenges in order to ban attackers who might try to access compromised accounts but are stopped by the 2FA challenge.
Right now, the only hindrance is rate-limiting, but it's probably not enough.
Added dependency injection.

Signed-off-by: pjft <paulo.j.tavares@gmail.com>
2021-06-21 20:43:12 +01:00
Julius Härtl
c0474ba364
Use product name in places where it is appropriate rather than the instance name
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-06-16 11:42:53 +02:00
Morris Jobke
2ae60b42ab
Merge pull request #26494 from rigrig/fix-php8-deprecations
Fix some php 8 warnings
2021-06-07 23:30:59 +02:00
John Molakvoæ (skjnldsv)
215aef3cbd
Update php licenses
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-06-04 22:02:41 +02:00
Richard de Boer
f23d057ad9 Fix functions taking optional parameters before required ones
PHP 8 shows deprecation warnings about this, see #25806
Removes the "default" values, as they actually are required parameters anyway.

Signed-off-by: Richard de Boer <git@tubul.net>
2021-05-29 14:14:52 +02:00
Joas Schilling
69290781ff Handle device login like an alternative login
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-20 09:11:33 +02:00
Roeland Jago Douma
b43e21d186
Merge pull request #26401 from nextcloud/enh/handle-avatar-upload-errors
Show informative errors on avatar upload error
2021-04-08 16:12:36 +02:00
Robin Appelman
c232a40bdf
remove leftover debug @NoCSRFRequired introduced with #26198
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-04-01 13:51:53 +02:00
Julien Veyssier
7b69897474
show informative errors in log and UI on avatar upload error in user settings
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2021-04-01 11:55:13 +02:00