46 Commits

Author SHA1 Message Date
Jan Dageförde
99e632c446
MDL-59889 oauth2: Remove check for storing new refresh token 2017-10-06 14:49:17 +02:00
Jun Pataleta
c5830051e5 Merge branch 'MDL-59855-master' of git://github.com/junpataleta/moodle 2017-08-29 11:43:36 +08:00
Jun Pataleta
7927138d50 MDL-59855 oauth2: More PHPDocs fixes
* Fix PHPDoc return type for api::get_system_account()
* Fix PHPDoc for the $contenttype parameter in \core\oauth2\rest::call()
2017-08-29 11:18:23 +08:00
Jan Dageförde
8aa17e1347
MDL-59869 oauth2: Fix notification method 2017-08-26 15:42:12 +02:00
Jan Dageförde
efbe24f5a8
MDL-59869 oauth2: Send expiry notification on exceptions, too 2017-08-26 15:42:12 +02:00
Jan Dageförde
bd0b987338
MDL-59855 oauth2: Fix PHPDoc type hints 2017-08-26 15:42:04 +02:00
Jan Dageförde
3fa588c637
MDL-59511 oauth2: Allow empty email in system account 2017-07-28 10:07:25 +02:00
David Monllao
9e3b60c95d Merge branch 'MDL-59539-master' of git://github.com/tobiasreischmann/moodle 2017-07-17 10:14:55 +02:00
Tobias Reischmann
d029841300
MDL-59539 oauth2/issuer: Changed baseurl for guessing image URL
The url, which was used for guessing the image, was queried with the
key 'discoveryurl', which is not defined in the context of an issuer.
The baseurl should be sufficient to retrieve the favicon.ico from a
server. That's why the key for was changed from 'discoveryurl' to
'baseurl'.
2017-07-14 11:10:50 +02:00
Damyon Wiese
859e2033cb MDL-58544 oauth2: Allow trusted issuers
Add a setting to each issuer that skips the email confirmation when creating and linking accounts.
2017-06-27 16:50:27 +08:00
Damyon Wiese
3ba79ff19a MDL-58535 oauth2: Don't rely on the return scopes
MS makes a big mess of returning scopes from oauth requests. They only return the custom MS scopes like
User.Read and they never return non-MS scopes (like openid, profile, email).
2017-05-02 10:03:58 +08:00
Damyon Wiese
8381b05d49 MDL-58535 repository_onedrive: Integration review fixes
Fixes for some missing imports and unused variables.
2017-05-01 16:15:36 +08:00
Damyon Wiese
0b1a14aef9 MDL-58280 fileconverter_googledrive: More helpful errors
Detect some config errors and give a better error message.
2017-04-20 11:28:06 +08:00
Damyon Wiese
9fe3363301 MDL-58280 fileconverter_googledrive: Is born. 2017-04-20 10:49:17 +08:00
Jan Dageförde
eb4ab7c4b8
MDL-58489 core: Fix unreachable HTTP error handling 2017-04-07 09:50:15 +02:00
Damyon Wiese
14cfd280d3 MDL-58220 oauth2: Sanity check user pictures 2017-04-03 13:43:27 +08:00
Damyon Wiese
7f15866006 MDL-58220 oauth2: Use email as default username
And give better error messages.
2017-04-03 13:43:27 +08:00
Damyon Wiese
9165e83831 MDL-58220 unittests: Fix errors found in unittests 2017-04-03 13:43:26 +08:00
Damyon Wiese
d9fbe3146c MDL-58220 oauth2: Use the same list of user fields
Authentication has a hard coded list of valid internal user fields - but they are in a class variable. We need them
in oauth user_field_mapping so we need to move them to a central place and call them from oauth2 and auth.
2017-04-03 13:43:26 +08:00
Damyon Wiese
68ecf7635b MDL-58220 oauth2: tighten the param types
These come from external sources - but still should not contain crazy stuff.
2017-04-03 13:43:26 +08:00
Damyon Wiese
7949b3b2ac MDL-58220 oauth2: Remove is_system_account_setup_supported
This was left from an earlier branch but no longer useful.
2017-04-03 13:43:26 +08:00
Damyon Wiese
5b0b35c096 MDL-58220 oauth2: Add is_configured to issuer
Saves repeated checks for clientid and clientsecret.
2017-04-03 13:43:25 +08:00
Damyon Wiese
8d90d29460 MDL-58220 oauth2: Use iputils to check domain
Allows wild cards and more strict checking against spec.
2017-04-03 13:43:25 +08:00
Damyon Wiese
4a32445dc9 MDL-58220 oauth2: use PARAM_RAW_TRIMMED
Client ID and secret and copy/pasted from elsewhere so trim them.
2017-04-03 13:43:25 +08:00
Damyon Wiese
13b449f4a5 MDL-58220 oauth2: cibot cleanups 2017-04-03 13:43:25 +08:00
Damyon Wiese
99e3c347f9 MDL-58220 oauth2: Minor cleanups
Fixes spotted by Jun in peer review.
2017-04-03 13:43:25 +08:00
Damyon Wiese
fa78244d17 MDL-58220 oauth2: Fix unit tests and add more 2017-04-03 13:43:25 +08:00
Damyon Wiese
092304a3de MDL-58220 oauth2: Cibot fixes
Missing phpdocs.
2017-04-03 13:43:25 +08:00
Damyon Wiese
c21a66e40a MDL-58220 auth_oauth2: Restrict logins to a set of domains
This is set on the issuer, so you can have different lists for each oauth2 provider.
2017-04-03 13:43:25 +08:00
Damyon Wiese
eca128bf47 MDL-58220 oauth2: Global enable/disable for issuers. 2017-04-03 13:41:19 +08:00
Damyon Wiese
141ee541ca MDL-58219 repository: Change how controlled links work
Files are copied to the system user as soon as they are uploaded. Write access is then controlled when
serving links to the file.

