civicrm-core.git
3 years agoMerge pull request #19088 from seamuslee001/dev_core_2227
Seamus Lee [Wed, 2 Dec 2020 22:42:06 +0000 (09:42 +1100)]
Merge pull request #19088 from seamuslee001/dev_core_2227

Ensure that the is_deleted filter is added correctly if we are not se…

3 years agoEnsure that the is_deleted filter is added correctly if we are not searching for...
Seamus Lee [Wed, 2 Dec 2020 02:25:12 +0000 (13:25 +1100)]
Ensure that the is_deleted filter is added correctly if we are not searching for deleted contacts but have access to view deleted contacts

Simplify IF down as per feed back from ACD and also comment from Eileen in chat and extend unit test as well

3 years agoMerge pull request #19084 from eileenmcnaughton/prod
Seamus Lee [Tue, 1 Dec 2020 09:44:51 +0000 (20:44 +1100)]
Merge pull request #19084 from eileenmcnaughton/prod

dev/drupal#148 Fix product form such that it is possible to unseletc …

3 years agodev/drupal#148 Fix product form such that it is possible to unseletc duration unit...
eileen [Tue, 1 Dec 2020 03:42:42 +0000 (16:42 +1300)]
dev/drupal#148 Fix product form such that it is possible to unseletc duration unit, frequency unit

3 years agoMerge pull request #19077 from seamuslee001/dev_core_2213
Seamus Lee [Mon, 30 Nov 2020 23:44:24 +0000 (10:44 +1100)]
Merge pull request #19077 from seamuslee001/dev_core_2213

dev/core#2213 Protect against 404s when wpBasePage is mixed case

3 years agoMerge pull request #19076 from seamuslee001/update_cache_integration_tests
Seamus Lee [Mon, 30 Nov 2020 23:32:45 +0000 (10:32 +1100)]
Merge pull request #19076 from seamuslee001/update_cache_integration_tests

[NFC] Update Cache/integration-tests version as new version recently …

3 years agodev/core#2213 Protect against 404s when wpBasePage is mixed case
Christian Wach [Fri, 27 Nov 2020 16:13:53 +0000 (16:13 +0000)]
dev/core#2213 Protect against 404s when wpBasePage is mixed case

3 years ago[NFC] Update Cache/integration-tests version as new version recently released that...
Seamus Lee [Mon, 30 Nov 2020 21:34:05 +0000 (08:34 +1100)]
[NFC] Update Cache/integration-tests version as new version recently released that contains the patches already applied

3 years agoMerge pull request #19055 from colemanw/fixSearchActionButton
Seamus Lee [Thu, 26 Nov 2020 05:14:25 +0000 (16:14 +1100)]
Merge pull request #19055 from colemanw/fixSearchActionButton

Search ext: Fix search action button

3 years agoSearch ext: Fix search action button
Coleman Watts [Thu, 26 Nov 2020 02:47:30 +0000 (21:47 -0500)]
Search ext: Fix search action button

3 years agoMerge pull request #19031 from colemanw/bullets
Eileen McNaughton [Tue, 24 Nov 2020 02:20:48 +0000 (15:20 +1300)]
Merge pull request #19031 from colemanw/bullets

Improve options in list search display

3 years agoImprove options in list search display
Coleman Watts [Mon, 23 Nov 2020 23:49:34 +0000 (18:49 -0500)]
Improve options in list search display

3 years agoMerge pull request #19029 from seamuslee001/5_31_1_rn
Seamus Lee [Mon, 23 Nov 2020 23:39:36 +0000 (10:39 +1100)]
Merge pull request #19029 from seamuslee001/5_31_1_rn

Add release-notes/5.31.1.md

3 years agoAdd release-notes/5.31.1.md
Tim Otten [Mon, 23 Nov 2020 22:28:13 +0000 (14:28 -0800)]
Add release-notes/5.31.1.md

3 years agoMerge pull request #19018 from demeritcowboy/case-tasks-deprecated
Seamus Lee [Mon, 23 Nov 2020 01:25:31 +0000 (12:25 +1100)]
Merge pull request #19018 from demeritcowboy/case-tasks-deprecated

dev/core#2205 - Deprecated function warning when choosing task from Find Cases results

3 years agodeprecated base function
demeritcowboy [Sun, 22 Nov 2020 23:12:06 +0000 (18:12 -0500)]
deprecated base function

