Index: branches/RC/admin/install/upgrades/inportal_upgrade_v4.2.0.php
===================================================================
diff -u
--- branches/RC/admin/install/upgrades/inportal_upgrade_v4.2.0.php (revision 0)
+++ branches/RC/admin/install/upgrades/inportal_upgrade_v4.2.0.php (revision 9121)
@@ -0,0 +1,8 @@
+Upgrade_4_2_0('after');
+?>
\ No newline at end of file
Index: branches/RC/core/kernel/db/db_event_handler.php
===================================================================
diff -u -r9043 -r9121
--- branches/RC/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 9043)
+++ branches/RC/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 9121)
@@ -411,10 +411,12 @@
$perm_status = true;
$user_id = $this->Application->RecallVar('user_id');
$event->setEventParam('top_prefix', $this->Application->GetTopmostPrefix($event->Prefix, true));
+ $status_checked = false;
if ($user_id == -1 || $this->CheckPermission($event)) {
// don't autoload item, when user doesn't have view permission
$this->LoadItem($event);
+ $status_checked = true;
if ($user_id != -1 && !$this->checkItemStatus($event)) {
$perm_status = false;
}
@@ -428,7 +430,7 @@
if ($this->Application->isDebugMode()) {
$this->Application->Debugger->appendTrace();
}
- trigger_error('ItemLoad Permission Failed for prefix ['.$event->getPrefixSpecial().']', E_USER_WARNING);
+ trigger_error('ItemLoad Permission Failed for prefix ['.$event->getPrefixSpecial().'] in '.($status_checked ? 'checkItemStatus' : 'CheckPermission').'', E_USER_WARNING);
$next_template = $this->Application->IsAdmin() ? 'no_permission' : $this->Application->ConfigValue('NoPermissionTemplate');
$this->Application->Redirect($next_template, Array('next_template' => $this->Application->GetVar('t')));
}
Index: branches/RC/core/units/email_events/email_events_event_handler.php
===================================================================
diff -u -r8929 -r9121
--- branches/RC/core/units/email_events/email_events_event_handler.php (.../email_events_event_handler.php) (revision 8929)
+++ branches/RC/core/units/email_events/email_events_event_handler.php (.../email_events_event_handler.php) (revision 9121)
@@ -1,12 +1,5 @@
"") AND (LanguageId = 1)';
$replacement_tags = $this->Conn->GetCol($sql, 'EventId');
-
+
foreach ($replacement_tags as $event_id => $replacement_tag) {
$sql = 'UPDATE '.TABLE_PREFIX.'Events
SET ReplacementTags = '.$this->Conn->qstr($replacement_tag).'
WHERE EventId = '.$event_id;
$this->Conn->Query($sql);
}
-
+
// drop moved field from source table
$sql = 'ALTER TABLE '.TABLE_PREFIX.'EmailMessage
DROP `ReplacementTags`';
$this->Conn->Query($sql);
}
}
-
+
/**
* Callback function, that makes all ml fields of text type null with same default value
*
@@ -115,6 +115,48 @@
return true;
}
+ /**
+ * Replaces In-Portal tags in Forgot Password related email events to K4 ones
+ *
+ * @param string $mode when called mode {before, after)
+ */
+ function Upgrade_4_2_0($mode)
+ {
+ if ($mode == 'after') {
+ // 1. get event ids based on their name and type combination
+ $event_names = Array (
+ 'USER.PSWD_'.EVENT_TYPE_ADMIN,
+ 'USER.PSWD_'.EVENT_TYPE_FRONTEND,
+ 'USER.PSWDC_'.EVENT_TYPE_FRONTEND,
+ );
+
+ $event_sql = Array ();
+ foreach ($event_names as $mixed_event) {
+ list ($event_name, $event_type) = explode('_', $mixed_event, 2);
+ $event_sql[] = 'Event = "'.$event_name.'" AND Type = '.$event_type;
+ }
+
+ $sql = 'SELECT EventId
+ FROM '.TABLE_PREFIX.'Events
+ WHERE ('.implode(') OR (', $event_sql).')';
+ $event_ids = implode(',', $this->Conn->GetCol($sql));
+
+ // 2. replace In-Portal tags to K4 tags
+ $replacements = Array (
+ '' => '',
+ '' => '',
+ );
+
+ foreach ($replacements as $old_tag => $new_tag) {
+ $sql = 'UPDATE '.TABLE_PREFIX.'EmailMessage
+ SET Template = REPLACE(Template, '.$this->Conn->qstr($old_tag).', '.$this->Conn->qstr($new_tag).')
+ WHERE EventId IN ('.$event_ids.')';
+ $this->Conn->Query($sql);
+ }
+
+ }
+ }
+
}
?>
\ No newline at end of file
Index: branches/RC/core/kernel/constants.php
===================================================================
diff -u -r8929 -r9121
--- branches/RC/core/kernel/constants.php (.../constants.php) (revision 8929)
+++ branches/RC/core/kernel/constants.php (.../constants.php) (revision 9121)
@@ -11,11 +11,11 @@
define('FLT_SEARCH', 3); // User "Search" Having/Where filter [OR]
define('FLT_VIEW', 4); // User "View Menu" Having/Where filter [AND]
define('FLT_CUSTOM', 5); // Custom fields (above) grid columns [AND]
-
+
// kMultipleFilter types
define('FLT_TYPE_AND', 'AND');
define('FLT_TYPE_OR', 'OR');
-
+
// item statuses
safeDefine('STATUS_DISABLED', 0);
safeDefine('STATUS_ACTIVE', 1);
@@ -37,8 +37,16 @@
define('ptCATEGORY', 0);
define('ptSYSTEM', 1);
+ // email event statuses & types
+ define('EVENT_TYPE_FRONTEND', 0);
+ define('EVENT_TYPE_ADMIN', 1);
+
+ define('EVENT_STATUS_DISABLED', 0);
+ define('EVENT_STATUS_ENABLED', 1);
+ define('EVENT_STATUS_FRONTEND', 2);
+
define('EDIT_MARK', '&|edit|&'); // replace this sequence inside filters to SID[_main_wid]
-
+
$application =& kApplication::Instance();
$spacer_url = $application->BaseURL().'core/admin_templates/img/spacer.gif';
define('SPACER_URL', $spacer_url);
@@ -47,10 +55,10 @@
// don't show debugger buttons on front (if not overrided in "debug.php")
safeDefine('DBG_TOOLBAR_BUTTONS', 0);
}
-
+
define('smDEBUG', 2); // show section in debug mode only
define('smSUPER_ADMIN', 4); // show section in super admin & debug mode
-
+
// common usage regular expressions
define('REGEX_EMAIL_USER', '[-a-zA-Z0-9!\#$%&*+\/=?^_`{|}~.]+');
define('REGEX_EMAIL_DOMAIN', '[a-zA-Z0-9]{1}[-.a-zA-Z0-9_]*\.[a-zA-Z]{2,6}');