Version Description
(2015-03-12) = * Bug Fix * Fixed an issue where the IP address was not being reported for anyone using PHP version 5.3.3 or earlier support ticket
Download this release
Release Info
Developer | WPWhiteSecurity |
Plugin | WP Security Audit Log |
Version | 1.4.1 |
Comparing to | |
See all releases |
Code changes from version 1.3.3 to 1.4.1
- classes/DB/ActiveRecord.php +5 -3
- classes/Sensors/LogInOut.php +121 -50
- classes/Settings.php +30 -73
- classes/Views/Settings.php +30 -6
- classes/Views/ToggleAlerts.php +1 -2
- defaults.php +1 -0
- languages/wp-security-audit-log-de_DE.mo +0 -0
- languages/wp-security-audit-log-it_IT.mo +0 -0
- languages/wp-security-audit-log-ro_RO.mo +0 -0
- languages/wp-security-audit-log.pot +256 -247
- readme.txt +24 -3
- wp-security-audit-log.php +44 -5
classes/DB/ActiveRecord.php
CHANGED
@@ -160,9 +160,11 @@ abstract class WSAL_DB_ActiveRecord {
|
|
160 |
/**
|
161 |
* Remove this ActiveRecord structure into DB.
|
162 |
*/
|
163 |
-
public function Uninstall()
|
|
|
|
|
164 |
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
|
165 |
-
|
166 |
}
|
167 |
|
168 |
/**
|
@@ -386,7 +388,7 @@ abstract class WSAL_DB_ActiveRecord {
|
|
386 |
$plugin = WpSecurityAuditLog::GetInstance();
|
387 |
foreach(glob(dirname(__FILE__) . '/*.php') as $file){
|
388 |
$class = $plugin->GetClassFileClassName($file);
|
389 |
-
if(is_subclass_of($class, __CLASS__)){
|
390 |
$class = new $class();
|
391 |
$class->Uninstall();
|
392 |
}
|
160 |
/**
|
161 |
* Remove this ActiveRecord structure into DB.
|
162 |
*/
|
163 |
+
public function Uninstall()
|
164 |
+
{
|
165 |
+
global $wpdb;
|
166 |
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
|
167 |
+
$wpdb->query($this->_GetUninstallQuery());
|
168 |
}
|
169 |
|
170 |
/**
|
388 |
$plugin = WpSecurityAuditLog::GetInstance();
|
389 |
foreach(glob(dirname(__FILE__) . '/*.php') as $file){
|
390 |
$class = $plugin->GetClassFileClassName($file);
|
391 |
+
if(is_subclass_of($class, __CLASS__)) {
|
392 |
$class = new $class();
|
393 |
$class->Uninstall();
|
394 |
}
|
classes/Sensors/LogInOut.php
CHANGED
@@ -30,8 +30,16 @@ class WSAL_Sensors_LogInOut extends WSAL_AbstractSensor {
|
|
30 |
), true);
|
31 |
}
|
32 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
|
34 |
-
const TRANSIENT_FAILEDLOGINS = 'wsal-failedlogins';
|
|
|
35 |
|
36 |
protected function GetLoginFailureLogLimit(){
|
37 |
return 10;
|
@@ -41,17 +49,33 @@ class WSAL_Sensors_LogInOut extends WSAL_AbstractSensor {
|
|
41 |
return 12 * 60 * 60;
|
42 |
}
|
43 |
|
44 |
-
protected function IsPastLoginFailureLimit($ip){
|
45 |
-
$
|
46 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
}
|
48 |
|
49 |
-
protected function IncrementLoginFailure($ip){
|
50 |
-
$
|
51 |
-
|
52 |
-
if(
|
53 |
-
|
54 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
}
|
56 |
|
57 |
public function EventLoginFailure($username){
|
@@ -62,47 +86,94 @@ class WSAL_Sensors_LogInOut extends WSAL_AbstractSensor {
|
|
62 |
$tt1 = new WSAL_DB_Occurrence();
|
63 |
$tt2 = new WSAL_DB_Meta();
|
64 |
|
65 |
-
|
66 |
-
|
67 |
-
$
|
68 |
-
|
69 |
-
$
|
70 |
-
|
71 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
AND (created_on BETWEEN %d AND %d)
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
|
|
|
|
79 |
)
|
80 |
-
|
81 |
-
|
82 |
-
(
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
$
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
105 |
}
|
106 |
-
}
|
107 |
-
|
108 |
}
|
30 |
), true);
|
31 |
}
|
32 |
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* @return boolean Whether we are running on multisite or not.
|
36 |
+
*/
|
37 |
+
public function IsMultisite(){
|
38 |
+
return function_exists('is_multisite') && is_multisite();
|
39 |
+
}
|
40 |
|
41 |
+
const TRANSIENT_FAILEDLOGINS = 'wsal-failedlogins-known';
|
42 |
+
const TRANSIENT_FAILEDLOGINS_UNKNOWN = 'wsal-failedlogins-unknown';
|
43 |
|
44 |
protected function GetLoginFailureLogLimit(){
|
45 |
return 10;
|
49 |
return 12 * 60 * 60;
|
50 |
}
|
51 |
|
52 |
+
protected function IsPastLoginFailureLimit($ip, $site_id, $user){
|
53 |
+
$get_fn = $this->IsMultisite() ? 'get_site_transient' : 'get_transient';
|
54 |
+
if($user) {
|
55 |
+
$dataKnown = $get_fn(self::TRANSIENT_FAILEDLOGINS);
|
56 |
+
return ($dataKnown !== false) && isset($dataKnown[$site_id.":".$user->ID.":".$ip]) && ($dataKnown[$site_id.":".$user->ID.":".$ip] > $this->GetLoginFailureLogLimit());
|
57 |
+
} else {
|
58 |
+
$dataUnknown = $get_fn(self::TRANSIENT_FAILEDLOGINS_UNKNOWN);
|
59 |
+
return ($dataUnknown !== false) && isset($dataUnknown[$site_id.":".$ip]) && ($dataUnknown[$site_id.":".$ip] > $this->GetLoginFailureLogLimit());
|
60 |
+
}
|
61 |
}
|
62 |
|
63 |
+
protected function IncrementLoginFailure($ip, $site_id, $user){
|
64 |
+
$get_fn = $this->IsMultisite() ? 'get_site_transient' : 'get_transient';
|
65 |
+
$set_fn = $this->IsMultisite() ? 'set_site_transient' : 'set_transient';
|
66 |
+
if($user) {
|
67 |
+
$dataKnown = $get_fn(self::TRANSIENT_FAILEDLOGINS);
|
68 |
+
if(!$dataKnown)$dataKnown = array();
|
69 |
+
if(!isset($dataKnown[$site_id.":".$user->ID.":".$ip]))$dataKnown[$site_id.":".$user->ID.":".$ip] = 1;
|
70 |
+
$dataKnown[$site_id.":".$user->ID.":".$ip]++;
|
71 |
+
$set_fn(self::TRANSIENT_FAILEDLOGINS, $dataKnown, $this->GetLoginFailureExpiration());
|
72 |
+
} else {
|
73 |
+
$dataUnknown = $get_fn(self::TRANSIENT_FAILEDLOGINS_UNKNOWN);
|
74 |
+
if(!$dataUnknown)$dataUnknown = array();
|
75 |
+
if(!isset($dataUnknown[$site_id.":".$ip]))$dataUnknown[$site_id.":".$ip] = 1;
|
76 |
+
$dataUnknown[$site_id.":".$ip]++;
|
77 |
+
$set_fn(self::TRANSIENT_FAILEDLOGINS_UNKNOWN, $dataUnknown, $this->GetLoginFailureExpiration());
|
78 |
+
}
|
79 |
}
|
80 |
|
81 |
public function EventLoginFailure($username){
|
86 |
$tt1 = new WSAL_DB_Occurrence();
|
87 |
$tt2 = new WSAL_DB_Meta();
|
88 |
|
89 |
+
$username = $_POST["log"];
|
90 |
+
$newAlertCode = 1003;
|
91 |
+
$user = get_user_by('login', $username);
|
92 |
+
$site_id = (function_exists('get_current_blog_id') ? get_current_blog_id() : 0);
|
93 |
+
if ($user) {
|
94 |
+
$newAlertCode = 1002;
|
95 |
+
$userRoles = $this->plugin->settings->GetCurrentUserRoles($user->roles);
|
96 |
+
}
|
97 |
+
|
98 |
+
if($this->IsPastLoginFailureLimit($ip, $site_id, $user))return;
|
99 |
+
|
100 |
+
if ($newAlertCode == 1002) {
|
101 |
+
$occ = WSAL_DB_Occurrence::LoadMultiQuery('
|
102 |
+
SELECT occurrence.* FROM `' . $tt1->GetTable() . '` occurrence
|
103 |
+
INNER JOIN `' . $tt2->GetTable() . '` ipMeta on ipMeta.occurrence_id = occurrence.id
|
104 |
+
and ipMeta.name = "ClientIP"
|
105 |
+
and ipMeta.value = %s
|
106 |
+
INNER JOIN `' . $tt2->GetTable() . '` usernameMeta on usernameMeta.occurrence_id = occurrence.id
|
107 |
+
and usernameMeta.name = "Username"
|
108 |
+
and usernameMeta.value = %s
|
109 |
+
WHERE occurrence.alert_id = %d AND occurrence.site_id = %d
|
110 |
AND (created_on BETWEEN %d AND %d)
|
111 |
+
GROUP BY occurrence.id',
|
112 |
+
array(
|
113 |
+
json_encode($ip),
|
114 |
+
json_encode($username),
|
115 |
+
1002,
|
116 |
+
$site_id,
|
117 |
+
mktime(0, 0, 0, $m, $d, $y),
|
118 |
+
mktime(0, 0, 0, $m, $d + 1, $y) - 1
|
119 |
)
|
120 |
+
);
|
121 |
+
|
122 |
+
$occ = count($occ) ? $occ[0] : null;
|
123 |
+
if($occ && $occ->IsLoaded()){
|
124 |
+
// update existing record exists user
|
125 |
+
$this->IncrementLoginFailure($ip, $site_id, $user);
|
126 |
+
$new = $occ->GetMetaValue('Attempts', 0) + 1;
|
127 |
+
|
128 |
+
if($new > $this->GetLoginFailureLogLimit())
|
129 |
+
$new = $this->GetLoginFailureLogLimit() . '+';
|
130 |
+
|
131 |
+
$occ->SetMetaValue('Attempts', $new);
|
132 |
+
$occ->SetMetaValue('Username', $username);
|
133 |
+
//$occ->SetMetaValue('CurrentUserRoles', $userRoles);
|
134 |
+
$occ->created_on = null;
|
135 |
+
$occ->Save();
|
136 |
+
} else {
|
137 |
+
// create a new record exists user
|
138 |
+
$this->plugin->alerts->Trigger($newAlertCode, array(
|
139 |
+
'Attempts' => 1,
|
140 |
+
'Username' => $_POST["log"],
|
141 |
+
'CurrentUserRoles' => $userRoles
|
142 |
+
));
|
143 |
+
}
|
144 |
+
} else {
|
145 |
+
$occUnknown = WSAL_DB_Occurrence::LoadMultiQuery('
|
146 |
+
SELECT occurrence.* FROM `' . $tt1->GetTable() . '` occurrence
|
147 |
+
INNER JOIN `' . $tt2->GetTable() . '` ipMeta on ipMeta.occurrence_id = occurrence.id
|
148 |
+
and ipMeta.name = "ClientIP" and ipMeta.value = %s
|
149 |
+
WHERE occurrence.alert_id = %d AND occurrence.site_id = %d
|
150 |
+
AND (created_on BETWEEN %d AND %d)
|
151 |
+
GROUP BY occurrence.id',
|
152 |
+
array(
|
153 |
+
json_encode($ip),
|
154 |
+
1003,
|
155 |
+
$site_id,
|
156 |
+
mktime(0, 0, 0, $m, $d, $y),
|
157 |
+
mktime(0, 0, 0, $m, $d + 1, $y) - 1
|
158 |
+
)
|
159 |
+
);
|
160 |
+
|
161 |
+
$occUnknown = count($occUnknown) ? $occUnknown[0] : null;
|
162 |
+
if($occUnknown && $occUnknown->IsLoaded()) {
|
163 |
+
// update existing record not exists user
|
164 |
+
$this->IncrementLoginFailure($ip, $site_id, false);
|
165 |
+
$new = $occUnknown->GetMetaValue('Attempts', 0) + 1;
|
166 |
+
|
167 |
+
if($new > $this->GetLoginFailureLogLimit())
|
168 |
+
$new = $this->GetLoginFailureLogLimit() . '+';
|
169 |
+
|
170 |
+
$occUnknown->SetMetaValue('Attempts', $new);
|
171 |
+
$occUnknown->created_on = null;
|
172 |
+
$occUnknown->Save();
|
173 |
+
} else {
|
174 |
+
// create a new record not exists user
|
175 |
+
$this->plugin->alerts->Trigger($newAlertCode, array('Attempts' => 1));
|
176 |
+
}
|
177 |
}
|
178 |
+
}
|
|
|
179 |
}
|
classes/Settings.php
CHANGED
@@ -1,31 +1,28 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
class WSAL_Settings {
|
4 |
/**
|
5 |
* @var WpSecurityAuditLog
|
6 |
*/
|
7 |
protected $_plugin;
|
8 |
-
|
9 |
-
public function __construct(WpSecurityAuditLog $plugin){
|
10 |
$this->_plugin = $plugin;
|
11 |
}
|
12 |
|
13 |
// <editor-fold desc="Developer Options">
|
14 |
-
|
15 |
const OPT_DEV_DATA_INSPECTOR = 'd';
|
16 |
const OPT_DEV_PHP_ERRORS = 'p';
|
17 |
const OPT_DEV_REQUEST_LOG = 'r';
|
18 |
const OPT_DEV_BACKTRACE_LOG = 'b';
|
19 |
|
20 |
-
|
21 |
|
|
|
22 |
/**
|
23 |
* @return array Array of developer options to be enabled by default.
|
24 |
*/
|
25 |
public function GetDefaultDevOptions(){
|
26 |
return array();
|
27 |
}
|
28 |
-
|
29 |
/**
|
30 |
* Returns whether a developer option is enabled or not.
|
31 |
* @param string $option See self::OPT_DEV_* constants.
|
@@ -41,14 +38,12 @@ class WSAL_Settings {
|
|
41 |
}
|
42 |
return in_array($option, $this->_devoption);
|
43 |
}
|
44 |
-
|
45 |
/**
|
46 |
* @return boolean Whether any developer option has been enabled or not.
|
47 |
*/
|
48 |
public function IsAnyDevOptionEnabled(){
|
49 |
return !!$this->_plugin->GetGlobalOption('dev-options', null);
|
50 |
}
|
51 |
-
|
52 |
/**
|
53 |
* Sets whether a developer option is enabled or not.
|
54 |
* @param string $option See self::OPT_DEV_* constants.
|
@@ -69,7 +64,6 @@ class WSAL_Settings {
|
|
69 |
implode(',', $this->_devoption)
|
70 |
);
|
71 |
}
|
72 |
-
|
73 |
/**
|
74 |
* Remove all enabled developer options.
|
75 |
*/
|
@@ -77,28 +71,24 @@ class WSAL_Settings {
|
|
77 |
$this->_devoption = array();
|
78 |
$this->_plugin->SetGlobalOption('dev-options', '');
|
79 |
}
|
80 |
-
|
81 |
/**
|
82 |
* @return boolean Whether to enable data inspector or not.
|
83 |
*/
|
84 |
public function IsDataInspectorEnabled(){
|
85 |
return $this->IsDevOptionEnabled(self::OPT_DEV_DATA_INSPECTOR);
|
86 |
}
|
87 |
-
|
88 |
/**
|
89 |
* @return boolean Whether to PHP error logging or not.
|
90 |
*/
|
91 |
public function IsPhpErrorLoggingEnabled(){
|
92 |
return $this->IsDevOptionEnabled(self::OPT_DEV_PHP_ERRORS);
|
93 |
}
|
94 |
-
|
95 |
/**
|
96 |
* @return boolean Whether to log requests to file or not.
|
97 |
*/
|
98 |
public function IsRequestLoggingEnabled(){
|
99 |
return $this->IsDevOptionEnabled(self::OPT_DEV_REQUEST_LOG);
|
100 |
}
|
101 |
-
|
102 |
/**
|
103 |
* @return boolean Whether to store debug backtrace for PHP alerts or not.
|
104 |
*/
|
@@ -107,35 +97,30 @@ class WSAL_Settings {
|
|
107 |
}
|
108 |
|
109 |
// </editor-fold>
|
110 |
-
|
111 |
/**
|
112 |
* @return boolean Whether dashboard widgets are enabled or not.
|
113 |
*/
|
114 |
public function IsWidgetsEnabled(){
|
115 |
return !$this->_plugin->GetGlobalOption('disable-widgets');
|
116 |
}
|
117 |
-
|
118 |
/**
|
119 |
* @param boolean $newvalue Whether dashboard widgets are enabled or not.
|
120 |
*/
|
121 |
public function SetWidgetsEnabled($newvalue){
|
122 |
$this->_plugin->SetGlobalOption('disable-widgets', !$newvalue);
|
123 |
}
|
124 |
-
|
125 |
/**
|
126 |
* @return boolean Whether alerts in audit log view refresh automatically or not.
|
127 |
*/
|
128 |
public function IsRefreshAlertsEnabled(){
|
129 |
return !$this->_plugin->GetGlobalOption('disable-refresh');
|
130 |
}
|
131 |
-
|
132 |
/**
|
133 |
* @param boolean $newvalue Whether alerts in audit log view refresh automatically or not.
|
134 |
*/
|
135 |
public function SetRefreshAlertsEnabled($newvalue){
|
136 |
$this->_plugin->SetGlobalOption('disable-refresh', !$newvalue);
|
137 |
}
|
138 |
-
|
139 |
/**
|
140 |
* @return int Maximum number of alerts to show in dashboard widget.
|
141 |
*/
|
@@ -144,23 +129,19 @@ class WSAL_Settings {
|
|
144 |
}
|
145 |
|
146 |
// <editor-fold desc="Pruning Settings">
|
147 |
-
|
148 |
/**
|
149 |
* @return int The maximum number of alerts allowable.
|
150 |
*/
|
151 |
public function GetMaxAllowedAlerts(){
|
152 |
return 5000;
|
153 |
}
|
154 |
-
|
155 |
/**
|
156 |
* @return string The default pruning date.
|
157 |
*/
|
158 |
public function GetDefaultPruningDate(){
|
159 |
return '1 month';
|
160 |
}
|
161 |
-
|
162 |
protected $_pruning = 0;
|
163 |
-
|
164 |
/**
|
165 |
* @return string The current pruning date.
|
166 |
*/
|
@@ -172,7 +153,6 @@ class WSAL_Settings {
|
|
172 |
}
|
173 |
return $this->_pruning;
|
174 |
}
|
175 |
-
|
176 |
/**
|
177 |
* @param string $newvalue The new pruning date.
|
178 |
*/
|
@@ -182,7 +162,6 @@ class WSAL_Settings {
|
|
182 |
$this->_pruning = $newvalue;
|
183 |
}
|
184 |
}
|
185 |
-
|
186 |
/**
|
187 |
* @return integer Maximum number of alerts to keep.
|
188 |
*/
|
@@ -190,7 +169,6 @@ class WSAL_Settings {
|
|
190 |
$val = (int)$this->_plugin->GetGlobalOption('pruning-limit');
|
191 |
return $val ? $val : $this->GetMaxAllowedAlerts();
|
192 |
}
|
193 |
-
|
194 |
/**
|
195 |
* @param integer $newvalue The new maximum number of alerts.
|
196 |
*/
|
@@ -198,27 +176,21 @@ class WSAL_Settings {
|
|
198 |
$newvalue = max(/*min(*/(int)$newvalue/*, $this->GetMaxAllowedAlerts())*/, 1);
|
199 |
$this->_plugin->SetGlobalOption('pruning-limit', $newvalue);
|
200 |
}
|
201 |
-
|
202 |
public function SetPruningDateEnabled($enabled){
|
203 |
$this->_plugin->SetGlobalOption('pruning-date-e', $enabled);
|
204 |
}
|
205 |
-
|
206 |
public function SetPruningLimitEnabled($enabled){
|
207 |
$this->_plugin->SetGlobalOption('pruning-limit-e', $enabled);
|
208 |
}
|
209 |
-
|
210 |
public function IsPruningDateEnabled(){
|
211 |
return $this->_plugin->GetGlobalOption('pruning-date-e', true);
|
212 |
}
|
213 |
-
|
214 |
public function IsPruningLimitEnabled(){
|
215 |
return $this->_plugin->GetGlobalOption('pruning-limit-e', true);
|
216 |
}
|
217 |
-
|
218 |
public function IsRestrictAdmins(){
|
219 |
return $this->_plugin->GetGlobalOption('restrict-admins', false);
|
220 |
}
|
221 |
-
|
222 |
/**
|
223 |
* @deprecated Sandbox functionality is now in an external plugin.
|
224 |
*/
|
@@ -226,19 +198,15 @@ class WSAL_Settings {
|
|
226 |
$plugins = $this->_plugin->licensing->plugins();
|
227 |
return isset($plugins['wsal-sandbox-extensionphp']);
|
228 |
}
|
229 |
-
|
230 |
public function SetRestrictAdmins($enable){
|
231 |
$this->_plugin->SetGlobalOption('restrict-admins', (bool)$enable);
|
232 |
}
|
233 |
|
234 |
// </editor-fold>
|
235 |
-
|
236 |
protected $_disabled = null;
|
237 |
-
|
238 |
public function GetDefaultDisabledAlerts(){
|
239 |
return array(0000, 0001, 0002, 0003, 0004, 0005);
|
240 |
}
|
241 |
-
|
242 |
/**
|
243 |
* @return array IDs of disabled alerts.
|
244 |
*/
|
@@ -251,7 +219,6 @@ class WSAL_Settings {
|
|
251 |
}
|
252 |
return $this->_disabled;
|
253 |
}
|
254 |
-
|
255 |
/**
|
256 |
* @param array $types IDs alerts to disable.
|
257 |
*/
|
@@ -259,59 +226,59 @@ class WSAL_Settings {
|
|
259 |
$this->_disabled = array_unique(array_map('intval', $types));
|
260 |
$this->_plugin->SetGlobalOption('disabled-alerts', implode(',', $this->_disabled));
|
261 |
}
|
262 |
-
|
263 |
public function IsIncognito(){
|
264 |
return $this->_plugin->GetGlobalOption('hide-plugin');
|
265 |
}
|
266 |
-
|
267 |
public function SetIncognito($enabled){
|
268 |
return $this->_plugin->SetGlobalOption('hide-plugin', $enabled);
|
269 |
}
|
270 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
271 |
// <editor-fold desc="Access Control">
|
272 |
|
273 |
protected $_viewers = null;
|
274 |
-
|
275 |
public function SetAllowedPluginViewers($usersOrRoles){
|
276 |
$this->_viewers = $usersOrRoles;
|
277 |
$this->_plugin->SetGlobalOption('plugin-viewers', implode(',', $this->_viewers));
|
278 |
}
|
279 |
-
|
280 |
public function GetAllowedPluginViewers(){
|
281 |
if(is_null($this->_viewers)){
|
282 |
$this->_viewers = array_unique(array_filter(explode(',', $this->_plugin->GetGlobalOption('plugin-viewers'))));
|
283 |
}
|
284 |
return $this->_viewers;
|
285 |
}
|
286 |
-
|
287 |
protected $_editors = null;
|
288 |
-
|
289 |
public function SetAllowedPluginEditors($usersOrRoles){
|
290 |
$this->_editors = $usersOrRoles;
|
291 |
$this->_plugin->SetGlobalOption('plugin-editors', implode(',', $this->_editors));
|
292 |
}
|
293 |
-
|
294 |
public function GetAllowedPluginEditors(){
|
295 |
if(is_null($this->_editors)){
|
296 |
$this->_editors = array_unique(array_filter(explode(',', $this->_plugin->GetGlobalOption('plugin-editors'))));
|
297 |
}
|
298 |
return $this->_editors;
|
299 |
}
|
300 |
-
|
301 |
protected $_perpage = null;
|
302 |
-
|
303 |
public function SetViewPerPage($newvalue){
|
304 |
$this->_perpage = max($newvalue, 1);
|
305 |
$this->_plugin->SetGlobalOption('items-per-page', $this->_perpage);
|
306 |
}
|
307 |
-
|
308 |
public function GetViewPerPage(){
|
309 |
if(is_null($this->_perpage)){
|
310 |
$this->_perpage = (int)$this->_plugin->GetGlobalOption('items-per-page', 10);
|
311 |
}
|
312 |
return $this->_perpage;
|
313 |
}
|
314 |
-
|
315 |
/**
|
316 |
* @param string $action Type of action, either 'view' or 'edit'.
|
317 |
* @return boolean If user has access or not.
|
@@ -319,14 +286,12 @@ class WSAL_Settings {
|
|
319 |
public function CurrentUserCan($action){
|
320 |
return $this->UserCan(wp_get_current_user(), $action);
|
321 |
}
|
322 |
-
|
323 |
/**
|
324 |
* @return string[] List of superadmin usernames.
|
325 |
*/
|
326 |
protected function GetSuperAdmins(){
|
327 |
return $this->_plugin->IsMultisite() ? get_super_admins() : array();
|
328 |
}
|
329 |
-
|
330 |
/**
|
331 |
* @return string[] List of admin usernames.
|
332 |
*/
|
@@ -348,7 +313,6 @@ class WSAL_Settings {
|
|
348 |
return $result;
|
349 |
}
|
350 |
}
|
351 |
-
|
352 |
/**
|
353 |
* Returns access tokens for a particular action.
|
354 |
* @param string $action Type of action.
|
@@ -356,7 +320,6 @@ class WSAL_Settings {
|
|
356 |
*/
|
357 |
public function GetAccessTokens($action){
|
358 |
$allowed = array();
|
359 |
-
|
360 |
switch($action){
|
361 |
case 'view':
|
362 |
$allowed = $this->GetAllowedPluginViewers();
|
@@ -377,7 +340,6 @@ class WSAL_Settings {
|
|
377 |
default:
|
378 |
throw new Exception('Unknown action "'.$action.'".');
|
379 |
}
|
380 |
-
|
381 |
if (!$this->IsRestrictAdmins()) {
|
382 |
if(is_multisite()){
|
383 |
$allowed = array_merge($allowed, get_super_admins());
|
@@ -385,10 +347,8 @@ class WSAL_Settings {
|
|
385 |
$allowed[] = 'administrator';
|
386 |
}
|
387 |
}
|
388 |
-
|
389 |
return array_unique($allowed);
|
390 |
}
|
391 |
-
|
392 |
/**
|
393 |
* @param integer|WP_user $user User object to check.
|
394 |
* @param string $action Type of action, either 'view' or 'edit'.
|
@@ -396,14 +356,11 @@ class WSAL_Settings {
|
|
396 |
*/
|
397 |
public function UserCan($user, $action){
|
398 |
if(is_int($user))$user = get_userdata($user);
|
399 |
-
|
400 |
$allowed = $this->GetAccessTokens($action);
|
401 |
-
|
402 |
$check = array_merge(
|
403 |
$user->roles,
|
404 |
array($user->user_login)
|
405 |
);
|
406 |
-
|
407 |
foreach($check as $item){
|
408 |
if(in_array($item, $allowed)){
|
409 |
return true;
|
@@ -411,7 +368,6 @@ class WSAL_Settings {
|
|
411 |
}
|
412 |
return false;
|
413 |
}
|
414 |
-
|
415 |
public function GetCurrentUserRoles($baseRoles = null){
|
416 |
if ($baseRoles == null) $baseRoles = wp_get_current_user()->roles;
|
417 |
if (function_exists('is_super_admin') && is_super_admin()) $baseRoles[] = 'superadmin';
|
@@ -421,57 +377,47 @@ class WSAL_Settings {
|
|
421 |
// </editor-fold>
|
422 |
|
423 |
// <editor-fold desc="Licensing">
|
424 |
-
|
425 |
public function GetLicenses(){
|
426 |
return $this->_plugin->GetGlobalOption('licenses');
|
427 |
}
|
428 |
-
|
429 |
public function GetLicense($name){
|
430 |
$data = $this->GetLicenses();
|
431 |
$name = sanitize_key(basename($name));
|
432 |
return isset($data[$name]) ? $data[$name] : array();
|
433 |
}
|
434 |
-
|
435 |
public function SetLicenses($data){
|
436 |
$this->_plugin->SetGlobalOption('licenses', $data);
|
437 |
}
|
438 |
-
|
439 |
public function GetLicenseKey($name){
|
440 |
$data = $this->GetLicense($name);
|
441 |
return isset($data['key']) ? $data['key'] : '';
|
442 |
}
|
443 |
-
|
444 |
public function GetLicenseStatus($name){
|
445 |
$data = $this->GetLicense($name);
|
446 |
return isset($data['sts']) ? $data['sts'] : '';
|
447 |
}
|
448 |
-
|
449 |
public function GetLicenseErrors($name){
|
450 |
$data = $this->GetLicense($name);
|
451 |
return isset($data['err']) ? $data['err'] : '';
|
452 |
}
|
453 |
-
|
454 |
public function SetLicenseKey($name, $key){
|
455 |
$data = $this->GetLicenses();
|
456 |
if (!isset($data[$name])) $data[$name] = array();
|
457 |
$data[$name]['key'] = $key;
|
458 |
$this->SetLicenses($data);
|
459 |
}
|
460 |
-
|
461 |
public function SetLicenseStatus($name, $status){
|
462 |
$data = $this->GetLicenses();
|
463 |
if (!isset($data[$name])) $data[$name] = array();
|
464 |
$data[$name]['sts'] = $status;
|
465 |
$this->SetLicenses($data);
|
466 |
}
|
467 |
-
|
468 |
public function SetLicenseErrors($name, $errors){
|
469 |
$data = $this->GetLicenses();
|
470 |
if (!isset($data[$name])) $data[$name] = array();
|
471 |
$data[$name]['err'] = $errors;
|
472 |
$this->SetLicenses($data);
|
473 |
}
|
474 |
-
|
475 |
public function ClearLicenses(){
|
476 |
$this->SetLicenses(array());
|
477 |
}
|
@@ -483,7 +429,6 @@ class WSAL_Settings {
|
|
483 |
public function IsMainIPFromProxy(){
|
484 |
return $this->_plugin->GetGlobalOption('use-proxy-ip');
|
485 |
}
|
486 |
-
|
487 |
public function SetMainIPFromProxy($enabled){
|
488 |
return $this->_plugin->SetGlobalOption('use-proxy-ip', $enabled);
|
489 |
}
|
@@ -491,7 +436,6 @@ class WSAL_Settings {
|
|
491 |
public function IsInternalIPsFiltered(){
|
492 |
return $this->_plugin->GetGlobalOption('filter-internal-ip');
|
493 |
}
|
494 |
-
|
495 |
public function SetInternalIPsFiltering($enabled){
|
496 |
return $this->_plugin->SetGlobalOption('filter-internal-ip', $enabled);
|
497 |
}
|
@@ -505,7 +449,9 @@ class WSAL_Settings {
|
|
505 |
$result = isset($result[0]) ? $result[0] : null;
|
506 |
} elseif(isset($_SERVER['REMOTE_ADDR'])) {
|
507 |
$result = $this->NormalizeIP($_SERVER['REMOTE_ADDR']);
|
508 |
-
if (!$this->ValidateIP($result))
|
|
|
|
|
509 |
}
|
510 |
return $result;
|
511 |
}
|
@@ -537,10 +483,21 @@ class WSAL_Settings {
|
|
537 |
return $ip;
|
538 |
}
|
539 |
|
540 |
-
protected function ValidateIP($ip){
|
541 |
$opts = FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6;
|
542 |
if ($this->IsInternalIPsFiltered()) $opts = $opts | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE;
|
543 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
544 |
}
|
545 |
|
546 |
// </editor-fold>
|
1 |
<?php
|
|
|
2 |
class WSAL_Settings {
|
3 |
/**
|
4 |
* @var WpSecurityAuditLog
|
5 |
*/
|
6 |
protected $_plugin;
|
7 |
+
public function __construct(WpSecurityAuditLog $plugin) {
|
|
|
8 |
$this->_plugin = $plugin;
|
9 |
}
|
10 |
|
11 |
// <editor-fold desc="Developer Options">
|
|
|
12 |
const OPT_DEV_DATA_INSPECTOR = 'd';
|
13 |
const OPT_DEV_PHP_ERRORS = 'p';
|
14 |
const OPT_DEV_REQUEST_LOG = 'r';
|
15 |
const OPT_DEV_BACKTRACE_LOG = 'b';
|
16 |
|
17 |
+
const ERROR_CODE_INVALID_IP = 901;
|
18 |
|
19 |
+
protected $_devoption = null;
|
20 |
/**
|
21 |
* @return array Array of developer options to be enabled by default.
|
22 |
*/
|
23 |
public function GetDefaultDevOptions(){
|
24 |
return array();
|
25 |
}
|
|
|
26 |
/**
|
27 |
* Returns whether a developer option is enabled or not.
|
28 |
* @param string $option See self::OPT_DEV_* constants.
|
38 |
}
|
39 |
return in_array($option, $this->_devoption);
|
40 |
}
|
|
|
41 |
/**
|
42 |
* @return boolean Whether any developer option has been enabled or not.
|
43 |
*/
|
44 |
public function IsAnyDevOptionEnabled(){
|
45 |
return !!$this->_plugin->GetGlobalOption('dev-options', null);
|
46 |
}
|
|
|
47 |
/**
|
48 |
* Sets whether a developer option is enabled or not.
|
49 |
* @param string $option See self::OPT_DEV_* constants.
|
64 |
implode(',', $this->_devoption)
|
65 |
);
|
66 |
}
|
|
|
67 |
/**
|
68 |
* Remove all enabled developer options.
|
69 |
*/
|
71 |
$this->_devoption = array();
|
72 |
$this->_plugin->SetGlobalOption('dev-options', '');
|
73 |
}
|
|
|
74 |
/**
|
75 |
* @return boolean Whether to enable data inspector or not.
|
76 |
*/
|
77 |
public function IsDataInspectorEnabled(){
|
78 |
return $this->IsDevOptionEnabled(self::OPT_DEV_DATA_INSPECTOR);
|
79 |
}
|
|
|
80 |
/**
|
81 |
* @return boolean Whether to PHP error logging or not.
|
82 |
*/
|
83 |
public function IsPhpErrorLoggingEnabled(){
|
84 |
return $this->IsDevOptionEnabled(self::OPT_DEV_PHP_ERRORS);
|
85 |
}
|
|
|
86 |
/**
|
87 |
* @return boolean Whether to log requests to file or not.
|
88 |
*/
|
89 |
public function IsRequestLoggingEnabled(){
|
90 |
return $this->IsDevOptionEnabled(self::OPT_DEV_REQUEST_LOG);
|
91 |
}
|
|
|
92 |
/**
|
93 |
* @return boolean Whether to store debug backtrace for PHP alerts or not.
|
94 |
*/
|
97 |
}
|
98 |
|
99 |
// </editor-fold>
|
|
|
100 |
/**
|
101 |
* @return boolean Whether dashboard widgets are enabled or not.
|
102 |
*/
|
103 |
public function IsWidgetsEnabled(){
|
104 |
return !$this->_plugin->GetGlobalOption('disable-widgets');
|
105 |
}
|
|
|
106 |
/**
|
107 |
* @param boolean $newvalue Whether dashboard widgets are enabled or not.
|
108 |
*/
|
109 |
public function SetWidgetsEnabled($newvalue){
|
110 |
$this->_plugin->SetGlobalOption('disable-widgets', !$newvalue);
|
111 |
}
|
|
|
112 |
/**
|
113 |
* @return boolean Whether alerts in audit log view refresh automatically or not.
|
114 |
*/
|
115 |
public function IsRefreshAlertsEnabled(){
|
116 |
return !$this->_plugin->GetGlobalOption('disable-refresh');
|
117 |
}
|
|
|
118 |
/**
|
119 |
* @param boolean $newvalue Whether alerts in audit log view refresh automatically or not.
|
120 |
*/
|
121 |
public function SetRefreshAlertsEnabled($newvalue){
|
122 |
$this->_plugin->SetGlobalOption('disable-refresh', !$newvalue);
|
123 |
}
|
|
|
124 |
/**
|
125 |
* @return int Maximum number of alerts to show in dashboard widget.
|
126 |
*/
|
129 |
}
|
130 |
|
131 |
// <editor-fold desc="Pruning Settings">
|
|
|
132 |
/**
|
133 |
* @return int The maximum number of alerts allowable.
|
134 |
*/
|
135 |
public function GetMaxAllowedAlerts(){
|
136 |
return 5000;
|
137 |
}
|
|
|
138 |
/**
|
139 |
* @return string The default pruning date.
|
140 |
*/
|
141 |
public function GetDefaultPruningDate(){
|
142 |
return '1 month';
|
143 |
}
|
|
|
144 |
protected $_pruning = 0;
|
|
|
145 |
/**
|
146 |
* @return string The current pruning date.
|
147 |
*/
|
153 |
}
|
154 |
return $this->_pruning;
|
155 |
}
|
|
|
156 |
/**
|
157 |
* @param string $newvalue The new pruning date.
|
158 |
*/
|
162 |
$this->_pruning = $newvalue;
|
163 |
}
|
164 |
}
|
|
|
165 |
/**
|
166 |
* @return integer Maximum number of alerts to keep.
|
167 |
*/
|
169 |
$val = (int)$this->_plugin->GetGlobalOption('pruning-limit');
|
170 |
return $val ? $val : $this->GetMaxAllowedAlerts();
|
171 |
}
|
|
|
172 |
/**
|
173 |
* @param integer $newvalue The new maximum number of alerts.
|
174 |
*/
|
176 |
$newvalue = max(/*min(*/(int)$newvalue/*, $this->GetMaxAllowedAlerts())*/, 1);
|
177 |
$this->_plugin->SetGlobalOption('pruning-limit', $newvalue);
|
178 |
}
|
|
|
179 |
public function SetPruningDateEnabled($enabled){
|
180 |
$this->_plugin->SetGlobalOption('pruning-date-e', $enabled);
|
181 |
}
|
|
|
182 |
public function SetPruningLimitEnabled($enabled){
|
183 |
$this->_plugin->SetGlobalOption('pruning-limit-e', $enabled);
|
184 |
}
|
|
|
185 |
public function IsPruningDateEnabled(){
|
186 |
return $this->_plugin->GetGlobalOption('pruning-date-e', true);
|
187 |
}
|
|
|
188 |
public function IsPruningLimitEnabled(){
|
189 |
return $this->_plugin->GetGlobalOption('pruning-limit-e', true);
|
190 |
}
|
|
|
191 |
public function IsRestrictAdmins(){
|
192 |
return $this->_plugin->GetGlobalOption('restrict-admins', false);
|
193 |
}
|
|
|
194 |
/**
|
195 |
* @deprecated Sandbox functionality is now in an external plugin.
|
196 |
*/
|
198 |
$plugins = $this->_plugin->licensing->plugins();
|
199 |
return isset($plugins['wsal-sandbox-extensionphp']);
|
200 |
}
|
|
|
201 |
public function SetRestrictAdmins($enable){
|
202 |
$this->_plugin->SetGlobalOption('restrict-admins', (bool)$enable);
|
203 |
}
|
204 |
|
205 |
// </editor-fold>
|
|
|
206 |
protected $_disabled = null;
|
|
|
207 |
public function GetDefaultDisabledAlerts(){
|
208 |
return array(0000, 0001, 0002, 0003, 0004, 0005);
|
209 |
}
|
|
|
210 |
/**
|
211 |
* @return array IDs of disabled alerts.
|
212 |
*/
|
219 |
}
|
220 |
return $this->_disabled;
|
221 |
}
|
|
|
222 |
/**
|
223 |
* @param array $types IDs alerts to disable.
|
224 |
*/
|
226 |
$this->_disabled = array_unique(array_map('intval', $types));
|
227 |
$this->_plugin->SetGlobalOption('disabled-alerts', implode(',', $this->_disabled));
|
228 |
}
|
|
|
229 |
public function IsIncognito(){
|
230 |
return $this->_plugin->GetGlobalOption('hide-plugin');
|
231 |
}
|
|
|
232 |
public function SetIncognito($enabled){
|
233 |
return $this->_plugin->SetGlobalOption('hide-plugin', $enabled);
|
234 |
}
|
235 |
|
236 |
+
/**
|
237 |
+
* Checking if the data will be removed.
|
238 |
+
*/
|
239 |
+
public function IsDeleteData(){
|
240 |
+
return $this->_plugin->GetGlobalOption('delete-data');
|
241 |
+
}
|
242 |
+
|
243 |
+
public function SetDeleteData($enabled){
|
244 |
+
return $this->_plugin->SetGlobalOption('delete-data', $enabled);
|
245 |
+
}
|
246 |
+
|
247 |
// <editor-fold desc="Access Control">
|
248 |
|
249 |
protected $_viewers = null;
|
|
|
250 |
public function SetAllowedPluginViewers($usersOrRoles){
|
251 |
$this->_viewers = $usersOrRoles;
|
252 |
$this->_plugin->SetGlobalOption('plugin-viewers', implode(',', $this->_viewers));
|
253 |
}
|
|
|
254 |
public function GetAllowedPluginViewers(){
|
255 |
if(is_null($this->_viewers)){
|
256 |
$this->_viewers = array_unique(array_filter(explode(',', $this->_plugin->GetGlobalOption('plugin-viewers'))));
|
257 |
}
|
258 |
return $this->_viewers;
|
259 |
}
|
|
|
260 |
protected $_editors = null;
|
|
|
261 |
public function SetAllowedPluginEditors($usersOrRoles){
|
262 |
$this->_editors = $usersOrRoles;
|
263 |
$this->_plugin->SetGlobalOption('plugin-editors', implode(',', $this->_editors));
|
264 |
}
|
|
|
265 |
public function GetAllowedPluginEditors(){
|
266 |
if(is_null($this->_editors)){
|
267 |
$this->_editors = array_unique(array_filter(explode(',', $this->_plugin->GetGlobalOption('plugin-editors'))));
|
268 |
}
|
269 |
return $this->_editors;
|
270 |
}
|
|
|
271 |
protected $_perpage = null;
|
|
|
272 |
public function SetViewPerPage($newvalue){
|
273 |
$this->_perpage = max($newvalue, 1);
|
274 |
$this->_plugin->SetGlobalOption('items-per-page', $this->_perpage);
|
275 |
}
|
|
|
276 |
public function GetViewPerPage(){
|
277 |
if(is_null($this->_perpage)){
|
278 |
$this->_perpage = (int)$this->_plugin->GetGlobalOption('items-per-page', 10);
|
279 |
}
|
280 |
return $this->_perpage;
|
281 |
}
|
|
|
282 |
/**
|
283 |
* @param string $action Type of action, either 'view' or 'edit'.
|
284 |
* @return boolean If user has access or not.
|
286 |
public function CurrentUserCan($action){
|
287 |
return $this->UserCan(wp_get_current_user(), $action);
|
288 |
}
|
|
|
289 |
/**
|
290 |
* @return string[] List of superadmin usernames.
|
291 |
*/
|
292 |
protected function GetSuperAdmins(){
|
293 |
return $this->_plugin->IsMultisite() ? get_super_admins() : array();
|
294 |
}
|
|
|
295 |
/**
|
296 |
* @return string[] List of admin usernames.
|
297 |
*/
|
313 |
return $result;
|
314 |
}
|
315 |
}
|
|
|
316 |
/**
|
317 |
* Returns access tokens for a particular action.
|
318 |
* @param string $action Type of action.
|
320 |
*/
|
321 |
public function GetAccessTokens($action){
|
322 |
$allowed = array();
|
|
|
323 |
switch($action){
|
324 |
case 'view':
|
325 |
$allowed = $this->GetAllowedPluginViewers();
|
340 |
default:
|
341 |
throw new Exception('Unknown action "'.$action.'".');
|
342 |
}
|
|
|
343 |
if (!$this->IsRestrictAdmins()) {
|
344 |
if(is_multisite()){
|
345 |
$allowed = array_merge($allowed, get_super_admins());
|
347 |
$allowed[] = 'administrator';
|
348 |
}
|
349 |
}
|
|
|
350 |
return array_unique($allowed);
|
351 |
}
|
|
|
352 |
/**
|
353 |
* @param integer|WP_user $user User object to check.
|
354 |
* @param string $action Type of action, either 'view' or 'edit'.
|
356 |
*/
|
357 |
public function UserCan($user, $action){
|
358 |
if(is_int($user))$user = get_userdata($user);
|
|
|
359 |
$allowed = $this->GetAccessTokens($action);
|
|
|
360 |
$check = array_merge(
|
361 |
$user->roles,
|
362 |
array($user->user_login)
|
363 |
);
|
|
|
364 |
foreach($check as $item){
|
365 |
if(in_array($item, $allowed)){
|
366 |
return true;
|
368 |
}
|
369 |
return false;
|
370 |
}
|
|
|
371 |
public function GetCurrentUserRoles($baseRoles = null){
|
372 |
if ($baseRoles == null) $baseRoles = wp_get_current_user()->roles;
|
373 |
if (function_exists('is_super_admin') && is_super_admin()) $baseRoles[] = 'superadmin';
|
377 |
// </editor-fold>
|
378 |
|
379 |
// <editor-fold desc="Licensing">
|
|
|
380 |
public function GetLicenses(){
|
381 |
return $this->_plugin->GetGlobalOption('licenses');
|
382 |
}
|
|
|
383 |
public function GetLicense($name){
|
384 |
$data = $this->GetLicenses();
|
385 |
$name = sanitize_key(basename($name));
|
386 |
return isset($data[$name]) ? $data[$name] : array();
|
387 |
}
|
|
|
388 |
public function SetLicenses($data){
|
389 |
$this->_plugin->SetGlobalOption('licenses', $data);
|
390 |
}
|
|
|
391 |
public function GetLicenseKey($name){
|
392 |
$data = $this->GetLicense($name);
|
393 |
return isset($data['key']) ? $data['key'] : '';
|
394 |
}
|
|
|
395 |
public function GetLicenseStatus($name){
|
396 |
$data = $this->GetLicense($name);
|
397 |
return isset($data['sts']) ? $data['sts'] : '';
|
398 |
}
|
|
|
399 |
public function GetLicenseErrors($name){
|
400 |
$data = $this->GetLicense($name);
|
401 |
return isset($data['err']) ? $data['err'] : '';
|
402 |
}
|
|
|
403 |
public function SetLicenseKey($name, $key){
|
404 |
$data = $this->GetLicenses();
|
405 |
if (!isset($data[$name])) $data[$name] = array();
|
406 |
$data[$name]['key'] = $key;
|
407 |
$this->SetLicenses($data);
|
408 |
}
|
|
|
409 |
public function SetLicenseStatus($name, $status){
|
410 |
$data = $this->GetLicenses();
|
411 |
if (!isset($data[$name])) $data[$name] = array();
|
412 |
$data[$name]['sts'] = $status;
|
413 |
$this->SetLicenses($data);
|
414 |
}
|
|
|
415 |
public function SetLicenseErrors($name, $errors){
|
416 |
$data = $this->GetLicenses();
|
417 |
if (!isset($data[$name])) $data[$name] = array();
|
418 |
$data[$name]['err'] = $errors;
|
419 |
$this->SetLicenses($data);
|
420 |
}
|
|
|
421 |
public function ClearLicenses(){
|
422 |
$this->SetLicenses(array());
|
423 |
}
|
429 |
public function IsMainIPFromProxy(){
|
430 |
return $this->_plugin->GetGlobalOption('use-proxy-ip');
|
431 |
}
|
|
|
432 |
public function SetMainIPFromProxy($enabled){
|
433 |
return $this->_plugin->SetGlobalOption('use-proxy-ip', $enabled);
|
434 |
}
|
436 |
public function IsInternalIPsFiltered(){
|
437 |
return $this->_plugin->GetGlobalOption('filter-internal-ip');
|
438 |
}
|
|
|
439 |
public function SetInternalIPsFiltering($enabled){
|
440 |
return $this->_plugin->SetGlobalOption('filter-internal-ip', $enabled);
|
441 |
}
|
449 |
$result = isset($result[0]) ? $result[0] : null;
|
450 |
} elseif(isset($_SERVER['REMOTE_ADDR'])) {
|
451 |
$result = $this->NormalizeIP($_SERVER['REMOTE_ADDR']);
|
452 |
+
if (!$this->ValidateIP($result)) {
|
453 |
+
$result = "Error " . self::ERROR_CODE_INVALID_IP . ": Invalid IP Address";
|
454 |
+
}
|
455 |
}
|
456 |
return $result;
|
457 |
}
|
483 |
return $ip;
|
484 |
}
|
485 |
|
486 |
+
protected function ValidateIP($ip){
|
487 |
$opts = FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6;
|
488 |
if ($this->IsInternalIPsFiltered()) $opts = $opts | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE;
|
489 |
+
$filteredIP = filter_var($ip, FILTER_VALIDATE_IP, $opts);
|
490 |
+
if (!$filteredIP || empty($filteredIP)) {
|
491 |
+
//Regex IPV4
|
492 |
+
if (preg_match("/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/", $ip)) return $ip;
|
493 |
+
//Regex IPV6
|
494 |
+
elseif (preg_match("/^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/", $ip)) return $ip;
|
495 |
+
|
496 |
+
error_log("Invalid IP in ValidateIP function: ".$ip);
|
497 |
+
return false;
|
498 |
+
} else {
|
499 |
+
return $filteredIP;
|
500 |
+
}
|
501 |
}
|
502 |
|
503 |
// </editor-fold>
|
classes/Views/Settings.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
class WSAL_Views_Settings extends WSAL_AbstractView {
|
4 |
|
5 |
public function __construct(WpSecurityAuditLog $plugin) {
|
@@ -51,10 +50,11 @@ class WSAL_Views_Settings extends WSAL_AbstractView {
|
|
51 |
$this->_plugin->settings->SetAllowedPluginViewers(isset($_REQUEST['Viewers']) ? $_REQUEST['Viewers'] : array());
|
52 |
$this->_plugin->settings->SetAllowedPluginEditors(isset($_REQUEST['Editors']) ? $_REQUEST['Editors'] : array());
|
53 |
$this->_plugin->settings->SetRestrictAdmins(isset($_REQUEST['RestrictAdmins']));
|
54 |
-
$this->_plugin->settings->SetRefreshAlertsEnabled(
|
55 |
$this->_plugin->settings->SetMainIPFromProxy(isset($_REQUEST['EnableProxyIpCapture']));
|
56 |
$this->_plugin->settings->SetInternalIPsFiltering(isset($_REQUEST['EnableIpFiltering']));
|
57 |
$this->_plugin->settings->SetIncognito(isset($_REQUEST['Incognito']));
|
|
|
58 |
$this->_plugin->settings->ClearDevOptions();
|
59 |
if(isset($_REQUEST['DevOptions']))
|
60 |
foreach($_REQUEST['DevOptions'] as $opt)
|
@@ -259,7 +259,7 @@ class WSAL_Views_Settings extends WSAL_AbstractView {
|
|
259 |
</td>
|
260 |
</tr>
|
261 |
<tr>
|
262 |
-
<th><label for="aroption_on"><?php _e('Refresh Audit
|
263 |
<td>
|
264 |
<fieldset>
|
265 |
<?php $are = $this->_plugin->settings->IsRefreshAlertsEnabled(); ?>
|
@@ -267,13 +267,13 @@ class WSAL_Views_Settings extends WSAL_AbstractView {
|
|
267 |
<input type="radio" name="EnableAuditViewRefresh" id="aroption_on" style="margin-top: 2px;" <?php if($are)echo 'checked="checked"'; ?> value="1">
|
268 |
<span><?php _e('Automatic', 'wp-security-audit-log'); ?></span>
|
269 |
</label>
|
270 |
-
<span class="description"> — <?php _e('Refresh Audit
|
271 |
<br/>
|
272 |
<label for="aroption_off">
|
273 |
<input type="radio" name="EnableAuditViewRefresh" id="aroption_off" style="margin-top: 2px;" <?php if(!$are)echo 'checked="checked"'; ?> value="0">
|
274 |
<span><?php _e('Manual', 'wp-security-audit-log'); ?></span>
|
275 |
</label>
|
276 |
-
<span class="description"> — <?php _e('Refresh Audit
|
277 |
<br/>
|
278 |
</fieldset>
|
279 |
</td>
|
@@ -337,11 +337,35 @@ class WSAL_Views_Settings extends WSAL_AbstractView {
|
|
337 |
</fieldset>
|
338 |
</td>
|
339 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
340 |
</tbody>
|
341 |
</table>
|
342 |
|
343 |
<p class="submit"><input type="submit" name="submit" id="submit" class="button button-primary" value="Save Changes"></p>
|
344 |
-
</form
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
345 |
}
|
346 |
|
347 |
public function Header(){
|
1 |
<?php
|
|
|
2 |
class WSAL_Views_Settings extends WSAL_AbstractView {
|
3 |
|
4 |
public function __construct(WpSecurityAuditLog $plugin) {
|
50 |
$this->_plugin->settings->SetAllowedPluginViewers(isset($_REQUEST['Viewers']) ? $_REQUEST['Viewers'] : array());
|
51 |
$this->_plugin->settings->SetAllowedPluginEditors(isset($_REQUEST['Editors']) ? $_REQUEST['Editors'] : array());
|
52 |
$this->_plugin->settings->SetRestrictAdmins(isset($_REQUEST['RestrictAdmins']));
|
53 |
+
$this->_plugin->settings->SetRefreshAlertsEnabled($_REQUEST['EnableAuditViewRefresh']);
|
54 |
$this->_plugin->settings->SetMainIPFromProxy(isset($_REQUEST['EnableProxyIpCapture']));
|
55 |
$this->_plugin->settings->SetInternalIPsFiltering(isset($_REQUEST['EnableIpFiltering']));
|
56 |
$this->_plugin->settings->SetIncognito(isset($_REQUEST['Incognito']));
|
57 |
+
$this->_plugin->settings->SetDeleteData(isset($_REQUEST['DeleteData']));
|
58 |
$this->_plugin->settings->ClearDevOptions();
|
59 |
if(isset($_REQUEST['DevOptions']))
|
60 |
foreach($_REQUEST['DevOptions'] as $opt)
|
259 |
</td>
|
260 |
</tr>
|
261 |
<tr>
|
262 |
+
<th><label for="aroption_on"><?php _e('Refresh Audit Log Viewer', 'wp-security-audit-log'); ?></label></th>
|
263 |
<td>
|
264 |
<fieldset>
|
265 |
<?php $are = $this->_plugin->settings->IsRefreshAlertsEnabled(); ?>
|
267 |
<input type="radio" name="EnableAuditViewRefresh" id="aroption_on" style="margin-top: 2px;" <?php if($are)echo 'checked="checked"'; ?> value="1">
|
268 |
<span><?php _e('Automatic', 'wp-security-audit-log'); ?></span>
|
269 |
</label>
|
270 |
+
<span class="description"> — <?php _e('Refresh Audit Log Viewer as soon as there are new alerts.', 'wp-security-audit-log'); ?></span>
|
271 |
<br/>
|
272 |
<label for="aroption_off">
|
273 |
<input type="radio" name="EnableAuditViewRefresh" id="aroption_off" style="margin-top: 2px;" <?php if(!$are)echo 'checked="checked"'; ?> value="0">
|
274 |
<span><?php _e('Manual', 'wp-security-audit-log'); ?></span>
|
275 |
</label>
|
276 |
+
<span class="description"> — <?php _e('Refresh Audit Log Viewer only when the page is reloaded.', 'wp-security-audit-log'); ?></span>
|
277 |
<br/>
|
278 |
</fieldset>
|
279 |
</td>
|
337 |
</fieldset>
|
338 |
</td>
|
339 |
</tr>
|
340 |
+
<tr>
|
341 |
+
<th><label for="DeleteData"><?php _e('Remove Data on Unistall', 'wp-security-audit-log'); ?></label></th>
|
342 |
+
<td>
|
343 |
+
<fieldset>
|
344 |
+
<label for="DeleteData">
|
345 |
+
<input type="checkbox" name="DeleteData" value="1" id="DeleteData" onclick="return delete_confirm(this);"<?php
|
346 |
+
if($this->_plugin->settings->IsDeleteData())echo ' checked="checked"';
|
347 |
+
?>/> <span class="description">Check this box if you would like remove all data when the plugin is deleted.</span>
|
348 |
+
</label>
|
349 |
+
</fieldset>
|
350 |
+
</td>
|
351 |
+
</tr>
|
352 |
</tbody>
|
353 |
</table>
|
354 |
|
355 |
<p class="submit"><input type="submit" name="submit" id="submit" class="button button-primary" value="Save Changes"></p>
|
356 |
+
</form>
|
357 |
+
<script type="text/javascript">
|
358 |
+
<!--
|
359 |
+
function delete_confirm(elementRef)
|
360 |
+
{
|
361 |
+
if ( elementRef.checked )
|
362 |
+
{
|
363 |
+
if ( window.confirm('Do you want remove all data when the plugin is deleted?') == false )
|
364 |
+
elementRef.checked = false;
|
365 |
+
}
|
366 |
+
}
|
367 |
+
// -->
|
368 |
+
</script><?php
|
369 |
}
|
370 |
|
371 |
public function Header(){
|
classes/Views/ToggleAlerts.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
class WSAL_Views_ToggleAlerts extends WSAL_AbstractView {
|
4 |
|
5 |
public function GetTitle() {
|
@@ -141,4 +140,4 @@ class WSAL_Views_ToggleAlerts extends WSAL_AbstractView {
|
|
141 |
</script><?php
|
142 |
}
|
143 |
|
144 |
-
}
|
1 |
<?php
|
|
|
2 |
class WSAL_Views_ToggleAlerts extends WSAL_AbstractView {
|
3 |
|
4 |
public function GetTitle() {
|
140 |
</script><?php
|
141 |
}
|
142 |
|
143 |
+
}
|
defaults.php
CHANGED
@@ -39,6 +39,7 @@ function wsaldefaults_wsal_init(WpSecurityAuditLog $wsal){
|
|
39 |
array(1000, E_NOTICE, __('User logs in', 'wp-security-audit-log'), __('Successfully logged in', 'wp-security-audit-log')),
|
40 |
array(1001, E_NOTICE, __('User logs out', 'wp-security-audit-log'), __('Successfully logged out', 'wp-security-audit-log')),
|
41 |
array(1002, E_WARNING, __('Login failed', 'wp-security-audit-log'), __('%Attempts% failed login(s) detected', 'wp-security-audit-log')),
|
|
|
42 |
array(2010, E_NOTICE, __('User uploaded file from Uploads directory', 'wp-security-audit-log'), __('Uploaded the file %FileName% in %FilePath%', 'wp-security-audit-log')),
|
43 |
array(2011, E_WARNING, __('User deleted file from Uploads directory', 'wp-security-audit-log'), __('Deleted the file %FileName% from %FilePath%', 'wp-security-audit-log')),
|
44 |
array(2046, E_CRITICAL, __('User changed a file using the theme editor', 'wp-security-audit-log'), __('Modified %File% with the Theme Editor', 'wp-security-audit-log')),
|
39 |
array(1000, E_NOTICE, __('User logs in', 'wp-security-audit-log'), __('Successfully logged in', 'wp-security-audit-log')),
|
40 |
array(1001, E_NOTICE, __('User logs out', 'wp-security-audit-log'), __('Successfully logged out', 'wp-security-audit-log')),
|
41 |
array(1002, E_WARNING, __('Login failed', 'wp-security-audit-log'), __('%Attempts% failed login(s) detected', 'wp-security-audit-log')),
|
42 |
+
array(1003, E_WARNING, __('Login failed', 'wp-security-audit-log'), __('%Attempts% failed login(s) detected using non existing user.', 'wp-security-audit-log')),
|
43 |
array(2010, E_NOTICE, __('User uploaded file from Uploads directory', 'wp-security-audit-log'), __('Uploaded the file %FileName% in %FilePath%', 'wp-security-audit-log')),
|
44 |
array(2011, E_WARNING, __('User deleted file from Uploads directory', 'wp-security-audit-log'), __('Deleted the file %FileName% from %FilePath%', 'wp-security-audit-log')),
|
45 |
array(2046, E_CRITICAL, __('User changed a file using the theme editor', 'wp-security-audit-log'), __('Modified %File% with the Theme Editor', 'wp-security-audit-log')),
|
languages/wp-security-audit-log-de_DE.mo
CHANGED
Binary file
|
languages/wp-security-audit-log-it_IT.mo
CHANGED
Binary file
|
languages/wp-security-audit-log-ro_RO.mo
ADDED
Binary file
|
languages/wp-security-audit-log.pot
CHANGED
@@ -2,9 +2,10 @@
|
|
2 |
# This file is distributed under the same license as the WP Security Audit Log package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: WP Security Audit Log 1.
|
6 |
-
"Report-Msgid-Bugs-To: http://wordpress.org/
|
7 |
-
"
|
|
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -32,11 +33,11 @@ msgstr ""
|
|
32 |
msgid "All Sites"
|
33 |
msgstr ""
|
34 |
|
35 |
-
#: classes/AuditLogListView.php:113 classes/Views/ToggleAlerts.php:
|
36 |
msgid "Code"
|
37 |
msgstr ""
|
38 |
|
39 |
-
#: classes/AuditLogListView.php:114 classes/Views/ToggleAlerts.php:
|
40 |
msgid "Type"
|
41 |
msgstr ""
|
42 |
|
@@ -221,7 +222,7 @@ msgid "Audit Log Viewer"
|
|
221 |
msgstr ""
|
222 |
|
223 |
#: classes/Views/AuditLog.php:64 classes/Views/Licensing.php:34
|
224 |
-
#: classes/Views/Settings.php:82 classes/Views/ToggleAlerts.php:
|
225 |
msgid "You do not have sufficient permissions to access this page."
|
226 |
msgstr ""
|
227 |
|
@@ -420,12 +421,12 @@ msgid "Licensing"
|
|
420 |
msgstr ""
|
421 |
|
422 |
#: classes/Views/Licensing.php:39 classes/Views/Settings.php:87
|
423 |
-
#: classes/Views/ToggleAlerts.php:
|
424 |
msgid "Settings have been saved."
|
425 |
msgstr ""
|
426 |
|
427 |
#: classes/Views/Licensing.php:41 classes/Views/Settings.php:89
|
428 |
-
#: classes/Views/ToggleAlerts.php:
|
429 |
msgid "Error: "
|
430 |
msgstr ""
|
431 |
|
@@ -441,7 +442,7 @@ msgstr ""
|
|
441 |
msgid "Inactive"
|
442 |
msgstr ""
|
443 |
|
444 |
-
#: classes/Views/Settings.php:
|
445 |
msgid "Settings"
|
446 |
msgstr ""
|
447 |
|
@@ -554,7 +555,7 @@ msgid ""
|
|
554 |
msgstr ""
|
555 |
|
556 |
#: classes/Views/Settings.php:262
|
557 |
-
msgid "Refresh Audit
|
558 |
msgstr ""
|
559 |
|
560 |
#: classes/Views/Settings.php:268
|
@@ -562,7 +563,7 @@ msgid "Automatic"
|
|
562 |
msgstr ""
|
563 |
|
564 |
#: classes/Views/Settings.php:270
|
565 |
-
msgid "Refresh Audit
|
566 |
msgstr ""
|
567 |
|
568 |
#: classes/Views/Settings.php:274
|
@@ -570,7 +571,7 @@ msgid "Manual"
|
|
570 |
msgstr ""
|
571 |
|
572 |
#: classes/Views/Settings.php:276
|
573 |
-
msgid "Refresh Audit
|
574 |
msgstr ""
|
575 |
|
576 |
#: classes/Views/Settings.php:282
|
@@ -630,23 +631,27 @@ msgid ""
|
|
630 |
"0 in the wp_options table."
|
631 |
msgstr ""
|
632 |
|
633 |
-
#: classes/Views/
|
|
|
|
|
|
|
|
|
634 |
msgid "Enable/Disable Alerts"
|
635 |
msgstr ""
|
636 |
|
637 |
-
#: classes/Views/ToggleAlerts.php:
|
638 |
msgid "Description"
|
639 |
msgstr ""
|
640 |
|
641 |
-
#: classes/Views/ToggleAlerts.php:
|
642 |
msgid "Not Implemented"
|
643 |
msgstr ""
|
644 |
|
645 |
-
#: classes/Views/ToggleAlerts.php:
|
646 |
msgid "Not Available"
|
647 |
msgstr ""
|
648 |
|
649 |
-
#: classes/Views/ToggleAlerts.php:
|
650 |
msgid "Save Changes"
|
651 |
msgstr ""
|
652 |
|
@@ -750,7 +755,7 @@ msgstr ""
|
|
750 |
msgid "Successfully logged out"
|
751 |
msgstr ""
|
752 |
|
753 |
-
#: defaults.php:41
|
754 |
msgid "Login failed"
|
755 |
msgstr ""
|
756 |
|
@@ -759,991 +764,995 @@ msgid "%Attempts% failed login(s) detected"
|
|
759 |
msgstr ""
|
760 |
|
761 |
#: defaults.php:42
|
|
|
|
|
|
|
|
|
762 |
msgid "User uploaded file from Uploads directory"
|
763 |
msgstr ""
|
764 |
|
765 |
-
#: defaults.php:
|
766 |
msgid "Uploaded the file %FileName% in %FilePath%"
|
767 |
msgstr ""
|
768 |
|
769 |
-
#: defaults.php:
|
770 |
msgid "User deleted file from Uploads directory"
|
771 |
msgstr ""
|
772 |
|
773 |
-
#: defaults.php:
|
774 |
msgid "Deleted the file %FileName% from %FilePath%"
|
775 |
msgstr ""
|
776 |
|
777 |
-
#: defaults.php:
|
778 |
msgid "User changed a file using the theme editor"
|
779 |
msgstr ""
|
780 |
|
781 |
-
#: defaults.php:
|
782 |
msgid "Modified %File% with the Theme Editor"
|
783 |
msgstr ""
|
784 |
|
785 |
-
#: defaults.php:
|
786 |
msgid "User changed a file using the plugin editor"
|
787 |
msgstr ""
|
788 |
|
789 |
-
#: defaults.php:
|
790 |
msgid "Modified %File% with the Plugin Editor"
|
791 |
msgstr ""
|
792 |
|
793 |
-
#: defaults.php:
|
794 |
msgid "Blog Posts"
|
795 |
msgstr ""
|
796 |
|
797 |
-
#: defaults.php:
|
798 |
msgid "User created a new blog post and saved it as draft"
|
799 |
msgstr ""
|
800 |
|
801 |
-
#: defaults.php:
|
802 |
msgid "Created a new blog post called %PostTitle%. Blog post ID is %PostID%"
|
803 |
msgstr ""
|
804 |
|
805 |
-
#: defaults.php:
|
806 |
msgid "User published a blog post"
|
807 |
msgstr ""
|
808 |
|
809 |
-
#: defaults.php:
|
810 |
msgid "Published a blog post called %PostTitle%. Blog post URL is %PostUrl%"
|
811 |
msgstr ""
|
812 |
|
813 |
-
#: defaults.php:
|
814 |
msgid "User modified a published blog post"
|
815 |
msgstr ""
|
816 |
|
817 |
-
#: defaults.php:
|
818 |
msgid ""
|
819 |
"Modified the published blog post %PostTitle%. Blog post URL is %PostUrl%"
|
820 |
msgstr ""
|
821 |
|
822 |
-
#: defaults.php:
|
823 |
msgid "User modified a draft blog post"
|
824 |
msgstr ""
|
825 |
|
826 |
-
#: defaults.php:
|
827 |
msgid "Modified the draft blog post %PostTitle%. Blog post ID is %PostID%"
|
828 |
msgstr ""
|
829 |
|
830 |
-
#: defaults.php:
|
831 |
msgid "User permanently deleted a blog post from the trash"
|
832 |
msgstr ""
|
833 |
|
834 |
-
#: defaults.php:
|
835 |
msgid "Permanently deleted the post %PostTitle%. Blog post ID is %PostID%"
|
836 |
msgstr ""
|
837 |
|
838 |
-
#: defaults.php:
|
839 |
msgid "User moved a blog post to the trash"
|
840 |
msgstr ""
|
841 |
|
842 |
-
#: defaults.php:
|
843 |
msgid "Moved the blog post %PostTitle% to trash"
|
844 |
msgstr ""
|
845 |
|
846 |
-
#: defaults.php:
|
847 |
msgid "User restored a blog post from trash"
|
848 |
msgstr ""
|
849 |
|
850 |
-
#: defaults.php:
|
851 |
msgid "Restored post %PostTitle% from trash"
|
852 |
msgstr ""
|
853 |
|
854 |
-
#: defaults.php:
|
855 |
msgid "User changed blog post category"
|
856 |
msgstr ""
|
857 |
|
858 |
-
#: defaults.php:
|
859 |
msgid ""
|
860 |
"Changed the category of the post %PostTitle% from %OldCategories% to "
|
861 |
"%NewCategories%"
|
862 |
msgstr ""
|
863 |
|
864 |
-
#: defaults.php:
|
865 |
msgid "User changed blog post URL"
|
866 |
msgstr ""
|
867 |
|
868 |
-
#: defaults.php:
|
869 |
msgid "Changed the URL of the post %PostTitle% from %OldUrl% to %NewUrl%"
|
870 |
msgstr ""
|
871 |
|
872 |
-
#: defaults.php:
|
873 |
msgid "User changed blog post author"
|
874 |
msgstr ""
|
875 |
|
876 |
-
#: defaults.php:
|
877 |
msgid "Changed the author of %PostTitle% post from %OldAuthor% to %NewAuthor%"
|
878 |
msgstr ""
|
879 |
|
880 |
-
#: defaults.php:
|
881 |
msgid "User changed blog post status"
|
882 |
msgstr ""
|
883 |
|
884 |
-
#: defaults.php:
|
885 |
msgid "Changed the status of %PostTitle% post from %OldStatus% to %NewStatus%"
|
886 |
msgstr ""
|
887 |
|
888 |
-
#: defaults.php:
|
889 |
msgid "User created new category"
|
890 |
msgstr ""
|
891 |
|
892 |
-
#: defaults.php:
|
893 |
msgid "Created a new category called %CategoryName%"
|
894 |
msgstr ""
|
895 |
|
896 |
-
#: defaults.php:
|
897 |
msgid "User deleted category"
|
898 |
msgstr ""
|
899 |
|
900 |
-
#: defaults.php:
|
901 |
msgid "Deleted the %CategoryName% category"
|
902 |
msgstr ""
|
903 |
|
904 |
-
#: defaults.php:
|
905 |
msgid "User changed the visibility of a blog post"
|
906 |
msgstr ""
|
907 |
|
908 |
-
#: defaults.php:
|
909 |
msgid ""
|
910 |
"Changed the visibility of %PostTitle% blog post from %OldVisibility% to "
|
911 |
"%NewVisibility%"
|
912 |
msgstr ""
|
913 |
|
914 |
-
#: defaults.php:
|
915 |
msgid "User changed the date of a blog post"
|
916 |
msgstr ""
|
917 |
|
918 |
-
#: defaults.php:
|
919 |
msgid "Changed the date of %PostTitle% blog post from %OldDate% to %NewDate%"
|
920 |
msgstr ""
|
921 |
|
922 |
-
#: defaults.php:
|
923 |
msgid "User sets a post as sticky"
|
924 |
msgstr ""
|
925 |
|
926 |
-
#: defaults.php:
|
927 |
msgid "Set the post %PostTitle% as Sticky"
|
928 |
msgstr ""
|
929 |
|
930 |
-
#: defaults.php:
|
931 |
msgid "User removes post from sticky"
|
932 |
msgstr ""
|
933 |
|
934 |
-
#: defaults.php:
|
935 |
msgid "Removed the post %PostTitle% from Sticky"
|
936 |
msgstr ""
|
937 |
|
938 |
-
#: defaults.php:
|
939 |
msgid "User creates a custom field for a post"
|
940 |
msgstr ""
|
941 |
|
942 |
-
#: defaults.php:
|
943 |
msgid ""
|
944 |
"Created custom field %MetaKey% with value %MetaValue% in post %PostTitle%"
|
945 |
msgstr ""
|
946 |
|
947 |
-
#: defaults.php:
|
948 |
msgid "User updates a custom field value for a post"
|
949 |
msgstr ""
|
950 |
|
951 |
-
#: defaults.php:
|
952 |
msgid ""
|
953 |
"Modified the value of custom field %MetaKey% from %MetaValueOld% to "
|
954 |
"%MetaValueNew% in post %PostTitle%"
|
955 |
msgstr ""
|
956 |
|
957 |
-
#: defaults.php:
|
958 |
msgid "User deletes a custom field from a post"
|
959 |
msgstr ""
|
960 |
|
961 |
-
#: defaults.php:
|
962 |
msgid ""
|
963 |
"Deleted custom field %MetaKey% with value %MetaValue% from post %PostTitle%"
|
964 |
msgstr ""
|
965 |
|
966 |
-
#: defaults.php:
|
967 |
msgid "User updates a custom field name for a post"
|
968 |
msgstr ""
|
969 |
|
970 |
-
#: defaults.php:
|
971 |
msgid ""
|
972 |
"Changed the custom field name from %MetaKeyOld% to %MetaKeyNew% in post "
|
973 |
"%PostTitle%"
|
974 |
msgstr ""
|
975 |
|
976 |
-
#: defaults.php:
|
977 |
msgid "User modifies content for a published post"
|
978 |
msgstr ""
|
979 |
|
980 |
-
#: defaults.php:
|
981 |
msgid "Modified the content of published post %PostTitle%"
|
982 |
msgstr ""
|
983 |
|
984 |
-
#: defaults.php:
|
985 |
msgid "User modifies content for a draft post"
|
986 |
msgstr ""
|
987 |
|
988 |
-
#: defaults.php:
|
989 |
msgid "Modified the content of draft post %PostTitle%"
|
990 |
msgstr ""
|
991 |
|
992 |
-
#: defaults.php:
|
993 |
msgid "Pages"
|
994 |
msgstr ""
|
995 |
|
996 |
-
#: defaults.php:
|
997 |
msgid "User created a new WordPress page and saved it as draft"
|
998 |
msgstr ""
|
999 |
|
1000 |
-
#: defaults.php:
|
1001 |
msgid "Created a new page called %PostTitle%. Page ID is %PostID%"
|
1002 |
msgstr ""
|
1003 |
|
1004 |
-
#: defaults.php:
|
1005 |
msgid "User published a WorPress page"
|
1006 |
msgstr ""
|
1007 |
|
1008 |
-
#: defaults.php:
|
1009 |
msgid "Published a page called %PostTitle%. Page URL is %PostUrl%"
|
1010 |
msgstr ""
|
1011 |
|
1012 |
-
#: defaults.php:
|
1013 |
msgid "User modified a published WordPress page"
|
1014 |
msgstr ""
|
1015 |
|
1016 |
-
#: defaults.php:
|
1017 |
msgid "Modified the published page %PostTitle%. Page URL is %PostUrl%"
|
1018 |
msgstr ""
|
1019 |
|
1020 |
-
#: defaults.php:
|
1021 |
msgid "User modified a draft WordPress page"
|
1022 |
msgstr ""
|
1023 |
|
1024 |
-
#: defaults.php:
|
1025 |
msgid "Modified the draft page %PostTitle%. Page ID is %PostID%"
|
1026 |
msgstr ""
|
1027 |
|
1028 |
-
#: defaults.php:
|
1029 |
msgid "User permanently deleted a page from the trash"
|
1030 |
msgstr ""
|
1031 |
|
1032 |
-
#: defaults.php:
|
1033 |
msgid "Permanently deleted the page %PostTitle%. Page ID is %PostID%"
|
1034 |
msgstr ""
|
1035 |
|
1036 |
-
#: defaults.php:
|
1037 |
msgid "User moved WordPress page to the trash"
|
1038 |
msgstr ""
|
1039 |
|
1040 |
-
#: defaults.php:
|
1041 |
msgid "Moved the page %PostTitle% to trash"
|
1042 |
msgstr ""
|
1043 |
|
1044 |
-
#: defaults.php:
|
1045 |
msgid "User restored a WordPress page from trash"
|
1046 |
msgstr ""
|
1047 |
|
1048 |
-
#: defaults.php:
|
1049 |
msgid "Restored page %PostTitle% from trash"
|
1050 |
msgstr ""
|
1051 |
|
1052 |
-
#: defaults.php:
|
1053 |
msgid "User changed page URL"
|
1054 |
msgstr ""
|
1055 |
|
1056 |
-
#: defaults.php:
|
1057 |
msgid "Changed the URL of the page %PostTitle% from %OldUrl% to %NewUrl%"
|
1058 |
msgstr ""
|
1059 |
|
1060 |
-
#: defaults.php:
|
1061 |
msgid "User changed page author"
|
1062 |
msgstr ""
|
1063 |
|
1064 |
-
#: defaults.php:
|
1065 |
msgid "Changed the author of %PostTitle% page from %OldAuthor% to %NewAuthor%"
|
1066 |
msgstr ""
|
1067 |
|
1068 |
-
#: defaults.php:
|
1069 |
msgid "User changed page status"
|
1070 |
msgstr ""
|
1071 |
|
1072 |
-
#: defaults.php:
|
1073 |
msgid "Changed the status of %PostTitle% page from %OldStatus% to %NewStatus%"
|
1074 |
msgstr ""
|
1075 |
|
1076 |
-
#: defaults.php:
|
1077 |
msgid "User changed the visibility of a page post"
|
1078 |
msgstr ""
|
1079 |
|
1080 |
-
#: defaults.php:
|
1081 |
msgid ""
|
1082 |
"Changed the visibility of %PostTitle% page from %OldVisibility% to "
|
1083 |
"%NewVisibility%"
|
1084 |
msgstr ""
|
1085 |
|
1086 |
-
#: defaults.php:
|
1087 |
msgid "User changed the date of a page post"
|
1088 |
msgstr ""
|
1089 |
|
1090 |
-
#: defaults.php:
|
1091 |
msgid "Changed the date of %PostTitle% page from %OldDate% to %NewDate%"
|
1092 |
msgstr ""
|
1093 |
|
1094 |
-
#: defaults.php:
|
1095 |
msgid "User changed the parent of a page"
|
1096 |
msgstr ""
|
1097 |
|
1098 |
-
#: defaults.php:
|
1099 |
msgid ""
|
1100 |
"Changed the parent of %PostTitle% page from %OldParentName% to %NewParentName"
|
1101 |
"%"
|
1102 |
msgstr ""
|
1103 |
|
1104 |
-
#: defaults.php:
|
1105 |
msgid "User changes the template of a page"
|
1106 |
msgstr ""
|
1107 |
|
1108 |
-
#: defaults.php:
|
1109 |
msgid ""
|
1110 |
"Changed the template of %PostTitle% page from %OldTemplate% to %NewTemplate%"
|
1111 |
msgstr ""
|
1112 |
|
1113 |
-
#: defaults.php:
|
1114 |
msgid "User creates a custom field for a page"
|
1115 |
msgstr ""
|
1116 |
|
1117 |
-
#: defaults.php:
|
1118 |
msgid ""
|
1119 |
"Created custom field %MetaKey% with value %MetaValue% in page %PostTitle%"
|
1120 |
msgstr ""
|
1121 |
|
1122 |
-
#: defaults.php:
|
1123 |
msgid "User updates a custom field value for a page"
|
1124 |
msgstr ""
|
1125 |
|
1126 |
-
#: defaults.php:
|
1127 |
msgid ""
|
1128 |
"Modified the value of custom field %MetaKey% from %MetaValueOld% to "
|
1129 |
"%MetaValueNew% in page %PostTitle%"
|
1130 |
msgstr ""
|
1131 |
|
1132 |
-
#: defaults.php:
|
1133 |
msgid "User deletes a custom field from a page"
|
1134 |
msgstr ""
|
1135 |
|
1136 |
-
#: defaults.php:
|
1137 |
msgid ""
|
1138 |
"Deleted custom field %MetaKey% with value %MetaValue% from page %PostTitle%"
|
1139 |
msgstr ""
|
1140 |
|
1141 |
-
#: defaults.php:
|
1142 |
msgid "User updates a custom field name for a page"
|
1143 |
msgstr ""
|
1144 |
|
1145 |
-
#: defaults.php:
|
1146 |
msgid ""
|
1147 |
"Changed the custom field name from %MetaKeyOld% to %MetaKeyNew% in page "
|
1148 |
"%PostTitle%"
|
1149 |
msgstr ""
|
1150 |
|
1151 |
-
#: defaults.php:
|
1152 |
msgid "User modifies content for a published page"
|
1153 |
msgstr ""
|
1154 |
|
1155 |
-
#: defaults.php:
|
1156 |
msgid "Modified the content of published page %PostTitle%"
|
1157 |
msgstr ""
|
1158 |
|
1159 |
-
#: defaults.php:
|
1160 |
msgid "User modifies content for a draft page"
|
1161 |
msgstr ""
|
1162 |
|
1163 |
-
#: defaults.php:
|
1164 |
msgid "Modified the content of draft page %PostTitle%"
|
1165 |
msgstr ""
|
1166 |
|
1167 |
-
#: defaults.php:
|
1168 |
msgid "Custom Posts"
|
1169 |
msgstr ""
|
1170 |
|
1171 |
-
#: defaults.php:
|
1172 |
msgid "User created a new post with custom post type and saved it as draft"
|
1173 |
msgstr ""
|
1174 |
|
1175 |
-
#: defaults.php:
|
1176 |
msgid ""
|
1177 |
"Created a new custom post called %PostTitle% of type %PostType%. Post ID is "
|
1178 |
"%PostID%"
|
1179 |
msgstr ""
|
1180 |
|
1181 |
-
#: defaults.php:
|
1182 |
msgid "User published a post with custom post type"
|
1183 |
msgstr ""
|
1184 |
|
1185 |
-
#: defaults.php:
|
1186 |
msgid ""
|
1187 |
"Published a custom post %PostTitle% of type %PostType%. Post URL is %PostUrl%"
|
1188 |
msgstr ""
|
1189 |
|
1190 |
-
#: defaults.php:
|
1191 |
msgid "User modified a post with custom post type"
|
1192 |
msgstr ""
|
1193 |
|
1194 |
-
#: defaults.php:
|
1195 |
msgid ""
|
1196 |
"Modified custom post %PostTitle% of type %PostType%. Post URL is %PostUrl%"
|
1197 |
msgstr ""
|
1198 |
|
1199 |
-
#: defaults.php:
|
1200 |
msgid "User modified a draft post with custom post type"
|
1201 |
msgstr ""
|
1202 |
|
1203 |
-
#: defaults.php:
|
1204 |
msgid ""
|
1205 |
"Modified draft custom post %PostTitle% of type is %PostType%. Post URL is "
|
1206 |
"%PostUrl%"
|
1207 |
msgstr ""
|
1208 |
|
1209 |
-
#: defaults.php:
|
1210 |
msgid "User permanently deleted post with custom post type"
|
1211 |
msgstr ""
|
1212 |
|
1213 |
-
#: defaults.php:
|
1214 |
msgid "Permanently Deleted custom post %PostTitle% of type %PostType%"
|
1215 |
msgstr ""
|
1216 |
|
1217 |
-
#: defaults.php:
|
1218 |
msgid "User moved post with custom post type to trash"
|
1219 |
msgstr ""
|
1220 |
|
1221 |
-
#: defaults.php:
|
1222 |
msgid "Moved custom post %PostTitle% to trash. Post type is %PostType%"
|
1223 |
msgstr ""
|
1224 |
|
1225 |
-
#: defaults.php:
|
1226 |
msgid "User restored post with custom post type from trash"
|
1227 |
msgstr ""
|
1228 |
|
1229 |
-
#: defaults.php:
|
1230 |
msgid "Restored custom post %PostTitle% of type %PostType% from trash"
|
1231 |
msgstr ""
|
1232 |
|
1233 |
-
#: defaults.php:
|
1234 |
msgid "User changed the category of a post with custom post type"
|
1235 |
msgstr ""
|
1236 |
|
1237 |
-
#: defaults.php:
|
1238 |
msgid ""
|
1239 |
"Changed the category(ies) of custom post %PostTitle% of type %PostType% from "
|
1240 |
"%OldCategories% to %NewCategories%"
|
1241 |
msgstr ""
|
1242 |
|
1243 |
-
#: defaults.php:
|
1244 |
msgid "User changed the URL of a post with custom post type"
|
1245 |
msgstr ""
|
1246 |
|
1247 |
-
#: defaults.php:
|
1248 |
msgid ""
|
1249 |
"Changed the URL of custom post %PostTitle% of type %PostType% from %OldUrl% "
|
1250 |
"to %NewUrl%"
|
1251 |
msgstr ""
|
1252 |
|
1253 |
-
#: defaults.php:
|
1254 |
msgid "User changed the author or post with custom post type"
|
1255 |
msgstr ""
|
1256 |
|
1257 |
-
#: defaults.php:
|
1258 |
msgid ""
|
1259 |
"Changed the author of custom post %PostTitle% of type %PostType% from "
|
1260 |
"%OldAuthor% to %NewAuthor%"
|
1261 |
msgstr ""
|
1262 |
|
1263 |
-
#: defaults.php:
|
1264 |
msgid "User changed the status of post with custom post type"
|
1265 |
msgstr ""
|
1266 |
|
1267 |
-
#: defaults.php:
|
1268 |
msgid ""
|
1269 |
"Changed the status of custom post %PostTitle% of type %PostType% from "
|
1270 |
"%OldStatus% to %NewStatus%"
|
1271 |
msgstr ""
|
1272 |
|
1273 |
-
#: defaults.php:
|
1274 |
msgid "User changed the visibility of a post with custom post type"
|
1275 |
msgstr ""
|
1276 |
|
1277 |
-
#: defaults.php:
|
1278 |
msgid ""
|
1279 |
"Changed the visibility of custom post %PostTitle% of type %PostType% from "
|
1280 |
"%OldVisibility% to %NewVisibility%"
|
1281 |
msgstr ""
|
1282 |
|
1283 |
-
#: defaults.php:
|
1284 |
msgid "User changed the date of post with custom post type"
|
1285 |
msgstr ""
|
1286 |
|
1287 |
-
#: defaults.php:
|
1288 |
msgid ""
|
1289 |
"Changed the date of custom post %PostTitle% of type %PostType% from %OldDate"
|
1290 |
"% to %NewDate%"
|
1291 |
msgstr ""
|
1292 |
|
1293 |
-
#: defaults.php:
|
1294 |
msgid "User creates a custom field for a custom post"
|
1295 |
msgstr ""
|
1296 |
|
1297 |
-
#: defaults.php:
|
1298 |
msgid ""
|
1299 |
"Created custom field %MetaKey% with value %MetaValue% in custom post "
|
1300 |
"%PostTitle% of type %PostType%"
|
1301 |
msgstr ""
|
1302 |
|
1303 |
-
#: defaults.php:
|
1304 |
msgid "User updates a custom field for a custom post"
|
1305 |
msgstr ""
|
1306 |
|
1307 |
-
#: defaults.php:
|
1308 |
msgid ""
|
1309 |
"Modified the value of custom field %MetaKey% from %MetaValueOld% to "
|
1310 |
"%MetaValueNew% in custom post %PostTitle% of type %PostType%"
|
1311 |
msgstr ""
|
1312 |
|
1313 |
-
#: defaults.php:
|
1314 |
msgid "User deletes a custom field from a custom post"
|
1315 |
msgstr ""
|
1316 |
|
1317 |
-
#: defaults.php:
|
1318 |
msgid ""
|
1319 |
"Deleted custom field %MetaKey% with value %MetaValue% from custom post "
|
1320 |
"%PostTitle% of type %PostType%"
|
1321 |
msgstr ""
|
1322 |
|
1323 |
-
#: defaults.php:
|
1324 |
msgid "User updates a custom field name for a custom post"
|
1325 |
msgstr ""
|
1326 |
|
1327 |
-
#: defaults.php:
|
1328 |
msgid ""
|
1329 |
"Changed the custom field name from %MetaKeyOld% to %MetaKeyNew% in custom "
|
1330 |
"post %PostTitle% of type %PostType%"
|
1331 |
msgstr ""
|
1332 |
|
1333 |
-
#: defaults.php:
|
1334 |
msgid "User modifies content for a published custom post"
|
1335 |
msgstr ""
|
1336 |
|
1337 |
-
#: defaults.php:
|
1338 |
msgid "Modified the content of published custom post type %PostTitle%"
|
1339 |
msgstr ""
|
1340 |
|
1341 |
-
#: defaults.php:
|
1342 |
msgid "User modifies content for a draft custom post"
|
1343 |
msgstr ""
|
1344 |
|
1345 |
-
#: defaults.php:
|
1346 |
msgid "Modified the content of draft custom post type %PostTitle%"
|
1347 |
msgstr ""
|
1348 |
|
1349 |
-
#: defaults.php:
|
1350 |
msgid "Widgets"
|
1351 |
msgstr ""
|
1352 |
|
1353 |
-
#: defaults.php:
|
1354 |
msgid "User added a new widget"
|
1355 |
msgstr ""
|
1356 |
|
1357 |
-
#: defaults.php:
|
1358 |
msgid "Added a new %WidgetName% widget in %Sidebar%"
|
1359 |
msgstr ""
|
1360 |
|
1361 |
-
#: defaults.php:
|
1362 |
msgid "User modified a widget"
|
1363 |
msgstr ""
|
1364 |
|
1365 |
-
#: defaults.php:
|
1366 |
msgid "Modified the %WidgetName% widget in %Sidebar%"
|
1367 |
msgstr ""
|
1368 |
|
1369 |
-
#: defaults.php:
|
1370 |
msgid "User deleted widget"
|
1371 |
msgstr ""
|
1372 |
|
1373 |
-
#: defaults.php:
|
1374 |
msgid "Deleted the %WidgetName% widget from %Sidebar%"
|
1375 |
msgstr ""
|
1376 |
|
1377 |
-
#: defaults.php:
|
1378 |
msgid "User moved widget"
|
1379 |
msgstr ""
|
1380 |
|
1381 |
-
#: defaults.php:
|
1382 |
msgid "Moved the %WidgetName% widget from %OldSidebar% to %NewSidebar%"
|
1383 |
msgstr ""
|
1384 |
|
1385 |
-
#: defaults.php:
|
1386 |
msgid "User changed widget position"
|
1387 |
msgstr ""
|
1388 |
|
1389 |
-
#: defaults.php:
|
1390 |
msgid ""
|
1391 |
"Moved the %WidgetName% widget from position %OldPosition% to position "
|
1392 |
"%NewPosition% in sidebar %Sidebar%"
|
1393 |
msgstr ""
|
1394 |
|
1395 |
-
#: defaults.php:
|
1396 |
msgid "User Profiles"
|
1397 |
msgstr ""
|
1398 |
|
1399 |
-
#: defaults.php:
|
1400 |
msgid "A new user was created on WordPress"
|
1401 |
msgstr ""
|
1402 |
|
1403 |
-
#: defaults.php:
|
1404 |
msgid ""
|
1405 |
"User %NewUserData->Username% subscribed with a role of %NewUserData->Roles%"
|
1406 |
msgstr ""
|
1407 |
|
1408 |
-
#: defaults.php:
|
1409 |
msgid "A user created another WordPress user"
|
1410 |
msgstr ""
|
1411 |
|
1412 |
-
#: defaults.php:
|
1413 |
msgid ""
|
1414 |
"Created a new user %NewUserData->Username% with the role of %NewUserData-"
|
1415 |
">Roles%"
|
1416 |
msgstr ""
|
1417 |
|
1418 |
-
#: defaults.php:
|
1419 |
msgid "The role of a user was changed by another WordPress user"
|
1420 |
msgstr ""
|
1421 |
|
1422 |
-
#: defaults.php:
|
1423 |
msgid "Changed the role of user %TargetUsername% from %OldRole% to %NewRole%"
|
1424 |
msgstr ""
|
1425 |
|
1426 |
-
#: defaults.php:
|
1427 |
msgid "User has changed his or her password"
|
1428 |
msgstr ""
|
1429 |
|
1430 |
-
#: defaults.php:
|
1431 |
msgid "Changed the password"
|
1432 |
msgstr ""
|
1433 |
|
1434 |
-
#: defaults.php:
|
1435 |
msgid "A user changed another user's password"
|
1436 |
msgstr ""
|
1437 |
|
1438 |
-
#: defaults.php:
|
1439 |
msgid ""
|
1440 |
"Changed the password for user %TargetUserData->Username% with the role of "
|
1441 |
"%TargetUserData->Roles%"
|
1442 |
msgstr ""
|
1443 |
|
1444 |
-
#: defaults.php:
|
1445 |
msgid "User changed his or her email address"
|
1446 |
msgstr ""
|
1447 |
|
1448 |
-
#: defaults.php:
|
1449 |
msgid "Changed the email address from %OldEmail% to %NewEmail%"
|
1450 |
msgstr ""
|
1451 |
|
1452 |
-
#: defaults.php:
|
1453 |
msgid "A user changed another user's email address"
|
1454 |
msgstr ""
|
1455 |
|
1456 |
-
#: defaults.php:
|
1457 |
msgid ""
|
1458 |
"Changed the email address of user account %TargetUsername% from %OldEmail% "
|
1459 |
"to %NewEmail%"
|
1460 |
msgstr ""
|
1461 |
|
1462 |
-
#: defaults.php:
|
1463 |
msgid "A user was deleted by another user"
|
1464 |
msgstr ""
|
1465 |
|
1466 |
-
#: defaults.php:
|
1467 |
msgid ""
|
1468 |
"Deleted User %TargetUserData->Username% with the role of %TargetUserData-"
|
1469 |
">Roles%"
|
1470 |
msgstr ""
|
1471 |
|
1472 |
-
#: defaults.php:
|
1473 |
msgid "Plugins & Themes"
|
1474 |
msgstr ""
|
1475 |
|
1476 |
-
#: defaults.php:
|
1477 |
msgid "User installed a plugin"
|
1478 |
msgstr ""
|
1479 |
|
1480 |
-
#: defaults.php:
|
1481 |
msgid "Installed the plugin %Plugin->Name% in %Plugin->plugin_dir_path%"
|
1482 |
msgstr ""
|
1483 |
|
1484 |
-
#: defaults.php:
|
1485 |
msgid "User activated a WordPress plugin"
|
1486 |
msgstr ""
|
1487 |
|
1488 |
-
#: defaults.php:
|
1489 |
msgid "Activated the plugin %PluginData->Name% installed in %PluginFile%"
|
1490 |
msgstr ""
|
1491 |
|
1492 |
-
#: defaults.php:
|
1493 |
msgid "User deactivated a WordPress plugin"
|
1494 |
msgstr ""
|
1495 |
|
1496 |
-
#: defaults.php:
|
1497 |
msgid "Deactivated the plugin %PluginData->Name% installed in %PluginFile%"
|
1498 |
msgstr ""
|
1499 |
|
1500 |
-
#: defaults.php:
|
1501 |
msgid "User uninstalled a plugin"
|
1502 |
msgstr ""
|
1503 |
|
1504 |
-
#: defaults.php:
|
1505 |
msgid ""
|
1506 |
"Uninstalled the plugin %PluginData->Name% which was installed in %PluginFile%"
|
1507 |
msgstr ""
|
1508 |
|
1509 |
-
#: defaults.php:
|
1510 |
msgid "User upgraded a plugin"
|
1511 |
msgstr ""
|
1512 |
|
1513 |
-
#: defaults.php:
|
1514 |
msgid "Upgraded the plugin %PluginData->Name% installed in %PluginFile%"
|
1515 |
msgstr ""
|
1516 |
|
1517 |
-
#: defaults.php:
|
1518 |
msgid "User installed a theme"
|
1519 |
msgstr ""
|
1520 |
|
1521 |
-
#: defaults.php:
|
1522 |
msgid "Installed theme \"%Theme->Name%\" in %Theme->get_template_directory%"
|
1523 |
msgstr ""
|
1524 |
|
1525 |
-
#: defaults.php:
|
1526 |
msgid "User activated a theme"
|
1527 |
msgstr ""
|
1528 |
|
1529 |
-
#: defaults.php:
|
1530 |
msgid ""
|
1531 |
"Activated theme \"%Theme->Name%\", installed in %Theme-"
|
1532 |
">get_template_directory%"
|
1533 |
msgstr ""
|
1534 |
|
1535 |
-
#: defaults.php:
|
1536 |
msgid "User uninstalled a theme"
|
1537 |
msgstr ""
|
1538 |
|
1539 |
-
#: defaults.php:
|
1540 |
msgid ""
|
1541 |
"Deleted theme \"%Theme->Name%\" installed in %Theme->get_template_directory%"
|
1542 |
msgstr ""
|
1543 |
|
1544 |
-
#: defaults.php:
|
1545 |
msgid "System Activity"
|
1546 |
msgstr ""
|
1547 |
|
1548 |
-
#: defaults.php:
|
1549 |
msgid "Unknown Error"
|
1550 |
msgstr ""
|
1551 |
|
1552 |
-
#: defaults.php:
|
1553 |
msgid "An unexpected error has occurred"
|
1554 |
msgstr ""
|
1555 |
|
1556 |
-
#: defaults.php:
|
1557 |
msgid "PHP error"
|
1558 |
msgstr ""
|
1559 |
|
1560 |
-
#: defaults.php:
|
1561 |
-
#: defaults.php:
|
1562 |
msgid "%Message%"
|
1563 |
msgstr ""
|
1564 |
|
1565 |
-
#: defaults.php:
|
1566 |
msgid "PHP warning"
|
1567 |
msgstr ""
|
1568 |
|
1569 |
-
#: defaults.php:
|
1570 |
msgid "PHP notice"
|
1571 |
msgstr ""
|
1572 |
|
1573 |
-
#: defaults.php:
|
1574 |
msgid "PHP exception"
|
1575 |
msgstr ""
|
1576 |
|
1577 |
-
#: defaults.php:
|
1578 |
msgid "PHP shutdown error"
|
1579 |
msgstr ""
|
1580 |
|
1581 |
-
#: defaults.php:
|
1582 |
msgid "Events automatically pruned by system"
|
1583 |
msgstr ""
|
1584 |
|
1585 |
-
#: defaults.php:
|
1586 |
msgid "%EventCount% event(s) automatically deleted by system"
|
1587 |
msgstr ""
|
1588 |
|
1589 |
-
#: defaults.php:
|
1590 |
msgid "Option Anyone Can Register in WordPress settings changed"
|
1591 |
msgstr ""
|
1592 |
|
1593 |
-
#: defaults.php:
|
1594 |
msgid "%NewValue% the option \"Anyone can register\""
|
1595 |
msgstr ""
|
1596 |
|
1597 |
-
#: defaults.php:
|
1598 |
msgid "New User Default Role changed"
|
1599 |
msgstr ""
|
1600 |
|
1601 |
-
#: defaults.php:
|
1602 |
msgid "Changed the New User Default Role from %OldRole% to %NewRole%"
|
1603 |
msgstr ""
|
1604 |
|
1605 |
-
#: defaults.php:
|
1606 |
msgid "WordPress Administrator Notification email changed"
|
1607 |
msgstr ""
|
1608 |
|
1609 |
-
#: defaults.php:
|
1610 |
msgid ""
|
1611 |
"Changed the WordPress administrator notifications email address from "
|
1612 |
"%OldEmail% to %NewEmail%"
|
1613 |
msgstr ""
|
1614 |
|
1615 |
-
#: defaults.php:
|
1616 |
msgid "WordPress was updated"
|
1617 |
msgstr ""
|
1618 |
|
1619 |
-
#: defaults.php:
|
1620 |
msgid "Updated WordPress from version %OldVersion% to %NewVersion%"
|
1621 |
msgstr ""
|
1622 |
|
1623 |
-
#: defaults.php:
|
1624 |
msgid "User changes the WordPress Permalinks"
|
1625 |
msgstr ""
|
1626 |
|
1627 |
-
#: defaults.php:
|
1628 |
msgid "Changed the WordPress permalinks from %OldPattern% to %NewPattern%"
|
1629 |
msgstr ""
|
1630 |
|
1631 |
-
#: defaults.php:
|
1632 |
msgid "MultiSite"
|
1633 |
msgstr ""
|
1634 |
|
1635 |
-
#: defaults.php:
|
1636 |
msgid "User granted Super Admin privileges"
|
1637 |
msgstr ""
|
1638 |
|
1639 |
-
#: defaults.php:
|
1640 |
msgid "Granted Super Admin privileges to %TargetUsername%"
|
1641 |
msgstr ""
|
1642 |
|
1643 |
-
#: defaults.php:
|
1644 |
msgid "User revoked from Super Admin privileges"
|
1645 |
msgstr ""
|
1646 |
|
1647 |
-
#: defaults.php:
|
1648 |
msgid "Revoked Super Admin privileges from %TargetUsername%"
|
1649 |
msgstr ""
|
1650 |
|
1651 |
-
#: defaults.php:
|
1652 |
msgid "Existing user added to a site"
|
1653 |
msgstr ""
|
1654 |
|
1655 |
-
#: defaults.php:
|
1656 |
msgid ""
|
1657 |
"Added existing user %TargetUsername% with %TargetUserRole% role to site "
|
1658 |
"%SiteName%"
|
1659 |
msgstr ""
|
1660 |
|
1661 |
-
#: defaults.php:
|
1662 |
msgid "User removed from site"
|
1663 |
msgstr ""
|
1664 |
|
1665 |
-
#: defaults.php:
|
1666 |
msgid ""
|
1667 |
"Removed user %TargetUsername% with role %TargetUserRole% from %SiteName% site"
|
1668 |
msgstr ""
|
1669 |
|
1670 |
-
#: defaults.php:
|
1671 |
msgid "New network user created"
|
1672 |
msgstr ""
|
1673 |
|
1674 |
-
#: defaults.php:
|
1675 |
msgid "Created a new network user %NewUserData->Username%"
|
1676 |
msgstr ""
|
1677 |
|
1678 |
-
#: defaults.php:
|
1679 |
msgid "New site added on network"
|
1680 |
msgstr ""
|
1681 |
|
1682 |
-
#: defaults.php:
|
1683 |
msgid "Added site %SiteName% to the network"
|
1684 |
msgstr ""
|
1685 |
|
1686 |
-
#: defaults.php:
|
1687 |
msgid "Existing site archived"
|
1688 |
msgstr ""
|
1689 |
|
1690 |
-
#: defaults.php:
|
1691 |
msgid "Archived site %SiteName%"
|
1692 |
msgstr ""
|
1693 |
|
1694 |
-
#: defaults.php:
|
1695 |
msgid "Archived site has been unarchived"
|
1696 |
msgstr ""
|
1697 |
|
1698 |
-
#: defaults.php:
|
1699 |
msgid "Unarchived site %SiteName%"
|
1700 |
msgstr ""
|
1701 |
|
1702 |
-
#: defaults.php:
|
1703 |
msgid "Deactivated site has been activated"
|
1704 |
msgstr ""
|
1705 |
|
1706 |
-
#: defaults.php:
|
1707 |
msgid "Activated site %SiteName%"
|
1708 |
msgstr ""
|
1709 |
|
1710 |
-
#: defaults.php:
|
1711 |
msgid "Site has been deactivated"
|
1712 |
msgstr ""
|
1713 |
|
1714 |
-
#: defaults.php:
|
1715 |
msgid "Deactivated site %SiteName%"
|
1716 |
msgstr ""
|
1717 |
|
1718 |
-
#: defaults.php:
|
1719 |
msgid "Existing site deleted from network"
|
1720 |
msgstr ""
|
1721 |
|
1722 |
-
#: defaults.php:
|
1723 |
msgid "Deleted site %SiteName%"
|
1724 |
msgstr ""
|
1725 |
|
1726 |
-
#: defaults.php:
|
1727 |
msgid "Activated theme on network"
|
1728 |
msgstr ""
|
1729 |
|
1730 |
-
#: defaults.php:
|
1731 |
msgid ""
|
1732 |
"Network activated %Theme->Name% theme installed in %Theme-"
|
1733 |
">get_template_directory%"
|
1734 |
msgstr ""
|
1735 |
|
1736 |
-
#: defaults.php:
|
1737 |
msgid "Deactivated theme from network"
|
1738 |
msgstr ""
|
1739 |
|
1740 |
-
#: defaults.php:
|
1741 |
msgid ""
|
1742 |
"Network deactivated %Theme->Name% theme installed in %Theme-"
|
1743 |
">get_template_directory%"
|
1744 |
msgstr ""
|
1745 |
|
1746 |
-
#: wp-security-audit-log.php:
|
1747 |
msgid ""
|
1748 |
"You are using a version of PHP that is older than %s, which is no longer "
|
1749 |
"supported.<br/>Contact us on <a href=\"mailto:plugins@wpwhitesecurity.com"
|
2 |
# This file is distributed under the same license as the WP Security Audit Log package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: WP Security Audit Log 1.4.0\n"
|
6 |
+
"Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/wp-security-audit-"
|
7 |
+
"log\n"
|
8 |
+
"POT-Creation-Date: 2015-02-24 09:09:21+00:00\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
33 |
msgid "All Sites"
|
34 |
msgstr ""
|
35 |
|
36 |
+
#: classes/AuditLogListView.php:113 classes/Views/ToggleAlerts.php:69
|
37 |
msgid "Code"
|
38 |
msgstr ""
|
39 |
|
40 |
+
#: classes/AuditLogListView.php:114 classes/Views/ToggleAlerts.php:70
|
41 |
msgid "Type"
|
42 |
msgstr ""
|
43 |
|
222 |
msgstr ""
|
223 |
|
224 |
#: classes/Views/AuditLog.php:64 classes/Views/Licensing.php:34
|
225 |
+
#: classes/Views/Settings.php:82 classes/Views/ToggleAlerts.php:28
|
226 |
msgid "You do not have sufficient permissions to access this page."
|
227 |
msgstr ""
|
228 |
|
421 |
msgstr ""
|
422 |
|
423 |
#: classes/Views/Licensing.php:39 classes/Views/Settings.php:87
|
424 |
+
#: classes/Views/ToggleAlerts.php:43
|
425 |
msgid "Settings have been saved."
|
426 |
msgstr ""
|
427 |
|
428 |
#: classes/Views/Licensing.php:41 classes/Views/Settings.php:89
|
429 |
+
#: classes/Views/ToggleAlerts.php:45
|
430 |
msgid "Error: "
|
431 |
msgstr ""
|
432 |
|
442 |
msgid "Inactive"
|
443 |
msgstr ""
|
444 |
|
445 |
+
#: classes/Views/Settings.php:17 classes/Views/Settings.php:25
|
446 |
msgid "Settings"
|
447 |
msgstr ""
|
448 |
|
555 |
msgstr ""
|
556 |
|
557 |
#: classes/Views/Settings.php:262
|
558 |
+
msgid "Refresh Audit Log Viewer"
|
559 |
msgstr ""
|
560 |
|
561 |
#: classes/Views/Settings.php:268
|
563 |
msgstr ""
|
564 |
|
565 |
#: classes/Views/Settings.php:270
|
566 |
+
msgid "Refresh Audit Log Viewer as soon as there are new alerts."
|
567 |
msgstr ""
|
568 |
|
569 |
#: classes/Views/Settings.php:274
|
571 |
msgstr ""
|
572 |
|
573 |
#: classes/Views/Settings.php:276
|
574 |
+
msgid "Refresh Audit Log Viewer only when the page is reloaded."
|
575 |
msgstr ""
|
576 |
|
577 |
#: classes/Views/Settings.php:282
|
631 |
"0 in the wp_options table."
|
632 |
msgstr ""
|
633 |
|
634 |
+
#: classes/Views/Settings.php:341
|
635 |
+
msgid "Remove Data on Unistall"
|
636 |
+
msgstr ""
|
637 |
+
|
638 |
+
#: classes/Views/ToggleAlerts.php:5 classes/Views/ToggleAlerts.php:13
|
639 |
msgid "Enable/Disable Alerts"
|
640 |
msgstr ""
|
641 |
|
642 |
+
#: classes/Views/ToggleAlerts.php:71 classes/WidgetManager.php:38
|
643 |
msgid "Description"
|
644 |
msgstr ""
|
645 |
|
646 |
+
#: classes/Views/ToggleAlerts.php:80
|
647 |
msgid "Not Implemented"
|
648 |
msgstr ""
|
649 |
|
650 |
+
#: classes/Views/ToggleAlerts.php:83
|
651 |
msgid "Not Available"
|
652 |
msgstr ""
|
653 |
|
654 |
+
#: classes/Views/ToggleAlerts.php:97
|
655 |
msgid "Save Changes"
|
656 |
msgstr ""
|
657 |
|
755 |
msgid "Successfully logged out"
|
756 |
msgstr ""
|
757 |
|
758 |
+
#: defaults.php:41 defaults.php:42
|
759 |
msgid "Login failed"
|
760 |
msgstr ""
|
761 |
|
764 |
msgstr ""
|
765 |
|
766 |
#: defaults.php:42
|
767 |
+
msgid "%Attempts% failed login(s) detected using non existing user."
|
768 |
+
msgstr ""
|
769 |
+
|
770 |
+
#: defaults.php:43
|
771 |
msgid "User uploaded file from Uploads directory"
|
772 |
msgstr ""
|
773 |
|
774 |
+
#: defaults.php:43
|
775 |
msgid "Uploaded the file %FileName% in %FilePath%"
|
776 |
msgstr ""
|
777 |
|
778 |
+
#: defaults.php:44
|
779 |
msgid "User deleted file from Uploads directory"
|
780 |
msgstr ""
|
781 |
|
782 |
+
#: defaults.php:44
|
783 |
msgid "Deleted the file %FileName% from %FilePath%"
|
784 |
msgstr ""
|
785 |
|
786 |
+
#: defaults.php:45
|
787 |
msgid "User changed a file using the theme editor"
|
788 |
msgstr ""
|
789 |
|
790 |
+
#: defaults.php:45
|
791 |
msgid "Modified %File% with the Theme Editor"
|
792 |
msgstr ""
|
793 |
|
794 |
+
#: defaults.php:46
|
795 |
msgid "User changed a file using the plugin editor"
|
796 |
msgstr ""
|
797 |
|
798 |
+
#: defaults.php:46
|
799 |
msgid "Modified %File% with the Plugin Editor"
|
800 |
msgstr ""
|
801 |
|
802 |
+
#: defaults.php:48
|
803 |
msgid "Blog Posts"
|
804 |
msgstr ""
|
805 |
|
806 |
+
#: defaults.php:49
|
807 |
msgid "User created a new blog post and saved it as draft"
|
808 |
msgstr ""
|
809 |
|
810 |
+
#: defaults.php:49
|
811 |
msgid "Created a new blog post called %PostTitle%. Blog post ID is %PostID%"
|
812 |
msgstr ""
|
813 |
|
814 |
+
#: defaults.php:50
|
815 |
msgid "User published a blog post"
|
816 |
msgstr ""
|
817 |
|
818 |
+
#: defaults.php:50
|
819 |
msgid "Published a blog post called %PostTitle%. Blog post URL is %PostUrl%"
|
820 |
msgstr ""
|
821 |
|
822 |
+
#: defaults.php:51
|
823 |
msgid "User modified a published blog post"
|
824 |
msgstr ""
|
825 |
|
826 |
+
#: defaults.php:51
|
827 |
msgid ""
|
828 |
"Modified the published blog post %PostTitle%. Blog post URL is %PostUrl%"
|
829 |
msgstr ""
|
830 |
|
831 |
+
#: defaults.php:52
|
832 |
msgid "User modified a draft blog post"
|
833 |
msgstr ""
|
834 |
|
835 |
+
#: defaults.php:52
|
836 |
msgid "Modified the draft blog post %PostTitle%. Blog post ID is %PostID%"
|
837 |
msgstr ""
|
838 |
|
839 |
+
#: defaults.php:53
|
840 |
msgid "User permanently deleted a blog post from the trash"
|
841 |
msgstr ""
|
842 |
|
843 |
+
#: defaults.php:53
|
844 |
msgid "Permanently deleted the post %PostTitle%. Blog post ID is %PostID%"
|
845 |
msgstr ""
|
846 |
|
847 |
+
#: defaults.php:54
|
848 |
msgid "User moved a blog post to the trash"
|
849 |
msgstr ""
|
850 |
|
851 |
+
#: defaults.php:54
|
852 |
msgid "Moved the blog post %PostTitle% to trash"
|
853 |
msgstr ""
|
854 |
|
855 |
+
#: defaults.php:55
|
856 |
msgid "User restored a blog post from trash"
|
857 |
msgstr ""
|
858 |
|
859 |
+
#: defaults.php:55
|
860 |
msgid "Restored post %PostTitle% from trash"
|
861 |
msgstr ""
|
862 |
|
863 |
+
#: defaults.php:56
|
864 |
msgid "User changed blog post category"
|
865 |
msgstr ""
|
866 |
|
867 |
+
#: defaults.php:56
|
868 |
msgid ""
|
869 |
"Changed the category of the post %PostTitle% from %OldCategories% to "
|
870 |
"%NewCategories%"
|
871 |
msgstr ""
|
872 |
|
873 |
+
#: defaults.php:57
|
874 |
msgid "User changed blog post URL"
|
875 |
msgstr ""
|
876 |
|
877 |
+
#: defaults.php:57
|
878 |
msgid "Changed the URL of the post %PostTitle% from %OldUrl% to %NewUrl%"
|
879 |
msgstr ""
|
880 |
|
881 |
+
#: defaults.php:58
|
882 |
msgid "User changed blog post author"
|
883 |
msgstr ""
|
884 |
|
885 |
+
#: defaults.php:58
|
886 |
msgid "Changed the author of %PostTitle% post from %OldAuthor% to %NewAuthor%"
|
887 |
msgstr ""
|
888 |
|
889 |
+
#: defaults.php:59
|
890 |
msgid "User changed blog post status"
|
891 |
msgstr ""
|
892 |
|
893 |
+
#: defaults.php:59
|
894 |
msgid "Changed the status of %PostTitle% post from %OldStatus% to %NewStatus%"
|
895 |
msgstr ""
|
896 |
|
897 |
+
#: defaults.php:60
|
898 |
msgid "User created new category"
|
899 |
msgstr ""
|
900 |
|
901 |
+
#: defaults.php:60
|
902 |
msgid "Created a new category called %CategoryName%"
|
903 |
msgstr ""
|
904 |
|
905 |
+
#: defaults.php:61
|
906 |
msgid "User deleted category"
|
907 |
msgstr ""
|
908 |
|
909 |
+
#: defaults.php:61
|
910 |
msgid "Deleted the %CategoryName% category"
|
911 |
msgstr ""
|
912 |
|
913 |
+
#: defaults.php:62
|
914 |
msgid "User changed the visibility of a blog post"
|
915 |
msgstr ""
|
916 |
|
917 |
+
#: defaults.php:62
|
918 |
msgid ""
|
919 |
"Changed the visibility of %PostTitle% blog post from %OldVisibility% to "
|
920 |
"%NewVisibility%"
|
921 |
msgstr ""
|
922 |
|
923 |
+
#: defaults.php:63
|
924 |
msgid "User changed the date of a blog post"
|
925 |
msgstr ""
|
926 |
|
927 |
+
#: defaults.php:63
|
928 |
msgid "Changed the date of %PostTitle% blog post from %OldDate% to %NewDate%"
|
929 |
msgstr ""
|
930 |
|
931 |
+
#: defaults.php:64
|
932 |
msgid "User sets a post as sticky"
|
933 |
msgstr ""
|
934 |
|
935 |
+
#: defaults.php:64
|
936 |
msgid "Set the post %PostTitle% as Sticky"
|
937 |
msgstr ""
|
938 |
|
939 |
+
#: defaults.php:65
|
940 |
msgid "User removes post from sticky"
|
941 |
msgstr ""
|
942 |
|
943 |
+
#: defaults.php:65
|
944 |
msgid "Removed the post %PostTitle% from Sticky"
|
945 |
msgstr ""
|
946 |
|
947 |
+
#: defaults.php:66
|
948 |
msgid "User creates a custom field for a post"
|
949 |
msgstr ""
|
950 |
|
951 |
+
#: defaults.php:66
|
952 |
msgid ""
|
953 |
"Created custom field %MetaKey% with value %MetaValue% in post %PostTitle%"
|
954 |
msgstr ""
|
955 |
|
956 |
+
#: defaults.php:67
|
957 |
msgid "User updates a custom field value for a post"
|
958 |
msgstr ""
|
959 |
|
960 |
+
#: defaults.php:67
|
961 |
msgid ""
|
962 |
"Modified the value of custom field %MetaKey% from %MetaValueOld% to "
|
963 |
"%MetaValueNew% in post %PostTitle%"
|
964 |
msgstr ""
|
965 |
|
966 |
+
#: defaults.php:68
|
967 |
msgid "User deletes a custom field from a post"
|
968 |
msgstr ""
|
969 |
|
970 |
+
#: defaults.php:68
|
971 |
msgid ""
|
972 |
"Deleted custom field %MetaKey% with value %MetaValue% from post %PostTitle%"
|
973 |
msgstr ""
|
974 |
|
975 |
+
#: defaults.php:69
|
976 |
msgid "User updates a custom field name for a post"
|
977 |
msgstr ""
|
978 |
|
979 |
+
#: defaults.php:69
|
980 |
msgid ""
|
981 |
"Changed the custom field name from %MetaKeyOld% to %MetaKeyNew% in post "
|
982 |
"%PostTitle%"
|
983 |
msgstr ""
|
984 |
|
985 |
+
#: defaults.php:70
|
986 |
msgid "User modifies content for a published post"
|
987 |
msgstr ""
|
988 |
|
989 |
+
#: defaults.php:70
|
990 |
msgid "Modified the content of published post %PostTitle%"
|
991 |
msgstr ""
|
992 |
|
993 |
+
#: defaults.php:71
|
994 |
msgid "User modifies content for a draft post"
|
995 |
msgstr ""
|
996 |
|
997 |
+
#: defaults.php:71
|
998 |
msgid "Modified the content of draft post %PostTitle%"
|
999 |
msgstr ""
|
1000 |
|
1001 |
+
#: defaults.php:73
|
1002 |
msgid "Pages"
|
1003 |
msgstr ""
|
1004 |
|
1005 |
+
#: defaults.php:74
|
1006 |
msgid "User created a new WordPress page and saved it as draft"
|
1007 |
msgstr ""
|
1008 |
|
1009 |
+
#: defaults.php:74
|
1010 |
msgid "Created a new page called %PostTitle%. Page ID is %PostID%"
|
1011 |
msgstr ""
|
1012 |
|
1013 |
+
#: defaults.php:75
|
1014 |
msgid "User published a WorPress page"
|
1015 |
msgstr ""
|
1016 |
|
1017 |
+
#: defaults.php:75
|
1018 |
msgid "Published a page called %PostTitle%. Page URL is %PostUrl%"
|
1019 |
msgstr ""
|
1020 |
|
1021 |
+
#: defaults.php:76
|
1022 |
msgid "User modified a published WordPress page"
|
1023 |
msgstr ""
|
1024 |
|
1025 |
+
#: defaults.php:76
|
1026 |
msgid "Modified the published page %PostTitle%. Page URL is %PostUrl%"
|
1027 |
msgstr ""
|
1028 |
|
1029 |
+
#: defaults.php:77
|
1030 |
msgid "User modified a draft WordPress page"
|
1031 |
msgstr ""
|
1032 |
|
1033 |
+
#: defaults.php:77
|
1034 |
msgid "Modified the draft page %PostTitle%. Page ID is %PostID%"
|
1035 |
msgstr ""
|
1036 |
|
1037 |
+
#: defaults.php:78
|
1038 |
msgid "User permanently deleted a page from the trash"
|
1039 |
msgstr ""
|
1040 |
|
1041 |
+
#: defaults.php:78
|
1042 |
msgid "Permanently deleted the page %PostTitle%. Page ID is %PostID%"
|
1043 |
msgstr ""
|
1044 |
|
1045 |
+
#: defaults.php:79
|
1046 |
msgid "User moved WordPress page to the trash"
|
1047 |
msgstr ""
|
1048 |
|
1049 |
+
#: defaults.php:79
|
1050 |
msgid "Moved the page %PostTitle% to trash"
|
1051 |
msgstr ""
|
1052 |
|
1053 |
+
#: defaults.php:80
|
1054 |
msgid "User restored a WordPress page from trash"
|
1055 |
msgstr ""
|
1056 |
|
1057 |
+
#: defaults.php:80
|
1058 |
msgid "Restored page %PostTitle% from trash"
|
1059 |
msgstr ""
|
1060 |
|
1061 |
+
#: defaults.php:81
|
1062 |
msgid "User changed page URL"
|
1063 |
msgstr ""
|
1064 |
|
1065 |
+
#: defaults.php:81
|
1066 |
msgid "Changed the URL of the page %PostTitle% from %OldUrl% to %NewUrl%"
|
1067 |
msgstr ""
|
1068 |
|
1069 |
+
#: defaults.php:82
|
1070 |
msgid "User changed page author"
|
1071 |
msgstr ""
|
1072 |
|
1073 |
+
#: defaults.php:82
|
1074 |
msgid "Changed the author of %PostTitle% page from %OldAuthor% to %NewAuthor%"
|
1075 |
msgstr ""
|
1076 |
|
1077 |
+
#: defaults.php:83
|
1078 |
msgid "User changed page status"
|
1079 |
msgstr ""
|
1080 |
|
1081 |
+
#: defaults.php:83
|
1082 |
msgid "Changed the status of %PostTitle% page from %OldStatus% to %NewStatus%"
|
1083 |
msgstr ""
|
1084 |
|
1085 |
+
#: defaults.php:84
|
1086 |
msgid "User changed the visibility of a page post"
|
1087 |
msgstr ""
|
1088 |
|
1089 |
+
#: defaults.php:84
|
1090 |
msgid ""
|
1091 |
"Changed the visibility of %PostTitle% page from %OldVisibility% to "
|
1092 |
"%NewVisibility%"
|
1093 |
msgstr ""
|
1094 |
|
1095 |
+
#: defaults.php:85
|
1096 |
msgid "User changed the date of a page post"
|
1097 |
msgstr ""
|
1098 |
|
1099 |
+
#: defaults.php:85
|
1100 |
msgid "Changed the date of %PostTitle% page from %OldDate% to %NewDate%"
|
1101 |
msgstr ""
|
1102 |
|
1103 |
+
#: defaults.php:86
|
1104 |
msgid "User changed the parent of a page"
|
1105 |
msgstr ""
|
1106 |
|
1107 |
+
#: defaults.php:86
|
1108 |
msgid ""
|
1109 |
"Changed the parent of %PostTitle% page from %OldParentName% to %NewParentName"
|
1110 |
"%"
|
1111 |
msgstr ""
|
1112 |
|
1113 |
+
#: defaults.php:87
|
1114 |
msgid "User changes the template of a page"
|
1115 |
msgstr ""
|
1116 |
|
1117 |
+
#: defaults.php:87
|
1118 |
msgid ""
|
1119 |
"Changed the template of %PostTitle% page from %OldTemplate% to %NewTemplate%"
|
1120 |
msgstr ""
|
1121 |
|
1122 |
+
#: defaults.php:88
|
1123 |
msgid "User creates a custom field for a page"
|
1124 |
msgstr ""
|
1125 |
|
1126 |
+
#: defaults.php:88
|
1127 |
msgid ""
|
1128 |
"Created custom field %MetaKey% with value %MetaValue% in page %PostTitle%"
|
1129 |
msgstr ""
|
1130 |
|
1131 |
+
#: defaults.php:89
|
1132 |
msgid "User updates a custom field value for a page"
|
1133 |
msgstr ""
|
1134 |
|
1135 |
+
#: defaults.php:89
|
1136 |
msgid ""
|
1137 |
"Modified the value of custom field %MetaKey% from %MetaValueOld% to "
|
1138 |
"%MetaValueNew% in page %PostTitle%"
|
1139 |
msgstr ""
|
1140 |
|
1141 |
+
#: defaults.php:90
|
1142 |
msgid "User deletes a custom field from a page"
|
1143 |
msgstr ""
|
1144 |
|
1145 |
+
#: defaults.php:90
|
1146 |
msgid ""
|
1147 |
"Deleted custom field %MetaKey% with value %MetaValue% from page %PostTitle%"
|
1148 |
msgstr ""
|
1149 |
|
1150 |
+
#: defaults.php:91
|
1151 |
msgid "User updates a custom field name for a page"
|
1152 |
msgstr ""
|
1153 |
|
1154 |
+
#: defaults.php:91
|
1155 |
msgid ""
|
1156 |
"Changed the custom field name from %MetaKeyOld% to %MetaKeyNew% in page "
|
1157 |
"%PostTitle%"
|
1158 |
msgstr ""
|
1159 |
|
1160 |
+
#: defaults.php:92
|
1161 |
msgid "User modifies content for a published page"
|
1162 |
msgstr ""
|
1163 |
|
1164 |
+
#: defaults.php:92
|
1165 |
msgid "Modified the content of published page %PostTitle%"
|
1166 |
msgstr ""
|
1167 |
|
1168 |
+
#: defaults.php:93
|
1169 |
msgid "User modifies content for a draft page"
|
1170 |
msgstr ""
|
1171 |
|
1172 |
+
#: defaults.php:93
|
1173 |
msgid "Modified the content of draft page %PostTitle%"
|
1174 |
msgstr ""
|
1175 |
|
1176 |
+
#: defaults.php:95
|
1177 |
msgid "Custom Posts"
|
1178 |
msgstr ""
|
1179 |
|
1180 |
+
#: defaults.php:96
|
1181 |
msgid "User created a new post with custom post type and saved it as draft"
|
1182 |
msgstr ""
|
1183 |
|
1184 |
+
#: defaults.php:96
|
1185 |
msgid ""
|
1186 |
"Created a new custom post called %PostTitle% of type %PostType%. Post ID is "
|
1187 |
"%PostID%"
|
1188 |
msgstr ""
|
1189 |
|
1190 |
+
#: defaults.php:97
|
1191 |
msgid "User published a post with custom post type"
|
1192 |
msgstr ""
|
1193 |
|
1194 |
+
#: defaults.php:97
|
1195 |
msgid ""
|
1196 |
"Published a custom post %PostTitle% of type %PostType%. Post URL is %PostUrl%"
|
1197 |
msgstr ""
|
1198 |
|
1199 |
+
#: defaults.php:98
|
1200 |
msgid "User modified a post with custom post type"
|
1201 |
msgstr ""
|
1202 |
|
1203 |
+
#: defaults.php:98
|
1204 |
msgid ""
|
1205 |
"Modified custom post %PostTitle% of type %PostType%. Post URL is %PostUrl%"
|
1206 |
msgstr ""
|
1207 |
|
1208 |
+
#: defaults.php:99
|
1209 |
msgid "User modified a draft post with custom post type"
|
1210 |
msgstr ""
|
1211 |
|
1212 |
+
#: defaults.php:99
|
1213 |
msgid ""
|
1214 |
"Modified draft custom post %PostTitle% of type is %PostType%. Post URL is "
|
1215 |
"%PostUrl%"
|
1216 |
msgstr ""
|
1217 |
|
1218 |
+
#: defaults.php:100
|
1219 |
msgid "User permanently deleted post with custom post type"
|
1220 |
msgstr ""
|
1221 |
|
1222 |
+
#: defaults.php:100
|
1223 |
msgid "Permanently Deleted custom post %PostTitle% of type %PostType%"
|
1224 |
msgstr ""
|
1225 |
|
1226 |
+
#: defaults.php:101
|
1227 |
msgid "User moved post with custom post type to trash"
|
1228 |
msgstr ""
|
1229 |
|
1230 |
+
#: defaults.php:101
|
1231 |
msgid "Moved custom post %PostTitle% to trash. Post type is %PostType%"
|
1232 |
msgstr ""
|
1233 |
|
1234 |
+
#: defaults.php:102
|
1235 |
msgid "User restored post with custom post type from trash"
|
1236 |
msgstr ""
|
1237 |
|
1238 |
+
#: defaults.php:102
|
1239 |
msgid "Restored custom post %PostTitle% of type %PostType% from trash"
|
1240 |
msgstr ""
|
1241 |
|
1242 |
+
#: defaults.php:103
|
1243 |
msgid "User changed the category of a post with custom post type"
|
1244 |
msgstr ""
|
1245 |
|
1246 |
+
#: defaults.php:103
|
1247 |
msgid ""
|
1248 |
"Changed the category(ies) of custom post %PostTitle% of type %PostType% from "
|
1249 |
"%OldCategories% to %NewCategories%"
|
1250 |
msgstr ""
|
1251 |
|
1252 |
+
#: defaults.php:104
|
1253 |
msgid "User changed the URL of a post with custom post type"
|
1254 |
msgstr ""
|
1255 |
|
1256 |
+
#: defaults.php:104
|
1257 |
msgid ""
|
1258 |
"Changed the URL of custom post %PostTitle% of type %PostType% from %OldUrl% "
|
1259 |
"to %NewUrl%"
|
1260 |
msgstr ""
|
1261 |
|
1262 |
+
#: defaults.php:105
|
1263 |
msgid "User changed the author or post with custom post type"
|
1264 |
msgstr ""
|
1265 |
|
1266 |
+
#: defaults.php:105
|
1267 |
msgid ""
|
1268 |
"Changed the author of custom post %PostTitle% of type %PostType% from "
|
1269 |
"%OldAuthor% to %NewAuthor%"
|
1270 |
msgstr ""
|
1271 |
|
1272 |
+
#: defaults.php:106
|
1273 |
msgid "User changed the status of post with custom post type"
|
1274 |
msgstr ""
|
1275 |
|
1276 |
+
#: defaults.php:106
|
1277 |
msgid ""
|
1278 |
"Changed the status of custom post %PostTitle% of type %PostType% from "
|
1279 |
"%OldStatus% to %NewStatus%"
|
1280 |
msgstr ""
|
1281 |
|
1282 |
+
#: defaults.php:107
|
1283 |
msgid "User changed the visibility of a post with custom post type"
|
1284 |
msgstr ""
|
1285 |
|
1286 |
+
#: defaults.php:107
|
1287 |
msgid ""
|
1288 |
"Changed the visibility of custom post %PostTitle% of type %PostType% from "
|
1289 |
"%OldVisibility% to %NewVisibility%"
|
1290 |
msgstr ""
|
1291 |
|
1292 |
+
#: defaults.php:108
|
1293 |
msgid "User changed the date of post with custom post type"
|
1294 |
msgstr ""
|
1295 |
|
1296 |
+
#: defaults.php:108
|
1297 |
msgid ""
|
1298 |
"Changed the date of custom post %PostTitle% of type %PostType% from %OldDate"
|
1299 |
"% to %NewDate%"
|
1300 |
msgstr ""
|
1301 |
|
1302 |
+
#: defaults.php:109
|
1303 |
msgid "User creates a custom field for a custom post"
|
1304 |
msgstr ""
|
1305 |
|
1306 |
+
#: defaults.php:109
|
1307 |
msgid ""
|
1308 |
"Created custom field %MetaKey% with value %MetaValue% in custom post "
|
1309 |
"%PostTitle% of type %PostType%"
|
1310 |
msgstr ""
|
1311 |
|
1312 |
+
#: defaults.php:110
|
1313 |
msgid "User updates a custom field for a custom post"
|
1314 |
msgstr ""
|
1315 |
|
1316 |
+
#: defaults.php:110
|
1317 |
msgid ""
|
1318 |
"Modified the value of custom field %MetaKey% from %MetaValueOld% to "
|
1319 |
"%MetaValueNew% in custom post %PostTitle% of type %PostType%"
|
1320 |
msgstr ""
|
1321 |
|
1322 |
+
#: defaults.php:111
|
1323 |
msgid "User deletes a custom field from a custom post"
|
1324 |
msgstr ""
|
1325 |
|
1326 |
+
#: defaults.php:111
|
1327 |
msgid ""
|
1328 |
"Deleted custom field %MetaKey% with value %MetaValue% from custom post "
|
1329 |
"%PostTitle% of type %PostType%"
|
1330 |
msgstr ""
|
1331 |
|
1332 |
+
#: defaults.php:112
|
1333 |
msgid "User updates a custom field name for a custom post"
|
1334 |
msgstr ""
|
1335 |
|
1336 |
+
#: defaults.php:112
|
1337 |
msgid ""
|
1338 |
"Changed the custom field name from %MetaKeyOld% to %MetaKeyNew% in custom "
|
1339 |
"post %PostTitle% of type %PostType%"
|
1340 |
msgstr ""
|
1341 |
|
1342 |
+
#: defaults.php:113
|
1343 |
msgid "User modifies content for a published custom post"
|
1344 |
msgstr ""
|
1345 |
|
1346 |
+
#: defaults.php:113
|
1347 |
msgid "Modified the content of published custom post type %PostTitle%"
|
1348 |
msgstr ""
|
1349 |
|
1350 |
+
#: defaults.php:114
|
1351 |
msgid "User modifies content for a draft custom post"
|
1352 |
msgstr ""
|
1353 |
|
1354 |
+
#: defaults.php:114
|
1355 |
msgid "Modified the content of draft custom post type %PostTitle%"
|
1356 |
msgstr ""
|
1357 |
|
1358 |
+
#: defaults.php:116
|
1359 |
msgid "Widgets"
|
1360 |
msgstr ""
|
1361 |
|
1362 |
+
#: defaults.php:117
|
1363 |
msgid "User added a new widget"
|
1364 |
msgstr ""
|
1365 |
|
1366 |
+
#: defaults.php:117
|
1367 |
msgid "Added a new %WidgetName% widget in %Sidebar%"
|
1368 |
msgstr ""
|
1369 |
|
1370 |
+
#: defaults.php:118
|
1371 |
msgid "User modified a widget"
|
1372 |
msgstr ""
|
1373 |
|
1374 |
+
#: defaults.php:118
|
1375 |
msgid "Modified the %WidgetName% widget in %Sidebar%"
|
1376 |
msgstr ""
|
1377 |
|
1378 |
+
#: defaults.php:119
|
1379 |
msgid "User deleted widget"
|
1380 |
msgstr ""
|
1381 |
|
1382 |
+
#: defaults.php:119
|
1383 |
msgid "Deleted the %WidgetName% widget from %Sidebar%"
|
1384 |
msgstr ""
|
1385 |
|
1386 |
+
#: defaults.php:120
|
1387 |
msgid "User moved widget"
|
1388 |
msgstr ""
|
1389 |
|
1390 |
+
#: defaults.php:120
|
1391 |
msgid "Moved the %WidgetName% widget from %OldSidebar% to %NewSidebar%"
|
1392 |
msgstr ""
|
1393 |
|
1394 |
+
#: defaults.php:121
|
1395 |
msgid "User changed widget position"
|
1396 |
msgstr ""
|
1397 |
|
1398 |
+
#: defaults.php:121
|
1399 |
msgid ""
|
1400 |
"Moved the %WidgetName% widget from position %OldPosition% to position "
|
1401 |
"%NewPosition% in sidebar %Sidebar%"
|
1402 |
msgstr ""
|
1403 |
|
1404 |
+
#: defaults.php:123
|
1405 |
msgid "User Profiles"
|
1406 |
msgstr ""
|
1407 |
|
1408 |
+
#: defaults.php:124
|
1409 |
msgid "A new user was created on WordPress"
|
1410 |
msgstr ""
|
1411 |
|
1412 |
+
#: defaults.php:124
|
1413 |
msgid ""
|
1414 |
"User %NewUserData->Username% subscribed with a role of %NewUserData->Roles%"
|
1415 |
msgstr ""
|
1416 |
|
1417 |
+
#: defaults.php:125
|
1418 |
msgid "A user created another WordPress user"
|
1419 |
msgstr ""
|
1420 |
|
1421 |
+
#: defaults.php:125
|
1422 |
msgid ""
|
1423 |
"Created a new user %NewUserData->Username% with the role of %NewUserData-"
|
1424 |
">Roles%"
|
1425 |
msgstr ""
|
1426 |
|
1427 |
+
#: defaults.php:126
|
1428 |
msgid "The role of a user was changed by another WordPress user"
|
1429 |
msgstr ""
|
1430 |
|
1431 |
+
#: defaults.php:126
|
1432 |
msgid "Changed the role of user %TargetUsername% from %OldRole% to %NewRole%"
|
1433 |
msgstr ""
|
1434 |
|
1435 |
+
#: defaults.php:127
|
1436 |
msgid "User has changed his or her password"
|
1437 |
msgstr ""
|
1438 |
|
1439 |
+
#: defaults.php:127
|
1440 |
msgid "Changed the password"
|
1441 |
msgstr ""
|
1442 |
|
1443 |
+
#: defaults.php:128
|
1444 |
msgid "A user changed another user's password"
|
1445 |
msgstr ""
|
1446 |
|
1447 |
+
#: defaults.php:128
|
1448 |
msgid ""
|
1449 |
"Changed the password for user %TargetUserData->Username% with the role of "
|
1450 |
"%TargetUserData->Roles%"
|
1451 |
msgstr ""
|
1452 |
|
1453 |
+
#: defaults.php:129
|
1454 |
msgid "User changed his or her email address"
|
1455 |
msgstr ""
|
1456 |
|
1457 |
+
#: defaults.php:129
|
1458 |
msgid "Changed the email address from %OldEmail% to %NewEmail%"
|
1459 |
msgstr ""
|
1460 |
|
1461 |
+
#: defaults.php:130
|
1462 |
msgid "A user changed another user's email address"
|
1463 |
msgstr ""
|
1464 |
|
1465 |
+
#: defaults.php:130
|
1466 |
msgid ""
|
1467 |
"Changed the email address of user account %TargetUsername% from %OldEmail% "
|
1468 |
"to %NewEmail%"
|
1469 |
msgstr ""
|
1470 |
|
1471 |
+
#: defaults.php:131
|
1472 |
msgid "A user was deleted by another user"
|
1473 |
msgstr ""
|
1474 |
|
1475 |
+
#: defaults.php:131
|
1476 |
msgid ""
|
1477 |
"Deleted User %TargetUserData->Username% with the role of %TargetUserData-"
|
1478 |
">Roles%"
|
1479 |
msgstr ""
|
1480 |
|
1481 |
+
#: defaults.php:133
|
1482 |
msgid "Plugins & Themes"
|
1483 |
msgstr ""
|
1484 |
|
1485 |
+
#: defaults.php:134
|
1486 |
msgid "User installed a plugin"
|
1487 |
msgstr ""
|
1488 |
|
1489 |
+
#: defaults.php:134
|
1490 |
msgid "Installed the plugin %Plugin->Name% in %Plugin->plugin_dir_path%"
|
1491 |
msgstr ""
|
1492 |
|
1493 |
+
#: defaults.php:135
|
1494 |
msgid "User activated a WordPress plugin"
|
1495 |
msgstr ""
|
1496 |
|
1497 |
+
#: defaults.php:135
|
1498 |
msgid "Activated the plugin %PluginData->Name% installed in %PluginFile%"
|
1499 |
msgstr ""
|
1500 |
|
1501 |
+
#: defaults.php:136
|
1502 |
msgid "User deactivated a WordPress plugin"
|
1503 |
msgstr ""
|
1504 |
|
1505 |
+
#: defaults.php:136
|
1506 |
msgid "Deactivated the plugin %PluginData->Name% installed in %PluginFile%"
|
1507 |
msgstr ""
|
1508 |
|
1509 |
+
#: defaults.php:137
|
1510 |
msgid "User uninstalled a plugin"
|
1511 |
msgstr ""
|
1512 |
|
1513 |
+
#: defaults.php:137
|
1514 |
msgid ""
|
1515 |
"Uninstalled the plugin %PluginData->Name% which was installed in %PluginFile%"
|
1516 |
msgstr ""
|
1517 |
|
1518 |
+
#: defaults.php:138
|
1519 |
msgid "User upgraded a plugin"
|
1520 |
msgstr ""
|
1521 |
|
1522 |
+
#: defaults.php:138
|
1523 |
msgid "Upgraded the plugin %PluginData->Name% installed in %PluginFile%"
|
1524 |
msgstr ""
|
1525 |
|
1526 |
+
#: defaults.php:139
|
1527 |
msgid "User installed a theme"
|
1528 |
msgstr ""
|
1529 |
|
1530 |
+
#: defaults.php:139
|
1531 |
msgid "Installed theme \"%Theme->Name%\" in %Theme->get_template_directory%"
|
1532 |
msgstr ""
|
1533 |
|
1534 |
+
#: defaults.php:140
|
1535 |
msgid "User activated a theme"
|
1536 |
msgstr ""
|
1537 |
|
1538 |
+
#: defaults.php:140
|
1539 |
msgid ""
|
1540 |
"Activated theme \"%Theme->Name%\", installed in %Theme-"
|
1541 |
">get_template_directory%"
|
1542 |
msgstr ""
|
1543 |
|
1544 |
+
#: defaults.php:141
|
1545 |
msgid "User uninstalled a theme"
|
1546 |
msgstr ""
|
1547 |
|
1548 |
+
#: defaults.php:141
|
1549 |
msgid ""
|
1550 |
"Deleted theme \"%Theme->Name%\" installed in %Theme->get_template_directory%"
|
1551 |
msgstr ""
|
1552 |
|
1553 |
+
#: defaults.php:143
|
1554 |
msgid "System Activity"
|
1555 |
msgstr ""
|
1556 |
|
1557 |
+
#: defaults.php:144
|
1558 |
msgid "Unknown Error"
|
1559 |
msgstr ""
|
1560 |
|
1561 |
+
#: defaults.php:144
|
1562 |
msgid "An unexpected error has occurred"
|
1563 |
msgstr ""
|
1564 |
|
1565 |
+
#: defaults.php:145
|
1566 |
msgid "PHP error"
|
1567 |
msgstr ""
|
1568 |
|
1569 |
+
#: defaults.php:145 defaults.php:146 defaults.php:147 defaults.php:148
|
1570 |
+
#: defaults.php:149
|
1571 |
msgid "%Message%"
|
1572 |
msgstr ""
|
1573 |
|
1574 |
+
#: defaults.php:146
|
1575 |
msgid "PHP warning"
|
1576 |
msgstr ""
|
1577 |
|
1578 |
+
#: defaults.php:147
|
1579 |
msgid "PHP notice"
|
1580 |
msgstr ""
|
1581 |
|
1582 |
+
#: defaults.php:148
|
1583 |
msgid "PHP exception"
|
1584 |
msgstr ""
|
1585 |
|
1586 |
+
#: defaults.php:149
|
1587 |
msgid "PHP shutdown error"
|
1588 |
msgstr ""
|
1589 |
|
1590 |
+
#: defaults.php:150
|
1591 |
msgid "Events automatically pruned by system"
|
1592 |
msgstr ""
|
1593 |
|
1594 |
+
#: defaults.php:150
|
1595 |
msgid "%EventCount% event(s) automatically deleted by system"
|
1596 |
msgstr ""
|
1597 |
|
1598 |
+
#: defaults.php:151
|
1599 |
msgid "Option Anyone Can Register in WordPress settings changed"
|
1600 |
msgstr ""
|
1601 |
|
1602 |
+
#: defaults.php:151
|
1603 |
msgid "%NewValue% the option \"Anyone can register\""
|
1604 |
msgstr ""
|
1605 |
|
1606 |
+
#: defaults.php:152
|
1607 |
msgid "New User Default Role changed"
|
1608 |
msgstr ""
|
1609 |
|
1610 |
+
#: defaults.php:152
|
1611 |
msgid "Changed the New User Default Role from %OldRole% to %NewRole%"
|
1612 |
msgstr ""
|
1613 |
|
1614 |
+
#: defaults.php:153
|
1615 |
msgid "WordPress Administrator Notification email changed"
|
1616 |
msgstr ""
|
1617 |
|
1618 |
+
#: defaults.php:153
|
1619 |
msgid ""
|
1620 |
"Changed the WordPress administrator notifications email address from "
|
1621 |
"%OldEmail% to %NewEmail%"
|
1622 |
msgstr ""
|
1623 |
|
1624 |
+
#: defaults.php:154
|
1625 |
msgid "WordPress was updated"
|
1626 |
msgstr ""
|
1627 |
|
1628 |
+
#: defaults.php:154
|
1629 |
msgid "Updated WordPress from version %OldVersion% to %NewVersion%"
|
1630 |
msgstr ""
|
1631 |
|
1632 |
+
#: defaults.php:155
|
1633 |
msgid "User changes the WordPress Permalinks"
|
1634 |
msgstr ""
|
1635 |
|
1636 |
+
#: defaults.php:155
|
1637 |
msgid "Changed the WordPress permalinks from %OldPattern% to %NewPattern%"
|
1638 |
msgstr ""
|
1639 |
|
1640 |
+
#: defaults.php:157
|
1641 |
msgid "MultiSite"
|
1642 |
msgstr ""
|
1643 |
|
1644 |
+
#: defaults.php:158
|
1645 |
msgid "User granted Super Admin privileges"
|
1646 |
msgstr ""
|
1647 |
|
1648 |
+
#: defaults.php:158
|
1649 |
msgid "Granted Super Admin privileges to %TargetUsername%"
|
1650 |
msgstr ""
|
1651 |
|
1652 |
+
#: defaults.php:159
|
1653 |
msgid "User revoked from Super Admin privileges"
|
1654 |
msgstr ""
|
1655 |
|
1656 |
+
#: defaults.php:159
|
1657 |
msgid "Revoked Super Admin privileges from %TargetUsername%"
|
1658 |
msgstr ""
|
1659 |
|
1660 |
+
#: defaults.php:160
|
1661 |
msgid "Existing user added to a site"
|
1662 |
msgstr ""
|
1663 |
|
1664 |
+
#: defaults.php:160
|
1665 |
msgid ""
|
1666 |
"Added existing user %TargetUsername% with %TargetUserRole% role to site "
|
1667 |
"%SiteName%"
|
1668 |
msgstr ""
|
1669 |
|
1670 |
+
#: defaults.php:161
|
1671 |
msgid "User removed from site"
|
1672 |
msgstr ""
|
1673 |
|
1674 |
+
#: defaults.php:161
|
1675 |
msgid ""
|
1676 |
"Removed user %TargetUsername% with role %TargetUserRole% from %SiteName% site"
|
1677 |
msgstr ""
|
1678 |
|
1679 |
+
#: defaults.php:162
|
1680 |
msgid "New network user created"
|
1681 |
msgstr ""
|
1682 |
|
1683 |
+
#: defaults.php:162
|
1684 |
msgid "Created a new network user %NewUserData->Username%"
|
1685 |
msgstr ""
|
1686 |
|
1687 |
+
#: defaults.php:163
|
1688 |
msgid "New site added on network"
|
1689 |
msgstr ""
|
1690 |
|
1691 |
+
#: defaults.php:163
|
1692 |
msgid "Added site %SiteName% to the network"
|
1693 |
msgstr ""
|
1694 |
|
1695 |
+
#: defaults.php:164
|
1696 |
msgid "Existing site archived"
|
1697 |
msgstr ""
|
1698 |
|
1699 |
+
#: defaults.php:164
|
1700 |
msgid "Archived site %SiteName%"
|
1701 |
msgstr ""
|
1702 |
|
1703 |
+
#: defaults.php:165
|
1704 |
msgid "Archived site has been unarchived"
|
1705 |
msgstr ""
|
1706 |
|
1707 |
+
#: defaults.php:165
|
1708 |
msgid "Unarchived site %SiteName%"
|
1709 |
msgstr ""
|
1710 |
|
1711 |
+
#: defaults.php:166
|
1712 |
msgid "Deactivated site has been activated"
|
1713 |
msgstr ""
|
1714 |
|
1715 |
+
#: defaults.php:166
|
1716 |
msgid "Activated site %SiteName%"
|
1717 |
msgstr ""
|
1718 |
|
1719 |
+
#: defaults.php:167
|
1720 |
msgid "Site has been deactivated"
|
1721 |
msgstr ""
|
1722 |
|
1723 |
+
#: defaults.php:167
|
1724 |
msgid "Deactivated site %SiteName%"
|
1725 |
msgstr ""
|
1726 |
|
1727 |
+
#: defaults.php:168
|
1728 |
msgid "Existing site deleted from network"
|
1729 |
msgstr ""
|
1730 |
|
1731 |
+
#: defaults.php:168
|
1732 |
msgid "Deleted site %SiteName%"
|
1733 |
msgstr ""
|
1734 |
|
1735 |
+
#: defaults.php:169
|
1736 |
msgid "Activated theme on network"
|
1737 |
msgstr ""
|
1738 |
|
1739 |
+
#: defaults.php:169
|
1740 |
msgid ""
|
1741 |
"Network activated %Theme->Name% theme installed in %Theme-"
|
1742 |
">get_template_directory%"
|
1743 |
msgstr ""
|
1744 |
|
1745 |
+
#: defaults.php:170
|
1746 |
msgid "Deactivated theme from network"
|
1747 |
msgstr ""
|
1748 |
|
1749 |
+
#: defaults.php:170
|
1750 |
msgid ""
|
1751 |
"Network deactivated %Theme->Name% theme installed in %Theme-"
|
1752 |
">get_template_directory%"
|
1753 |
msgstr ""
|
1754 |
|
1755 |
+
#: wp-security-audit-log.php:194
|
1756 |
msgid ""
|
1757 |
"You are using a version of PHP that is older than %s, which is no longer "
|
1758 |
"supported.<br/>Contact us on <a href=\"mailto:plugins@wpwhitesecurity.com"
|
readme.txt
CHANGED
@@ -6,10 +6,10 @@ License: GPLv3
|
|
6 |
License URI: http://www.gnu.org/licenses/gpl.html
|
7 |
Tags: wordpress security plugin, wordpress security audit log, audit log, wordpress log, event log wordpress, wordpress user tracking, wordpress activity log, wordpress audit, security event log, audit trail, security audit trail, wordpress security alerts, wordpress monitor, wordpress security monitor, wordpress admin, wordpress admin monitoring, analytics, activity, admin, multisite, wordpress multisite, actions, dashboard, log, notification, wordpress monitoring, email notification, wordpress email alerts, tracking, user tracking, user activity report
|
8 |
Requires at least: 3.6
|
9 |
-
Tested up to: 4.1
|
10 |
-
Stable tag: 1.
|
11 |
|
12 |
-
|
13 |
|
14 |
== Description ==
|
15 |
Keep an audit log of everything that is happening on your WordPress and [WordPress multisite](http://www.wpwhitesecurity.com/wordpress-plugins/wp-security-audit-log-plugin-features-wordpress-multisite/) with WP Security Audit Log to ensure user productivity and identify WordPress security issues before they become a security problem. WP Security Audit Log, WordPress' most comprehensive user monitoring and audit log plugin already helps thousands of WordPress administrators, owners and security professionals ensure the security of their websites and blogs. Ensure the security of your WordPress too by installing WP Security Audit Log. The community's favourite WordPress user monitoring monitoring and security auditing plugin is developed by WordPress Security Consultants and Professionals [WP White Security](http://www.wpwhitesecurity.com/).
|
@@ -80,6 +80,7 @@ We need help translating the plugin and the WordPress Security Events. If you're
|
|
80 |
|
81 |
* Italian translation by [Leonardo Musumeci](http://leonardomusumeci.net/)
|
82 |
* German translation by [Mourad Louha](http://excel-translator.de)
|
|
|
83 |
* Spanish translation by Andrew Kurtis
|
84 |
|
85 |
= WordPress & PHP Errors Monitoring Tools =
|
@@ -152,6 +153,9 @@ Yes, WP Security Audit Log works on WordPress Multisite networks, i.e. it can mo
|
|
152 |
= Can I receive an email notification when a specific change happens on WordPress? =
|
153 |
Yes it is possible to do so with the [WSAL Notifications Extension](http://www.wpwhitesecurity.com/plugins-premium-extensions/email-notifications-wordpress/). This plugin extension enables you to configure triggers to monitor for specific changes and when such changes take place an email is automatically sent to your email address of choice with all the details of such change such as the Alert ID, user, user role, date, time, details about the actual change and more.
|
154 |
|
|
|
|
|
|
|
155 |
= Can I generate reports from the WordPress security audit log? =
|
156 |
Yes it is possible to do so with the premium [WSAL Reporting Extension](http://www.wpwhitesecurity.com/plugins-premium-extensions/wordpress-reports-extension/). This plugin extension allows you to generate any type of WordPress report using any type of data source. Reports can be generated in HTML and CSV format.
|
157 |
|
@@ -167,6 +171,23 @@ Yes it is possible to do so with the premium [WSAL Reporting Extension](http://w
|
|
167 |
|
168 |
== Changelog ==
|
169 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
170 |
= 1.3.3 (2015-01-21) =
|
171 |
* **New Features**
|
172 |
* [Premium Add-ons](http://www.wpwhitesecurity.com/wordpress-security-plugins/wp-security-audit-log/extensions/) will be hidden from the WordPress plugins page when the Hide plugin option is enabled.
|
6 |
License URI: http://www.gnu.org/licenses/gpl.html
|
7 |
Tags: wordpress security plugin, wordpress security audit log, audit log, wordpress log, event log wordpress, wordpress user tracking, wordpress activity log, wordpress audit, security event log, audit trail, security audit trail, wordpress security alerts, wordpress monitor, wordpress security monitor, wordpress admin, wordpress admin monitoring, analytics, activity, admin, multisite, wordpress multisite, actions, dashboard, log, notification, wordpress monitoring, email notification, wordpress email alerts, tracking, user tracking, user activity report
|
8 |
Requires at least: 3.6
|
9 |
+
Tested up to: 4.1.1
|
10 |
+
Stable tag: 1.4.1
|
11 |
|
12 |
+
Keep an WordPress audit log of all users' changes and other under the hood activity - Identify WordPress issues before they become security problems.
|
13 |
|
14 |
== Description ==
|
15 |
Keep an audit log of everything that is happening on your WordPress and [WordPress multisite](http://www.wpwhitesecurity.com/wordpress-plugins/wp-security-audit-log-plugin-features-wordpress-multisite/) with WP Security Audit Log to ensure user productivity and identify WordPress security issues before they become a security problem. WP Security Audit Log, WordPress' most comprehensive user monitoring and audit log plugin already helps thousands of WordPress administrators, owners and security professionals ensure the security of their websites and blogs. Ensure the security of your WordPress too by installing WP Security Audit Log. The community's favourite WordPress user monitoring monitoring and security auditing plugin is developed by WordPress Security Consultants and Professionals [WP White Security](http://www.wpwhitesecurity.com/).
|
80 |
|
81 |
* Italian translation by [Leonardo Musumeci](http://leonardomusumeci.net/)
|
82 |
* German translation by [Mourad Louha](http://excel-translator.de)
|
83 |
+
* Romanian translations by [Artmotion Secure Servers](http://www.artmotion.eu)
|
84 |
* Spanish translation by Andrew Kurtis
|
85 |
|
86 |
= WordPress & PHP Errors Monitoring Tools =
|
153 |
= Can I receive an email notification when a specific change happens on WordPress? =
|
154 |
Yes it is possible to do so with the [WSAL Notifications Extension](http://www.wpwhitesecurity.com/plugins-premium-extensions/email-notifications-wordpress/). This plugin extension enables you to configure triggers to monitor for specific changes and when such changes take place an email is automatically sent to your email address of choice with all the details of such change such as the Alert ID, user, user role, date, time, details about the actual change and more.
|
155 |
|
156 |
+
= How can I search for a specific WordPress security alert?
|
157 |
+
You can use the premium add-on [Security Audit Log Search](http://www.wpwhitesecurity.com/plugins-premium-extensions/search-filtering-extension/) to automatically search for a specific WordPress security alert. It supports free text based searches and you can also use the built-in filters to fine tune your searches.
|
158 |
+
|
159 |
= Can I generate reports from the WordPress security audit log? =
|
160 |
Yes it is possible to do so with the premium [WSAL Reporting Extension](http://www.wpwhitesecurity.com/plugins-premium-extensions/wordpress-reports-extension/). This plugin extension allows you to generate any type of WordPress report using any type of data source. Reports can be generated in HTML and CSV format.
|
161 |
|
171 |
|
172 |
== Changelog ==
|
173 |
|
174 |
+
= 1.4.1 (2015-03-12) =
|
175 |
+
* **Bug Fix**
|
176 |
+
* Fixed an issue where the IP address was not being reported for anyone using PHP version 5.3.3 or earlier [support ticket](https://wordpress.org/support/topic/invalid-ip-address-error?replies=4)
|
177 |
+
|
178 |
+
= 1.4 (2015-02-24) =
|
179 |
+
* **New Features**
|
180 |
+
* WordPress username is now reported when a failed login is recorded - [More Details](http://www.wpwhitesecurity.com/wordpress-plugins/wordpress-user-monitoring-plugin/wordpress-failed-logins-monitoring-improved/)
|
181 |
+
* Plugin is now available in Romanian thanks to [Artmotion](http://www.artmotion.eu)
|
182 |
+
|
183 |
+
* **Improvements**
|
184 |
+
* Improved IP Address validation checks - if IP address format is incorrect the plugin reports "incorrect format" and not "unknown" - This will help us improve troubleshooting
|
185 |
+
* Alerts pruning options are now added during activation of the plugin, making pruning options more reliable - existing pruning options will be retained
|
186 |
+
|
187 |
+
* **Bug Fixes**
|
188 |
+
* Fixed issue with the option "auto / manual" refresh of Audit Log Viewer
|
189 |
+
* Fixed plugin uninstallation process (added new option to purge all plugin data from WordPress database upon uninstall)
|
190 |
+
|
191 |
= 1.3.3 (2015-01-21) =
|
192 |
* **New Features**
|
193 |
* [Premium Add-ons](http://www.wpwhitesecurity.com/wordpress-security-plugins/wp-security-audit-log/extensions/) will be hidden from the WordPress plugins page when the Hide plugin option is enabled.
|
wp-security-audit-log.php
CHANGED
@@ -4,7 +4,7 @@ Plugin Name: WP Security Audit Log
|
|
4 |
Plugin URI: http://www.wpwhitesecurity.com/wordpress-security-plugins/wp-security-audit-log/
|
5 |
Description: Identify WordPress security issues before they become a problem. Keep track of everything happening on your WordPress including WordPress users activity. Similar to Windows Event Log and Linux Syslog, WP Security Audit Log generates a security alert for everything that happens on your WordPress blogs and websites. Use the Audit Log Viewer included in the plugin to see all the security alerts.
|
6 |
Author: WP White Security
|
7 |
-
Version: 1.
|
8 |
Text Domain: wp-security-audit-log
|
9 |
Author URI: http://www.wpwhitesecurity.com/
|
10 |
License: GPL2
|
@@ -139,6 +139,7 @@ class WpSecurityAuditLog {
|
|
139 |
|
140 |
// render wsal footer
|
141 |
add_action('admin_footer', array($this, 'RenderFooter'));
|
|
|
142 |
}
|
143 |
|
144 |
/**
|
@@ -171,7 +172,7 @@ class WpSecurityAuditLog {
|
|
171 |
$s = $this->profiler->Start('WSAL Init Hook');
|
172 |
do_action('wsal_init', $this);
|
173 |
$s->Stop();
|
174 |
-
|
175 |
// hide plugin
|
176 |
if($this->settings->IsIncognito())
|
177 |
add_action('admin_head', array($this, 'HidePlugin'));
|
@@ -209,7 +210,17 @@ class WpSecurityAuditLog {
|
|
209 |
|
210 |
// if system wasn't installed, try migration now
|
211 |
if (!$PreInstalled && $this->CanMigrate()) $this->Migrate();
|
212 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
213 |
// install cleanup hook (remove older one if it exists)
|
214 |
wp_clear_scheduled_hook('wsal_cleanup');
|
215 |
wp_schedule_event(current_time('timestamp') + 600, 'hourly', 'wsal_cleanup');
|
@@ -232,14 +243,42 @@ class WpSecurityAuditLog {
|
|
232 |
// ... an example
|
233 |
}
|
234 |
}
|
235 |
-
|
236 |
/**
|
237 |
* Uninstall plugin.
|
238 |
*/
|
239 |
public function Uninstall(){
|
240 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
241 |
wp_clear_scheduled_hook('wsal_cleanup');
|
242 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
243 |
|
244 |
/**
|
245 |
* Migrate data from old plugin.
|
4 |
Plugin URI: http://www.wpwhitesecurity.com/wordpress-security-plugins/wp-security-audit-log/
|
5 |
Description: Identify WordPress security issues before they become a problem. Keep track of everything happening on your WordPress including WordPress users activity. Similar to Windows Event Log and Linux Syslog, WP Security Audit Log generates a security alert for everything that happens on your WordPress blogs and websites. Use the Audit Log Viewer included in the plugin to see all the security alerts.
|
6 |
Author: WP White Security
|
7 |
+
Version: 1.4.1
|
8 |
Text Domain: wp-security-audit-log
|
9 |
Author URI: http://www.wpwhitesecurity.com/
|
10 |
License: GPL2
|
139 |
|
140 |
// render wsal footer
|
141 |
add_action('admin_footer', array($this, 'RenderFooter'));
|
142 |
+
|
143 |
}
|
144 |
|
145 |
/**
|
172 |
$s = $this->profiler->Start('WSAL Init Hook');
|
173 |
do_action('wsal_init', $this);
|
174 |
$s->Stop();
|
175 |
+
|
176 |
// hide plugin
|
177 |
if($this->settings->IsIncognito())
|
178 |
add_action('admin_head', array($this, 'HidePlugin'));
|
210 |
|
211 |
// if system wasn't installed, try migration now
|
212 |
if (!$PreInstalled && $this->CanMigrate()) $this->Migrate();
|
213 |
+
|
214 |
+
//setting the prunig date with the old value or the default value
|
215 |
+
$pruningDate = $this->settings->GetPruningDate();
|
216 |
+
$this->settings->SetPruningDate($pruningDate);
|
217 |
+
|
218 |
+
$pruningEnabled = $this->settings->IsPruningLimitEnabled();
|
219 |
+
$this->settings->SetPruningLimitEnabled($pruningEnabled);
|
220 |
+
//setting the prunig limit with the old value or the default value
|
221 |
+
$pruningLimit = $this->settings->GetPruningLimit();
|
222 |
+
$this->settings->SetPruningLimit($pruningLimit);
|
223 |
+
|
224 |
// install cleanup hook (remove older one if it exists)
|
225 |
wp_clear_scheduled_hook('wsal_cleanup');
|
226 |
wp_schedule_event(current_time('timestamp') + 600, 'hourly', 'wsal_cleanup');
|
243 |
// ... an example
|
244 |
}
|
245 |
}
|
246 |
+
|
247 |
/**
|
248 |
* Uninstall plugin.
|
249 |
*/
|
250 |
public function Uninstall(){
|
251 |
+
if ($this->GetGlobalOption("delete-data") == 1) {
|
252 |
+
WSAL_DB_ActiveRecord::UninstallAll();
|
253 |
+
$flag = true;
|
254 |
+
while ( $flag ) {
|
255 |
+
$flag = $this->delete_options_prefixed( 'wsal-' );
|
256 |
+
}
|
257 |
+
}
|
258 |
wp_clear_scheduled_hook('wsal_cleanup');
|
259 |
}
|
260 |
+
|
261 |
+
public function delete_options_prefixed( $prefix ) {
|
262 |
+
global $wpdb;
|
263 |
+
if ( $this->IsMultisite() ) {
|
264 |
+
$table_name = $wpdb->prefix .'sitemeta';
|
265 |
+
$result = $wpdb->query( "DELETE FROM {$table_name} WHERE meta_key LIKE '{$prefix}%'" );
|
266 |
+
} else {
|
267 |
+
$result = $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '{$prefix}%'" );
|
268 |
+
}
|
269 |
+
return ($result) ? true : false;
|
270 |
+
}
|
271 |
+
|
272 |
+
public function read_options_prefixed( $prefix ) {
|
273 |
+
global $wpdb;
|
274 |
+
if ( $this->IsMultisite() ) {
|
275 |
+
$table_name = $wpdb->prefix .'sitemeta';
|
276 |
+
$result = $wpdb->get_results( "SELECT site_id,meta_key,meta_value FROM {$table_name} WHERE meta_key LIKE '{$prefix}%'", ARRAY_A );
|
277 |
+
} else {
|
278 |
+
$result = $wpdb->get_results( "SELECT option_name,option_value FROM {$wpdb->options} WHERE option_name LIKE '{$prefix}%'", ARRAY_A );
|
279 |
+
}
|
280 |
+
return $result;
|
281 |
+
}
|
282 |
|
283 |
/**
|
284 |
* Migrate data from old plugin.
|