3 years agoMerge pull request #19001 from eileenmcnaughton/532
Tim Otten [Fri, 20 Nov 2020 01:04:02 +0000 (17:04 -0800)]
Merge pull request #19001 from eileenmcnaughton/532

Include oauth-client in tarball

3 years agoMerge pull request #18999 from colemanw/searchStuff
Eileen McNaughton [Fri, 20 Nov 2020 00:23:58 +0000 (13:23 +1300)]
Merge pull request #18999 from colemanw/searchStuff

Search kit bug fixes & List display

3 years agoInclude oauth-client in tarball
eileen [Thu, 19 Nov 2020 23:14:59 +0000 (12:14 +1300)]
Include oauth-client in tarball

3 years agoMerge pull request #18996 from kcristiano/5.32.1931
Seamus Lee [Thu, 19 Nov 2020 22:16:46 +0000 (09:16 +1100)]
Merge pull request #18996 from kcristiano/5.32.1931

dev/core#1931 Prevent PayPal from double-encoding the IPN Notify URL 5.32 backport

3 years agoSearch kit: Fix issues with variable pollution and clean up shared display code
Coleman Watts [Thu, 19 Nov 2020 21:47:56 +0000 (16:47 -0500)]
Search kit: Fix issues with variable pollution and clean up shared display code

3 years agoPrevent PayPal from double-encoding the IPN Notify URL
Christian Wach [Mon, 16 Nov 2020 19:20:49 +0000 (19:20 +0000)]
Prevent PayPal from double-encoding the IPN Notify URL

3 years agoSearch ext: Fix duplicate group names on search admin page
Coleman Watts [Thu, 19 Nov 2020 18:36:35 +0000 (13:36 -0500)]
Search ext: Fix duplicate group names on search admin page

3 years agoSearch ext: Add List display
Coleman Watts [Thu, 19 Nov 2020 18:25:26 +0000 (13:25 -0500)]
Search ext: Add List display

Breaks search displays into their own modules, one per display type.
This gives finer-grained dependency management per display type.

3 years agoSearch ext: fix loss of configuration while changing search criteria
Coleman Watts [Thu, 19 Nov 2020 18:20:51 +0000 (13:20 -0500)]
Search ext: fix loss of configuration while changing search criteria

3 years agoMerge pull request #18976 from colemanw/searchParams
Eileen McNaughton [Mon, 16 Nov 2020 03:16:51 +0000 (16:16 +1300)]
Merge pull request #18976 from colemanw/searchParams

Search ext: use crmRouteBinder to expose params for new searches to url

3 years agoSearch ext: use crmRouteBinder to expose params for new searches as url arguments
Coleman Watts [Mon, 16 Nov 2020 00:00:58 +0000 (19:00 -0500)]
Search ext: use crmRouteBinder to expose params for new searches as url arguments

3 years agoMerge pull request #18967 from seamuslee001/dev_core_2178
Seamus Lee [Sun, 15 Nov 2020 19:25:59 +0000 (06:25 +1100)]
Merge pull request #18967 from seamuslee001/dev_core_2178

dev/core#2178 Fix regression on adding contacts to a newly created group

3 years agodev/core#2178 Fix regression on adding contacts to a newly created group
Seamus Lee [Fri, 13 Nov 2020 04:03:12 +0000 (15:03 +1100)]
dev/core#2178 Fix regression on adding contacts to a newly created group

3 years agoMerge pull request #18958 from alifrumin/5.32rn
Seamus Lee [Wed, 11 Nov 2020 20:02:48 +0000 (07:02 +1100)]
Merge pull request #18958 from alifrumin/5.32rn

[NFC ] 5.32 Release Notes - first pass

3 years ago5.32 release notes
Alice Frumin [Mon, 9 Nov 2020 20:34:58 +0000 (14:34 -0600)]
5.32 release notes

3 years agoMerge pull request #18955 from totten/5.32-oauth-return
Seamus Lee [Wed, 11 Nov 2020 03:57:09 +0000 (14:57 +1100)]
Merge pull request #18955 from totten/5.32-oauth-return

dev/core#2141 - Tighten up new page `civicrm/oauth-client/return`

3 years agodev/core#2141 - Tighten up new page `civicrm/oauth-client/return`
Tim Otten [Tue, 10 Nov 2020 22:25:21 +0000 (14:25 -0800)]
dev/core#2141 - Tighten up new page `civicrm/oauth-client/return`

