Commit graph

83 commits

Author SHA1 Message Date
Joas Schilling
3235785c24
Fix exception handling when profile data is too long
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-06-09 22:07:46 +02:00
Thomas Citharel
4d26a9afa0
Allow to tweak default scopes for accounts
Close #6582

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-16 22:54:51 +02:00
Carl Schwan
eef973e85b Minor optimizations for saving user personal information
* Remove double hook: the OC_User::changeUser triggers an
OC\AccountManager::userUpdated and the app is already listening to this
signal in its Application definition

* Make createCard not check if an card exists if we already checked
  previously. We also don't try to get the card if the user is disabled
  as we don't use the card in this case

We this change we go from 100 DB requests to 80 DB requests when saving
an user email address.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
(cherry picked from commit c6fd482edf33214a9ad4787e4cac278f871fa7c8)
2022-05-12 21:02:52 +02:00
Carl Schwan
9cb992e93c Cache account information
Currently, each field of the profile settings is fetching the account
information. This patch makes it so that only the first time do a DB call
and all the later ones are cached.

Reduce by 5 queries when loading the profile setting page and I suppose
other pages are affected since loading a page generates always fetch at
least once the account information to see if the profile feature is enabled
for the user.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-04-05 19:29:54 +02:00
Christopher Ng
108abd77ed Add profile default setting for admin
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2022-03-18 02:55:12 +00:00
Christopher Ng
2d9d0702f0 Add method to set all account properties from json
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2022-03-17 16:33:19 +00:00
Christopher Ng
a99d33c72d Discard duplicate collection name from account serialization
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2022-03-17 04:27:39 +00:00
Carl Schwan
89d109a4d9
Merge pull request #30508 from nextcloud/fix/psaml-bin
Fix psalm not running
2022-01-13 09:51:04 +01:00
Carl Schwan
6312c0df69
Check style update
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-01-13 00:19:07 +01:00
Joas Schilling
3c84570901
Fix undefined/unset scope in account properties
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-01-11 10:15:06 +01:00
Christopher Ng
19a3656fd9 Fix email verification
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2022-01-06 23:47:42 +00:00
Arthur Schiwon
998144f832
Obey col length of 255 to insert and search in accounts_data
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-11-26 16:30:14 +01:00
Côme Chilliet
113756db30
Fix ArrayAccess and JsonSerializable return types
First round of modifications for PHP 8.1

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2021-11-23 09:28:56 +01:00
Arthur Schiwon
e26d6f080b
fix populating account array with missing default values
- both $userData and $defaultUserData have numeric indices
- each element contains at least the name and other fields
- appending the missing data array is sufficient

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-10-22 23:05:43 +02:00
Christopher Ng
7215148a24 Add new account properties
- New properties
  - Organisation
  - Role
  - Headline
  - Biography
  - Profile Enabled property
- Fix errors with building default account properties
- Fix L10N factory method `getLanguage` not public error
- Update tests

Signed-off-by: Christopher Ng <chrng8@gmail.com>
2021-10-19 04:44:40 +00:00
Arthur Schiwon
aacaad2a3f
implement verification for additional mails
- mails added by (sub)admins are automatically verified
- provisioning_api controller as verification endpoint
- IAccountProperty gets a locallyVerified property
- IPropertyCollection gets a method to fetch an IAccountProperty by value
  - an remove equivalent was already present
- AccountManager always initiates mail verification on update if necessary
- add core success template for arbitrary title and message

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-09-09 14:03:35 +02:00
Arthur Schiwon
ad0a11b2bf
cleanup
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 01:03:44 +02:00
Arthur Schiwon
506227b509
adjust internal data handling logic to fix store and load
- format as stored previously in oc_accounts table is kept

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 00:48:01 +02:00
Arthur Schiwon
c7bf4295cc
adjust email verification checker
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 00:47:36 +02:00
Arthur Schiwon
d64411e9df
fix code style
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 00:45:49 +02:00
Arthur Schiwon
3d6ffd3da2
adjust verification state updater method
- also fixes scope of internal methods

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 00:42:42 +02:00
Arthur Schiwon
af3fdbea7b
make AccountManager actually write multi value properties
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 00:41:12 +02:00
Arthur Schiwon
638c04d6e0
accounts event handler to use eventdispatcher, DI and Accounts API
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 00:41:11 +02:00
Arthur Schiwon
d109d4f581
prov api to be able to edit multivalue properties
- adding as usual
- deleting and scope setting via additional endpoint

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 00:41:11 +02:00
Arthur Schiwon
13818005a3
prov api reports additional emails on getUser
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 00:41:10 +02:00
blizzz
662ab937e0
Merge pull request #27189 from nextcloud/feat/26866/account-collection-properties
Extend Accounts with multivalue properties (PropertyCollection)
2021-06-08 14:25:18 +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
Arthur Schiwon
35d5395089
psalm happiness
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>

