[Rt-commit] rt branch, 4.4/gateway-refactor, repushed
Alex Vandiver
alexmv at bestpractical.com
Wed Mar 19 10:57:00 EDT 2014
The branch 4.4/gateway-refactor was deleted and repushed:
was 19fdd16e61ef405287e8e6b6567435c03e0cf8ab
now d4dd6eca094739fa3bbe5442434cd803ae4b99cc
1: 15a0c3b = 1: 15a0c3b RT::Interface::Email doesn't need to be an Exporter
2: 9b135a2 = 2: 9b135a2 Reorder functions to more obviously split sending and receiving mail
3: 670a057 = 3: 670a057 Adjust POD headers to reflect split
4: 5dfc009 = 4: 5dfc009 Update MailPlugins to only reference existant modules
5: b9ed3c2 = 5: b9ed3c2 Move MailPlugins documentation out of rt-mailgate, where is is mostly irrelevant
6: e3d18e3 = 6: e3d18e3 Remove duplicate ParseCcAddressesFromHead in RT::EmailParser
7: a93449c = 7: a93449c Use Scope::Upper to allow returns from Gateway from nested subs
8: f993bae = 8: f993bae Add a base email plugin role, which provides TMPFAIL/FAILURE/SUCCESS
9: 64fdc23 ! 9: c2e65a5 Check if each named mail plugin DOES the mail plugin role
@@ -13,7 +13,7 @@
- unless ( defined *{ $Class . "::GetCurrentUser" }{CODE} ) {
- $RT::Logger->crit( "No GetCurrentUser code found in $Class module");
+ unless ( $Class->DOES( "RT::Interface::Email::Role" ) ) {
-+ $RT::Logger->crit( "$Class is not an RT::Interface::Email::Role");
++ $RT::Logger->crit( "$Class does not implement RT::Interface::Email::Role. Mail plugins from RT 4.2 and earlier are not forward-compatible with RT 4.4.");
next;
}
push @res, $Class;
10: 1a448cc = 10: a997949 Return values of ApplyBeforeDecode plugins' GetCurrentUser are irrelevant
11: de17bee = 11: 588a509 Push bounce short-circuiting down into _HandleMachineGeneratedMail
12: 72bbb64 = 12: 1887b21 $IsALoop is now unused in Gateway
13: 4d6b1f9 = 13: 314ad1b Stop moving RT-Squelch-Replies-To aside
14: e16c9c5 = 14: 19607b9 Simplify _HandleMachineGeneratedMail logic
15: b1311e0 = 15: 531b96b Use different method names rather than an ApplyBeforeDecode method
16: 44b1d1c = 16: 70daad9 Use FAILURE to abort from GetCurrentUser, rather than a magic -1 value
17: 5c2a914 = 17: 5a0942b Remove the unused $error variable
18: e7b4f2b = 18: 8cabccc Move $Right to where it is used
19: cc59983 = 19: 52e24c3 Move SystemTicket definition to where it is first used
20: 4219e9c = 20: 6f62839 Move NewSubject to where it is used
21: 23852d8 = 21: 6d715aa Remove CreateUser, merging to form a more featureful LoadOrCreateByEmail
22: 289c789 = 22: e9e5e8b Always create the user; this simplifies ACL checking greatly
23: c4b59b4 = 23: e82d433 Split authentication from authorization
24: 60c6021 = 24: d1c4c8b Remove no-longer-used _NoAuthorizedUserFound
25: f5329f6 = 25: afadc73 Remove now-unused $Right variable, previously used by _NoAuthorizedUserFound
26: e8c4c03 = 26: 73f1c62 Fail if the first action is unauthenticated
27: 5ac55e4 = 27: a5fc795 Notify the owner on common mis-configurations
28: 1a6e40c = 28: 6163947 Remove extra error in mail-gateway
29: 5aaefff = 29: 87b474c Add back a warning that is now lacking
30: 947f1d4 ! 30: c9d8ab4 Stop passing mail plugins around; load them lazily in one Plugins() method
@@ -68,7 +68,7 @@
- do { $RT::Logger->error("Couldn't load $Class: $@"); next };
-
- unless ( $Class->DOES( "RT::Interface::Email::Role" ) ) {
-- $RT::Logger->crit( "$Class is not an RT::Interface::Email::Role");
+- $RT::Logger->crit( "$Class does not implement RT::Interface::Email::Role. Mail plugins from RT 4.2 and earlier are not forward-compatible with RT 4.4.");
- next;
+sub Plugins {
+ my %args = (
@@ -93,7 +93,7 @@
+ do { $RT::Logger->error("Couldn't load $Class: $@"); next };
+
+ unless ( $Class->DOES( "RT::Interface::Email::Role" ) ) {
-+ $RT::Logger->crit( "$Class is not an RT::Interface::Email::Role");
++ $RT::Logger->crit( "$Class does not implement RT::Interface::Email::Role. Mail plugins from RT 4.2 and earlier are not forward-compatible with RT 4.4.");
+ next;
+ }
+ push @PLUGINS, $Class;
31: 0401e0a = 31: 60d8040 Split action handling into plugin classes
32: 6f60405 = 32: b707acb It is possible that plugins will alter @actions; ensure that we have a valid action before calling it
33: 83090c2 = 33: 82c43c3 Split default authentication from default authorization
34: a538af3 = 34: 3430b59 Local'ize MailErrors to avoid having to pass $ErrorsTo everywhere
35: 5165ece = 35: a3b032a Remove the warning about the deprecated Auth::GnuPG/Auth::SMIME plugins
36: 68b2c5e = 36: 8127768 Allow lazy adding of Auth::MailFrom if no other GetCurrentUser plugins exist
37: 607666f = 37: dae5c31 There is no reason to not always enable Auth::Crypt
38: da92d8c = 38: 3c0d075 Make Crypt not an Auth:: plugin, but hardcoded
39: 981c743 = 39: ddd76e6 Move RejectOnUnencrypted to being a mail plugin
40: 4b243e9 = 40: 7df59ef Merge ParseAddressFromHeader and RT::EmailParser->ParseEmailAddress
41: f0f6076 = 41: 0910b6f Fix callsites of ParseSenderAddressFromHead to be slightly less incomprehensible
42: 261158b = 42: 6b3c173 $MessageId is only used in IsMachineGeneratedMail; move it in there
43: 1e75588 = 43: 48a5394 Merge CheckForSuspiciousSender, CheckForAutoGenerated, and CheckForBounce
44: 31dfb4f = 44: e211446 Reduce repetition by making MailError handle throwing the FAILURE, as well
45: 5754fdd = 45: 2f7826f Move ACL checking for Take and Resolve into their own plugins
46: 19fdd16 = 46: d4dd6ec Update POD for new methods and functionality
More information about the rt-commit
mailing list