Overview
--------

The route `civicrm/oauth-client/return` is added in 5.32 as the main "Redirect URL".

In normal usage, the page shouldn't be visible to a user (because the
developer should define some alternative UI) -- but one might see it (a)
during development, (b) if there's an error, or (c) if a clever user mucks
about.

Improvements:

* Error handling
    * Present error messages more nicely
    * Record errors in the log
    * Report more info via hook_oauthReturnError
* Other UI
    * Redact token details (dependent upon permission `manage OAuth client secrets`)
    * Set a more sensibile page title
    * Make output blobs conditional and collapsible

3 years agoMerge pull request #18951 from totten/5.32-ms-imap
Seamus Lee [Tue, 10 Nov 2020 06:53:25 +0000 (17:53 +1100)]
Merge pull request #18951 from totten/5.32-ms-imap

dev/mail#79 - Fix MS Exchange/IMAP. Use OpenID Connect.

3 years agodev/mail#79 - Use OpenID Connect with MS Exchange
Tim Otten [Tue, 10 Nov 2020 00:47:50 +0000 (16:47 -0800)]
dev/mail#79 - Use OpenID Connect with MS Exchange

At time of writing, there appears to be a problem in Microsoft's services:
if you request both `User.Read` and `IMAP.AccessAsUser.All`, then the token
does not actually work for IMAP access.

However, it is does work to combine `openid` and `IMAP.AccessAsUser.All`.

This patch revises the MS Exchange definition to get resource-owner details
via OpenID Connect's `id_token`.

3 years agodev/mail#79 - Add option to get resource-owner via OpenID Connect
Tim Otten [Tue, 10 Nov 2020 00:43:39 +0000 (16:43 -0800)]
dev/mail#79 - Add option to get resource-owner via OpenID Connect

At time of writing, there appears to be a problem in Microsoft's services:
if you request both `User.Read` and `IMAP.AccessAsUser.All`, then the token
does not actually work for IMAP access.

However, it is does work to combine `openid` and `IMAP.AccessAsUser.All`.

This patch to CiviGenericProvider makes it easier to get resource-owner
details via OpenID Connect's `id_token`.

3 years agoMerge pull request #18945 from agh1/5.32.0-releasenotes-fixedinitial
Seamus Lee [Sat, 7 Nov 2020 19:41:22 +0000 (06:41 +1100)]
Merge pull request #18945 from agh1/5.32.0-releasenotes-fixedinitial

5.32.0 release notes initial run

3 years ago5.32.0 release notes: added boilerplate
Andrew Hunt [Sat, 7 Nov 2020 15:38:35 +0000 (10:38 -0500)]
5.32.0 release notes: added boilerplate

3 years ago5.32.0 release notes: raw from script
Andrew Hunt [Sat, 7 Nov 2020 15:35:43 +0000 (10:35 -0500)]
5.32.0 release notes: raw from script

3 years agoMerge pull request #18943 from totten/5.32-token-inspect
Tim Otten [Sat, 7 Nov 2020 06:25:15 +0000 (22:25 -0800)]
Merge pull request #18943 from totten/5.32-token-inspect

dev/core#2141 - Multiple revisions to new screen for inspecting OAuth tokens

3 years agodev/core#2141 - Multiple revisions to new screen for inspecting OAuth tokens
Tim Otten [Thu, 5 Nov 2020 08:01:09 +0000 (00:01 -0800)]
dev/core#2141 - Multiple revisions to new screen for inspecting OAuth tokens

Overview
--------

5.32 adds `oauth-client`, which includes a screen for inspecting OAuth
tokens.  This is intended to facilitate debugging.

Before
------

* The screen works for inspecting one token. It offers a button to inspect other tokens, but it doesn't work.
* The screen only shows the `access_token` (and its JWT variant)

After
-----

* The malfunctioning button isn't needed. Remove it.
* The screen shows a full record of the token details. This should make it even more useful for debuggin.

3 years agoMerge pull request #18940 from seamuslee001/5.32
Seamus Lee [Fri, 6 Nov 2020 22:23:46 +0000 (09:23 +1100)]
Merge pull request #18940 from seamuslee001/5.32

[REF] Update composer patches to 1.7.0 to support composer 2.x

3 years ago[REF] Update composer patches to 1.7.0 to support composer 2.x
Seamus Lee [Fri, 6 Nov 2020 20:18:03 +0000 (07:18 +1100)]
[REF] Update composer patches to 1.7.0 to support composer 2.x