psalm happiness

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-04 19:57:00 +02:00
Arthur Schiwon
8ec640d14a
adjust property type declaration
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-03 21:07:59 +02:00
Arthur Schiwon
2701c3e7dc
fix code style
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-03 20:54:25 +02:00
Arthur Schiwon
44827e37c0
allow interacting with IAccountPropertyCollections
- in fact the API could be done in a nicer way and it might be possible to
  work without IAccountPropertyCollection, but only with the
  IAccountProperties.
- To keep it simple at first and not overengineer the blunt attempt is
  followed
- If necessary helpful in the further cause of development adjustements or
  extensions can be done quickly with this base


Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-03 20:49:49 +02:00
Arthur Schiwon
0bade27479
add IAccountPropertyCollection with implementation
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-03 20:49:49 +02:00
Arthur Schiwon
839bff1641
deal with property collections when fetching users (with update)
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-03 20:49:49 +02:00
Arthur Schiwon
956bfba2e2
refactor validators and sanitizers
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-03 20:49:48 +02:00
Arthur Schiwon
847ed37afc
do not use private AccountManager in UsersController
- extends IAccountProperty for verificationData getters and setters
- implementation thereof ^
- and of course adaption of UsersController

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-05-25 14:35:38 +02:00
Arthur Schiwon
8413ed9475
allow to set valid scopes only in AccountProperty
the auto-fallback to v2-local is removed as well to react on wrong input

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-05-12 01:31:15 +02:00
Joas Schilling
aa651fd629
Merge pull request #26259 from nextcloud/feature/noid/validate-website-to-be-valid
Validate the website field input to be a valid URL
2021-04-26 13:56:01 +02:00
Daniel Calviño Sánchez
7159a70894 Guard against null phone number value
"parsePhoneNumber()" expects a string, so a TypeError would be thrown if
the phone number value is null.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-04-23 11:44:42 +02:00
Joas Schilling
d80cc76ee7
Validate the website field input to be a valid URL
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-22 16:34:13 +02:00
Lukas Reschke
2befac662c Limit size of properties to 2048 characters
It is unreasonable to expect that one of these fields would be longer
than 2048 characters. Whilst some have definitely lower limits (such as
for phone numbers or domain names), a upper bound as sanity check makes
sense.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2021-04-08 11:55:51 +02:00
Joas Schilling
fcedbc85d0
Allow apps to write/update account data
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-31 15:18:25 +02:00
Vincent Petry
b73df5846c
Add property scope tests for AccountManager
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-26 13:07:09 +01:00
Vincent Petry
266a6fb5f8
OCS allow reading and writing account property scopes
Extends the provisioning API to allow a user to get and set their own
account property scopes.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-26 13:07:08 +01:00
Vincent Petry
278a73789e
Map old account scope properties to new names
Use new scope values in settings page.
Adjust all consumers to use the new constants.
Map old scope values to new ones in account property getter.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-03-26 13:07:08 +01:00
Joas Schilling
2e08c8b5a1
Chunk the array of phone numbers
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-12 08:49:23 +01:00
Christoph Wurst
d89a75be0b
Update all license headers for Nextcloud 21
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-12-16 18:48:22 +01:00
Joas Schilling
f648635758
Make the throwing optional, so background tasks don't break
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-12-07 14:19:38 +01:00
Joas Schilling
46b073d7ce
Add a config for default region of phone numbers
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-12-07 14:19:38 +01:00
Joas Schilling
9e04e6f99a
Also translate the phone number when coming in via the accounts manager API directly
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-12-07 14:19:38 +01:00
Joas Schilling
fe9c46e595
Add an endpoint to search for accounts based on phone number
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-12-07 14:19:37 +01:00