Part of MDL-58220
2017-04-03 13:41:19 +08:00
Damyon Wiese
72fd103add MDL-58219 cibot: Fixes
Fixes for cibot warnings.

Part of MDL-58220
2017-04-03 13:41:19 +08:00
Damyon Wiese
dece386586 MDL-58219 oauth2: Fix unit tests because we changed the model
We added 2 fields to the model and we needed to update the tests.

I also removed some error_log from the rest client (very useful while developing)

Part of MDL-58220
2017-04-03 13:41:18 +08:00
Damyon Wiese
28dddbc129 MDL-58219 oauth2: Show connected system account info
Show the username and email of the connected system account (if it ever requires refreshing - this will help identity the account
to re-authorise).

Part of MDL-58220
2017-04-03 13:41:18 +08:00
Damyon Wiese
989e14fea0 MDL-58128 googledocs: Support reference files.
Add options so the admin can control the types of files this repository can support (and the default).

Part of MDL-58220
2017-04-03 13:40:13 +08:00
Damyon Wiese
d247a63dfa MDL-58128 oauth2: Add a scheduled task for refresh
We need to make sure our refresh tokens do not expire. We run a scheduled
task to update the refresh token once per hour.

Part of MDL-58220
2017-04-03 13:40:13 +08:00
Damyon Wiese
0e59638bdb MDL-58126 googledocs: Re-implement the google docs repo
Use latest REST API (v3) - but avoid the google client libraries
(too big, too much to update, not integrated with auth).

Part of MDL-58220
2017-04-03 13:40:13 +08:00
Damyon Wiese
299112498b MDL-58090 oauth2: Coding style
Part of MDL-58220
2017-04-03 13:40:13 +08:00
Damyon Wiese
931c023468 MDL-58090 oauth2: Add unit tests
Part of MDL-58220
2017-04-03 13:40:13 +08:00
Damyon Wiese
f9f243f93e MDL-58090 oauth2: Complete phpdocs
Part of MDL-58220
2017-04-03 13:40:13 +08:00
Damyon Wiese
dc4b56852a MDL-58090 oauth2: Do not install services by default
Instead provide buttons to quickly create pre-configured
versions of any of the known OAuth 2 services.

Part of MDL-58220
2017-04-03 13:40:12 +08:00
Damyon Wiese
237fd80cd2 MDL-58090 oauth2: API to get a system client
Request an oauth client with an access token retrieved with the stored refresh token from the OAuth issuer.

Part of MDL-58220
2017-04-03 13:39:45 +08:00
Damyon Wiese
ddf65b8c05 MDL-58090 oauth2: Facebook
Add defaults for facebook authentication and drop behaviour field completely.

Part of MDL-58220
2017-04-03 13:39:45 +08:00
Damyon Wiese
485a22fc98 MDL-58090 oauth2: Get rid of behaviour field
OAuth services working fully from config - no more subclasses for each OAuth issuer.

Part of MDL-58220
2017-04-03 13:39:44 +08:00
Damyon Wiese
8445556b4c MDL-58090 oauth2: Move code from subclasses to config
Allow the behaviour of each oauth service to be customised by config instead of
subclasses.

Part of MDL-58220
2017-04-03 13:39:44 +08:00
Damyon Wiese
60237253a2 MDL-58090 oauth2: Store a list of oauth2 services
Build an admin page where OAuth 2 services can be installed and configured.

Part of MDL-58220
2017-04-03 13:39:02 +08:00