3 years agoSet version to 5.32.beta1
CiviCRM [Fri, 6 Nov 2020 06:28:28 +0000 (06:28 +0000)]
Set version to 5.32.beta1

3 years agoMerge pull request #18868 from sunilpawar/logging_date
Eileen McNaughton [Fri, 6 Nov 2020 02:47:57 +0000 (15:47 +1300)]
Merge pull request #18868 from sunilpawar/logging_date

get log date from tables available in query with data instead of last table

3 years agoMerge pull request #18851 from ixiam/dev_issue#2142
Eileen McNaughton [Fri, 6 Nov 2020 02:35:01 +0000 (15:35 +1300)]
Merge pull request #18851 from ixiam/dev_issue#2142

Adds performance improvement when browsing the report logs

3 years agoMerge pull request #18913 from tvartom/master
Eileen McNaughton [Fri, 6 Nov 2020 02:10:27 +0000 (15:10 +1300)]
Merge pull request #18913 from tvartom/master

Make civicrm-setup work with a unix-socket for database connection

3 years agoMerge pull request #18932 from colemanw/schemaHandler
colemanw [Fri, 6 Nov 2020 00:50:49 +0000 (19:50 -0500)]
Merge pull request #18932 from colemanw/schemaHandler

Schema handler fixes

3 years agoMerge pull request #18931 from seamuslee001/master
Seamus Lee [Thu, 5 Nov 2020 22:46:44 +0000 (09:46 +1100)]
Merge pull request #18931 from seamuslee001/master

5.31

3 years agoMerge in 5.31
Seamus Lee [Thu, 5 Nov 2020 22:45:31 +0000 (09:45 +1100)]
Merge in 5.31

3 years agoMerge pull request #18925 from totten/5.31-revert-titlereq
Eileen McNaughton [Thu, 5 Nov 2020 22:40:19 +0000 (11:40 +1300)]
Merge pull request #18925 from totten/5.31-revert-titlereq

dev/translation#58 - Fix regression. Partially revert schema for civicrm_group.title

3 years agoCustomField - simplify tableName lookup during bulkSave and fix bug
Coleman Watts [Thu, 5 Nov 2020 22:36:52 +0000 (17:36 -0500)]
CustomField - simplify tableName lookup during bulkSave and fix bug

This cleans up the tableName lookup to use the method used throughout this class.
The extra optimization (local caching in the $tables variable) was actually less efficient
because CRM_Core_DAO::getFieldValue caches its results, and is used elsewhere so the value
is likely to already be cached.

The bug is that the same table name was repeatedly being passed into $logging->fixSchemaDifferencesFor().

3 years agoSchemaHandler - Remove unused/deprecated function
Coleman Watts [Thu, 5 Nov 2020 22:31:35 +0000 (17:31 -0500)]
SchemaHandler - Remove unused/deprecated function

3 years agoMerge pull request #18930 from MegaphoneJon/financial-156
Matthew Wire [Thu, 5 Nov 2020 21:53:29 +0000 (21:53 +0000)]
Merge pull request #18930 from MegaphoneJon/financial-156

closes financial/#156: Set contribution status to refunded even if cancelled_payment_id is set

3 years agocloses financial/#156: Set contribution status to refunded even if cancelled_payment_...
Jon Goldberg [Thu, 5 Nov 2020 19:24:38 +0000 (14:24 -0500)]
closes financial/#156: Set contribution status to refunded even if cancelled_payment_id is set

3 years agoMerge pull request #18928 from demeritcowboy/left-right-up-down
colemanw [Thu, 5 Nov 2020 18:07:29 +0000 (13:07 -0500)]
Merge pull request #18928 from demeritcowboy/left-right-up-down

dev/core#2167 - Fulltext search drupal block has button on wrong side

3 years agoMerge pull request #18927 from demeritcowboy/del-mail
colemanw [Thu, 5 Nov 2020 18:07:13 +0000 (13:07 -0500)]
Merge pull request #18927 from demeritcowboy/del-mail

dev/core#2166 - E_NOTICE when deleting mail account

3 years agobutton placement on fulltext search drupal block
demeritcowboy [Thu, 5 Nov 2020 15:12:36 +0000 (10:12 -0500)]
button placement on fulltext search drupal block

3 years agoavoid notice / skip validation when deleting
demeritcowboy [Thu, 5 Nov 2020 14:43:34 +0000 (09:43 -0500)]
avoid notice / skip validation when deleting

3 years agodev/translation#58 - 5.31.beta2 - Undo 'NOT NULL'
Tim Otten [Thu, 5 Nov 2020 11:59:23 +0000 (03:59 -0800)]
dev/translation#58 - 5.31.beta2 - Undo 'NOT NULL'

3 years agoSet version to 5.31.beta2
CiviCRM [Thu, 5 Nov 2020 11:58:32 +0000 (03:58 -0800)]
Set version to 5.31.beta2

3 years agodev/translation#58 - Partially revert schema for civicrm_group.title
Tim Otten [Thu, 5 Nov 2020 11:39:32 +0000 (03:39 -0800)]
dev/translation#58 - Partially revert schema for civicrm_group.title

3 years agoMerge pull request #18911 from totten/master-mail-test
Eileen McNaughton [Thu, 5 Nov 2020 07:20:02 +0000 (20:20 +1300)]
Merge pull request #18911 from totten/master-mail-test

dev/mail#2141 - MailSettings - Add button+API for testing a connection

3 years agoMerge pull request #18923 from civicrm/5.31
Eileen McNaughton [Wed, 4 Nov 2020 22:50:40 +0000 (11:50 +1300)]
Merge pull request #18923 from civicrm/5.31

5.31 to master

3 years agoMerge pull request #18921 from agh1/5.31.0-releasenotes-final
Eileen McNaughton [Wed, 4 Nov 2020 22:50:11 +0000 (11:50 +1300)]
Merge pull request #18921 from agh1/5.31.0-releasenotes-final

5.31.0 release notes final

3 years agoMerge pull request #18917 from mattwire/financialtrxn_payprocid
Eileen McNaughton [Wed, 4 Nov 2020 19:45:48 +0000 (08:45 +1300)]
Merge pull request #18917 from mattwire/financialtrxn_payprocid

Add UI metadata for payment_processor_id on financialTrxn

3 years ago5.31.0 release notes: added late changes
Andrew Hunt [Wed, 4 Nov 2020 19:36:05 +0000 (14:36 -0500)]
5.31.0 release notes: added late changes

3 years ago5.31.0 release notes: misc edits
Andrew Hunt [Wed, 4 Nov 2020 18:58:05 +0000 (13:58 -0500)]
5.31.0 release notes: misc edits

3 years agoMerge pull request #18907 from alifrumin/2139
colemanw [Wed, 4 Nov 2020 13:55:08 +0000 (08:55 -0500)]
Merge pull request #18907 from alifrumin/2139

dev/core#2139 fix defaulting for multi-select custom fields

3 years agoMerge pull request #18919 from colemanw/searchKitValidate
Eileen McNaughton [Wed, 4 Nov 2020 06:14:49 +0000 (19:14 +1300)]
Merge pull request #18919 from colemanw/searchKitValidate

Search ext: Fix validation and saving on search admin screen

3 years agoCivi\Setup\DbUtil Fix CodeStyle
lasse [Wed, 4 Nov 2020 05:18:22 +0000 (06:18 +0100)]
Civi\Setup\DbUtil Fix CodeStyle

3 years agoSearch ext: Fix validation and saving on search admin screen
Coleman Watts [Wed, 4 Nov 2020 03:25:58 +0000 (22:25 -0500)]
Search ext: Fix validation and saving on search admin screen

3 years agoAdd UI metadata for payment_processor_id on financialTrxn
Matthew Wire [Tue, 3 Nov 2020 22:02:28 +0000 (22:02 +0000)]
Add UI metadata for payment_processor_id on financialTrxn

3 years agoMerge pull request #18914 from totten/master-auth-client
Eileen McNaughton [Tue, 3 Nov 2020 19:39:49 +0000 (08:39 +1300)]
Merge pull request #18914 from totten/master-auth-client

dev/core#2141 - Add "oauth-client" extension (hidden)

3 years agoMerge pull request #18864 from demeritcowboy/logz
Eileen McNaughton [Tue, 3 Nov 2020 19:34:49 +0000 (08:34 +1300)]
Merge pull request #18864 from demeritcowboy/logz

dev/core#2148 - Incorrect use of ts, quotes, escape in log call

3 years agoAdds performance improvement when browsing the logs
Vangelis Pantazis [Tue, 3 Nov 2020 17:29:08 +0000 (17:29 +0000)]
Adds performance improvement when browsing the logs

3 years agoMerge pull request #18915 from colemanw/entityPaths2
colemanw [Tue, 3 Nov 2020 17:10:49 +0000 (12:10 -0500)]
Merge pull request #18915 from colemanw/entityPaths2

Use standard names for entity paths and add a few more paths

3 years agoMerge pull request #18910 from totten/master-error-log
colemanw [Tue, 3 Nov 2020 16:44:34 +0000 (11:44 -0500)]
Merge pull request #18910 from totten/master-error-log

CRM_Core_Error::formatFooException - Don't bomb on 'Error'

3 years agoUse standard names from CRM_Core_Action for entity paths and add a few more paths
Coleman Watts [Tue, 3 Nov 2020 14:32:38 +0000 (09:32 -0500)]
Use standard names from CRM_Core_Action for entity paths and add a few more paths

For the sake of consistency, this changes the newly-added entity paths to follow the naming convention in CRM_Core_Action:
add/update/view/delete
instead of create/edit/view/delete

3 years agoMerge pull request #18909 from colemanw/searchDisplay2
colemanw [Tue, 3 Nov 2020 14:07:00 +0000 (09:07 -0500)]
Merge pull request #18909 from colemanw/searchDisplay2

Search ext: Add links to search admin and improve links in displays

3 years agooauth-client - Add basic UI to inspect/debug JWT-based tokens
Tim Otten [Tue, 3 Nov 2020 12:25:43 +0000 (04:25 -0800)]
oauth-client - Add basic UI to inspect/debug JWT-based tokens

3 years agodev/core#2141 - AuthorizationCode - Validate that the final return URL is internal
Tim Otten [Tue, 3 Nov 2020 03:36:14 +0000 (19:36 -0800)]
dev/core#2141 - AuthorizationCode - Validate that the final return URL is internal

3 years agooauth-client - Add menu item ("Admin: System Settings: OAuth")
Tim Otten [Tue, 3 Nov 2020 01:08:20 +0000 (17:08 -0800)]
oauth-client - Add menu item ("Admin: System Settings: OAuth")

3 years agodev/core#2141 - Basic UI for CRUD'ing clients
Tim Otten [Mon, 2 Nov 2020 06:17:06 +0000 (22:17 -0800)]
dev/core#2141 - Basic UI for CRUD'ing clients

3 years agooauth-client - Mark extension as hidden
Tim Otten [Mon, 2 Nov 2020 22:44:49 +0000 (14:44 -0800)]
oauth-client - Mark extension as hidden

3 years agodev/core#2141 - Set prompt=select_account whenever using MailSetup
Tim Otten [Mon, 2 Nov 2020 09:41:13 +0000 (01:41 -0800)]
dev/core#2141 - Set prompt=select_account whenever using MailSetup

If you're an admin setting up an email return-channel, then you may not
intend to use your normal email account.  It makes sense to always prompt
for the preferred account.

3 years agodev/core#2141 - If a mail-store has an OAuth2 token, then use it
Tim Otten [Sat, 31 Oct 2020 01:39:21 +0000 (18:39 -0700)]
dev/core#2141 - If a mail-store has an OAuth2 token, then use it

3 years agodev/core#2141 - Allow OAuth2 services to define mail setup routine
Tim Otten [Fri, 30 Oct 2020 08:39:58 +0000 (01:39 -0700)]
dev/core#2141 - Allow OAuth2 services to define mail setup routine

Overview
--------

For certain types of mail accounts -- such as Google Mail and Microsoft
Exchange Online -- the setup process may require interaction with a remote
web-service.

If you have OAuth2 enabled for one of these services, then this will create
an option for "Add Mail Account".

Before
------

There is no setup procedure.

After
-----

* Navigate to "Administer => CiviMail => Mail Accounts".
* Below the table, there is a select2 box for "Add Mail Account".
* If "Microsoft Exchange Online" is configured, then it will appear in the dropdown. Choose it.
* It redirects to MS to get authorization from the user (OAuth2 Authorization Code).
* The user comes back.
* We initialize a new mail account (`MailSettings` / `civicrm_mail_settings`)
* We accept the code and save the token (`OAuthSysToken`) with the account.
* We redirect to the account configuration form.

Technical Details
-----------------

The new mail account will have some details, such as `server`, `protocol`,
and `username` pre-filled.  This uses a template -- see e.g.
`providers/ms-exchange.dist.json` (`mailSettingsTemplate`).

3 years agodev/core#2141 - AuthorizationGrant - Upon return, emit hook & possible redirect
Tim Otten [Fri, 30 Oct 2020 07:13:35 +0000 (00:13 -0700)]
dev/core#2141 - AuthorizationGrant - Upon return, emit hook & possible redirect

3 years agodev/core#2141 - Add support for token-tagging to all grant flows
Tim Otten [Fri, 30 Oct 2020 00:58:01 +0000 (17:58 -0700)]
dev/core#2141 - Add support for token-tagging to all grant flows

Suppose you have a downstream app/module -- such as the Civi-IMAP app/module.  It needs to store a notation which says
"this thing in our data" (e.g.  `civicrm_mail_settings`) "corresponds to that token in the OAuth data".

It can put a tag on the token (`tag=civicrm_mail_settings:123`) and use that for lookup

```
$tag = `OAuthSysToken.refresh +w tag=civicrm_mail_settings:123`
```

The advantage of this is that it's simple, flexible, and doesn't require new schema.

Of course, it's not end-all/be-all.  It's OK for 1:1 relationship.  But if
you want 1:M or M:M, then you'll have to model that as something else.  But
for basic usage, tags are simple and moderately flexible.

3 years agodev/core#2141 - Add "local-redir" stub for use as OAuth2 "Redirect URL"
Tim Otten [Thu, 29 Oct 2020 01:47:42 +0000 (18:47 -0700)]
dev/core#2141 - Add "local-redir" stub for use as OAuth2 "Redirect URL"

If you are developing on a local HTTP system with virtual hosts, then many
OAuth2 services won't recognize it as a local/dev URL.

The "local-redir.sh" script runs a stub service that will be accepted as
a local/dev "Redirect URL".

3 years agodev/core#2141 - APIv4 - Add `OAuthClient.clientCredential` authentication
Tim Otten [Wed, 28 Oct 2020 22:32:05 +0000 (15:32 -0700)]
dev/core#2141 - APIv4 - Add `OAuthClient.clientCredential` authentication

3 years agodev/core#2141 - APIv4 - Add `OAuthClient.userPassword` authentication
Tim Otten [Wed, 28 Oct 2020 21:05:03 +0000 (14:05 -0700)]
dev/core#2141 - APIv4 - Add `OAuthClient.userPassword` authentication

3 years agodev/core#2141 - APIv4 - Add OAuthSysToken.refresh action
Tim Otten [Wed, 28 Oct 2020 08:39:15 +0000 (01:39 -0700)]
dev/core#2141 - APIv4 - Add OAuthSysToken.refresh action

3 years agodev/core#2141 - APIv4 - Add `OAuthClient.authorizationCode` authentication
Tim Otten [Wed, 28 Oct 2020 09:28:24 +0000 (02:28 -0700)]
dev/core#2141 - APIv4 - Add `OAuthClient.authorizationCode` authentication

3 years agodev/core#2141 - Update 'oauth2.league' to respect setting 'oauthClientRedirectUrl'
Tim Otten [Thu, 29 Oct 2020 00:08:29 +0000 (17:08 -0700)]
dev/core#2141 - Update 'oauth2.league' to respect setting 'oauthClientRedirectUrl'

3 years agodev/core#2141 - Add services 'oauth2.league' and 'oauth2.token'
Tim Otten [Tue, 27 Oct 2020 13:15:43 +0000 (06:15 -0700)]
dev/core#2141 - Add services 'oauth2.league' and 'oauth2.token'

3 years agodev/core#2141 - APIv4 - Expands tests for OAuthSysToken
Tim Otten [Tue, 27 Oct 2020 12:20:38 +0000 (05:20 -0700)]
dev/core#2141 - APIv4 - Expands tests for OAuthSysToken

3 years agodev/core#2141 - APIv4 - Validate OAuthClient.provider property
Tim Otten [Tue, 27 Oct 2020 11:16:10 +0000 (04:16 -0700)]
dev/core#2141 - APIv4 - Validate OAuthClient.provider property

3 years agodev/core#2141 - APIv4 - Add OAuthClient & OAuthSysToken with unit-test
Tim Otten [Tue, 27 Oct 2020 00:34:12 +0000 (17:34 -0700)]
dev/core#2141 - APIv4 - Add OAuthClient & OAuthSysToken with unit-test