Version Description
(2014-07-23) = * Improvements * Improved database structure for better support of high-traffic WordPress and WordPress multisite installations * Developer options are reset during updates for improved performance * Added a warning / note to the developer options (such options should NEVER be enabled on live websites but only on testing, staging and development websites)
- Bug Fixes
- Fixed database issue with primary key constraint
Download this release
Release Info
Developer | WPWhiteSecurity |
Plugin | WP Security Audit Log |
Version | 1.2.3 |
Comparing to | |
See all releases |
Code changes from version 1.2.2 to 1.2.3
- classes/AbstractView.php +5 -0
- classes/DB/ActiveRecord.php +28 -11
- classes/DB/Meta.php +6 -0
- classes/DB/Occurrence.php +5 -0
- classes/Sensors/MetaData.php +172 -0
- classes/Sensors/PluginsThemes.php +1 -1
- classes/Settings.php +31 -56
- classes/ViewManager.php +2 -2
- classes/Views/Sandbox.php +1 -1
- defaults.php +13 -1
- languages/wp-security-audit-log.pot +267 -151
- readme.txt +29 -31
- wp-security-audit-log.php +126 -4
classes/AbstractView.php
CHANGED
@@ -52,6 +52,11 @@ abstract class WSAL_AbstractView {
|
|
52 |
*/
|
53 |
public function IsVisible(){ return true; }
|
54 |
|
|
|
|
|
|
|
|
|
|
|
55 |
/**
|
56 |
* Used for rendering stuff into head tag.
|
57 |
*/
|
52 |
*/
|
53 |
public function IsVisible(){ return true; }
|
54 |
|
55 |
+
/**
|
56 |
+
* @return boolean Whether page should be accessible or not.
|
57 |
+
*/
|
58 |
+
public function IsAccessible(){ return true; }
|
59 |
+
|
60 |
/**
|
61 |
* Used for rendering stuff into head tag.
|
62 |
*/
|
classes/DB/ActiveRecord.php
CHANGED
@@ -39,40 +39,50 @@ abstract class WSAL_DB_ActiveRecord {
|
|
39 |
protected function _GetInstallQuery(){
|
40 |
global $wpdb;
|
41 |
|
42 |
-
$
|
43 |
-
$copy = new $
|
44 |
|
45 |
$sql = 'CREATE TABLE ' . $this->GetTable() . ' (' . PHP_EOL;
|
|
|
46 |
foreach($this->GetColumns() as $key) {
|
|
|
47 |
switch(true) {
|
48 |
case $key == $copy->_idkey:
|
49 |
-
$sql .= $key . ' BIGINT NOT NULL AUTO_INCREMENT,'.PHP_EOL;
|
50 |
break;
|
51 |
case is_integer($copy->$key):
|
52 |
-
$sql .= $key . ' BIGINT NOT NULL,'.PHP_EOL;
|
53 |
break;
|
54 |
case is_float($copy->$key):
|
55 |
-
$sql .= $key . ' DOUBLE NOT NULL,'.PHP_EOL;
|
56 |
break;
|
57 |
case is_string($copy->$key):
|
58 |
-
$
|
|
|
|
|
|
|
|
|
|
|
59 |
break;
|
60 |
case is_bool($copy->$key):
|
61 |
-
$sql .= $key . ' BIT NOT NULL,'.PHP_EOL;
|
62 |
break;
|
63 |
case is_array($copy->$key):
|
64 |
case is_object($copy->$key):
|
65 |
-
$sql .= $key . ' LONGTEXT NOT NULL,'.PHP_EOL;
|
66 |
break;
|
67 |
}
|
68 |
}
|
69 |
-
|
70 |
-
|
71 |
-
|
|
|
|
|
72 |
if ( ! empty($wpdb->charset) )
|
73 |
$sql .= ' DEFAULT CHARACTER SET ' . $wpdb->charset;
|
74 |
if ( ! empty($wpdb->collate) )
|
75 |
$sql .= ' COLLATE ' . $wpdb->collate;
|
|
|
76 |
return $sql;
|
77 |
}
|
78 |
|
@@ -109,6 +119,13 @@ abstract class WSAL_DB_ActiveRecord {
|
|
109 |
return $wpdb->base_prefix . $this->_table;
|
110 |
}
|
111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
/**
|
113 |
* @return array Returns this records' columns.
|
114 |
*/
|
39 |
protected function _GetInstallQuery(){
|
40 |
global $wpdb;
|
41 |
|
42 |
+
$class = get_class($this);
|
43 |
+
$copy = new $class();
|
44 |
|
45 |
$sql = 'CREATE TABLE ' . $this->GetTable() . ' (' . PHP_EOL;
|
46 |
+
|
47 |
foreach($this->GetColumns() as $key) {
|
48 |
+
$sql .= ' ';
|
49 |
switch(true) {
|
50 |
case $key == $copy->_idkey:
|
51 |
+
$sql .= $key . ' BIGINT NOT NULL AUTO_INCREMENT,' . PHP_EOL;
|
52 |
break;
|
53 |
case is_integer($copy->$key):
|
54 |
+
$sql .= $key . ' BIGINT NOT NULL,' . PHP_EOL;
|
55 |
break;
|
56 |
case is_float($copy->$key):
|
57 |
+
$sql .= $key . ' DOUBLE NOT NULL,' . PHP_EOL;
|
58 |
break;
|
59 |
case is_string($copy->$key):
|
60 |
+
$maxlenght = $key . '_maxlength';
|
61 |
+
if(property_exists($class, $maxlenght)){
|
62 |
+
$sql .= $key . ' VARCHAR(' . intval($class::$$maxlenght) . ') NOT NULL,' . PHP_EOL;
|
63 |
+
}else{
|
64 |
+
$sql .= $key . ' TEXT NOT NULL,' . PHP_EOL;
|
65 |
+
}
|
66 |
break;
|
67 |
case is_bool($copy->$key):
|
68 |
+
$sql .= $key . ' BIT NOT NULL,' . PHP_EOL;
|
69 |
break;
|
70 |
case is_array($copy->$key):
|
71 |
case is_object($copy->$key):
|
72 |
+
$sql .= $key . ' LONGTEXT NOT NULL,' . PHP_EOL;
|
73 |
break;
|
74 |
}
|
75 |
}
|
76 |
+
|
77 |
+
$sql .= $this->GetTableOptions() . PHP_EOL;
|
78 |
+
|
79 |
+
$sql .= ')';
|
80 |
+
|
81 |
if ( ! empty($wpdb->charset) )
|
82 |
$sql .= ' DEFAULT CHARACTER SET ' . $wpdb->charset;
|
83 |
if ( ! empty($wpdb->collate) )
|
84 |
$sql .= ' COLLATE ' . $wpdb->collate;
|
85 |
+
|
86 |
return $sql;
|
87 |
}
|
88 |
|
119 |
return $wpdb->base_prefix . $this->_table;
|
120 |
}
|
121 |
|
122 |
+
/**
|
123 |
+
* @return string SQL table options (constraints, foreign keys, indexes etc).
|
124 |
+
*/
|
125 |
+
protected function GetTableOptions(){
|
126 |
+
return ' PRIMARY KEY (' . $this->_idkey . ')';
|
127 |
+
}
|
128 |
+
|
129 |
/**
|
130 |
* @return array Returns this records' columns.
|
131 |
*/
|
classes/DB/Meta.php
CHANGED
@@ -7,5 +7,11 @@ class WSAL_DB_Meta extends WSAL_DB_ActiveRecord {
|
|
7 |
public $id = 0;
|
8 |
public $occurrence_id = 0;
|
9 |
public $name = '';
|
|
|
10 |
public $value = array(); // force mixed type
|
|
|
|
|
|
|
|
|
|
|
11 |
}
|
7 |
public $id = 0;
|
8 |
public $occurrence_id = 0;
|
9 |
public $name = '';
|
10 |
+
public static $name_maxlength = 100;
|
11 |
public $value = array(); // force mixed type
|
12 |
+
|
13 |
+
protected function GetTableOptions(){
|
14 |
+
return parent::GetTableOptions() . ',' . PHP_EOL
|
15 |
+
. ' KEY occurrence_name (occurrence_id,name)';
|
16 |
+
}
|
17 |
}
|
classes/DB/Occurrence.php
CHANGED
@@ -11,6 +11,11 @@ class WSAL_DB_Occurrence extends WSAL_DB_ActiveRecord {
|
|
11 |
public $is_read = false;
|
12 |
public $is_migrated = false;
|
13 |
|
|
|
|
|
|
|
|
|
|
|
14 |
protected $_meta;
|
15 |
|
16 |
/**
|
11 |
public $is_read = false;
|
12 |
public $is_migrated = false;
|
13 |
|
14 |
+
protected function GetTableOptions(){
|
15 |
+
return parent::GetTableOptions() . ',' . PHP_EOL
|
16 |
+
. ' KEY site_alert_created (site_id,alert_id,created_on)';
|
17 |
+
}
|
18 |
+
|
19 |
protected $_meta;
|
20 |
|
21 |
/**
|
classes/Sensors/MetaData.php
ADDED
@@ -0,0 +1,172 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class WSAL_Sensors_MetaData extends WSAL_AbstractSensor {
|
4 |
+
|
5 |
+
public function HookEvents() {
|
6 |
+
/*add_action('added_post_meta', array($this, 'EventPostMetaCreated'), 10, 4);
|
7 |
+
add_action('update_post_meta', array($this, 'EventPostMetaUpdating'), 10, 3);
|
8 |
+
add_action('updated_post_meta', array($this, 'EventPostMetaUpdated'), 10, 4);
|
9 |
+
add_action('deleted_post_meta', array($this, 'EventPostMetaDeleted'), 10, 4);*/
|
10 |
+
}
|
11 |
+
|
12 |
+
protected $old_meta = array();
|
13 |
+
|
14 |
+
public function EventPostMetaCreated($meta_id, $object_id, $meta_key, $_meta_value){
|
15 |
+
$post = get_post($object_id);
|
16 |
+
|
17 |
+
switch($post->post_type){
|
18 |
+
case 'page':
|
19 |
+
$this->plugin->alerts->Trigger(2059, array(
|
20 |
+
'PostID' => $object_id,
|
21 |
+
'PostTitle' => $post->post_title,
|
22 |
+
'MetaID' => $meta_id,
|
23 |
+
'MetaKey' => $meta_key,
|
24 |
+
'MetaValue' => $_meta_value,
|
25 |
+
));
|
26 |
+
break;
|
27 |
+
case 'post':
|
28 |
+
$this->plugin->alerts->Trigger(2053, array(
|
29 |
+
'PostID' => $object_id,
|
30 |
+
'PostTitle' => $post->post_title,
|
31 |
+
'MetaID' => $meta_id,
|
32 |
+
'MetaKey' => $meta_key,
|
33 |
+
'MetaValue' => $_meta_value,
|
34 |
+
));
|
35 |
+
break;
|
36 |
+
default:
|
37 |
+
$this->plugin->alerts->Trigger(2056, array(
|
38 |
+
'PostID' => $object_id,
|
39 |
+
'PostTitle' => $post->post_title,
|
40 |
+
'PostType' => $post->post_type,
|
41 |
+
'MetaID' => $meta_id,
|
42 |
+
'MetaKey' => $meta_key,
|
43 |
+
'MetaValue' => $_meta_value,
|
44 |
+
));
|
45 |
+
break;
|
46 |
+
}
|
47 |
+
}
|
48 |
+
|
49 |
+
public function EventPostMetaUpdating($meta_id, $object_id, $meta_key){
|
50 |
+
$this->old_meta[$meta_id] = array($meta_key, get_metadata('post', $object_id, $meta_key, true));
|
51 |
+
}
|
52 |
+
|
53 |
+
public function EventPostMetaUpdated($meta_id, $object_id, $meta_key, $_meta_value){
|
54 |
+
$post = get_post($object_id);
|
55 |
+
|
56 |
+
if(isset($this->old_meta[$meta_id])){
|
57 |
+
|
58 |
+
// check change in meta key
|
59 |
+
if($this->old_meta[$meta_id][0] != $meta_key){
|
60 |
+
switch($post->post_type){
|
61 |
+
case 'page':
|
62 |
+
$this->plugin->alerts->Trigger(2064, array(
|
63 |
+
'PostID' => $object_id,
|
64 |
+
'PostTitle' => $post->post_title,
|
65 |
+
'MetaID' => $meta_id,
|
66 |
+
'MetaKeyNew' => $meta_key,
|
67 |
+
'MetaKeyOld' => $this->old_meta[$meta_id][0],
|
68 |
+
'MetaValue' => $_meta_value,
|
69 |
+
));
|
70 |
+
break;
|
71 |
+
case 'post':
|
72 |
+
$this->plugin->alerts->Trigger(2062, array(
|
73 |
+
'PostID' => $object_id,
|
74 |
+
'PostTitle' => $post->post_title,
|
75 |
+
'MetaID' => $meta_id,
|
76 |
+
'MetaKeyNew' => $meta_key,
|
77 |
+
'MetaKeyOld' => $this->old_meta[$meta_id][0],
|
78 |
+
'MetaValue' => $_meta_value,
|
79 |
+
));
|
80 |
+
break;
|
81 |
+
default:
|
82 |
+
$this->plugin->alerts->Trigger(2063, array(
|
83 |
+
'PostID' => $object_id,
|
84 |
+
'PostTitle' => $post->post_title,
|
85 |
+
'PostType' => $post->post_type,
|
86 |
+
'MetaID' => $meta_id,
|
87 |
+
'MetaKeyNew' => $meta_key,
|
88 |
+
'MetaKeyOld' => $this->old_meta[$meta_id][0],
|
89 |
+
'MetaValue' => $_meta_value,
|
90 |
+
));
|
91 |
+
break;
|
92 |
+
}
|
93 |
+
}
|
94 |
+
|
95 |
+
// check change in meta value
|
96 |
+
if($this->old_meta[$meta_id][1] != $_meta_value){
|
97 |
+
switch($post->post_type){
|
98 |
+
case 'page':
|
99 |
+
$this->plugin->alerts->Trigger(2060, array(
|
100 |
+
'PostID' => $object_id,
|
101 |
+
'PostTitle' => $post->post_title,
|
102 |
+
'MetaID' => $meta_id,
|
103 |
+
'MetaKey' => $meta_key,
|
104 |
+
'MetaValueNew' => $_meta_value,
|
105 |
+
'MetaValueOld' => $this->old_meta[$meta_id][1],
|
106 |
+
));
|
107 |
+
break;
|
108 |
+
case 'post':
|
109 |
+
$this->plugin->alerts->Trigger(2054, array(
|
110 |
+
'PostID' => $object_id,
|
111 |
+
'PostTitle' => $post->post_title,
|
112 |
+
'MetaID' => $meta_id,
|
113 |
+
'MetaKey' => $meta_key,
|
114 |
+
'MetaValueNew' => $_meta_value,
|
115 |
+
'MetaValueOld' => $this->old_meta[$meta_id][1],
|
116 |
+
));
|
117 |
+
break;
|
118 |
+
default:
|
119 |
+
$this->plugin->alerts->Trigger(2057, array(
|
120 |
+
'PostID' => $object_id,
|
121 |
+
'PostTitle' => $post->post_title,
|
122 |
+
'PostType' => $post->post_type,
|
123 |
+
'MetaID' => $meta_id,
|
124 |
+
'MetaKey' => $meta_key,
|
125 |
+
'MetaValueNew' => $_meta_value,
|
126 |
+
'MetaValueOld' => $this->old_meta[$meta_id][1],
|
127 |
+
));
|
128 |
+
break;
|
129 |
+
}
|
130 |
+
}
|
131 |
+
|
132 |
+
// remove old meta update data
|
133 |
+
unset($this->old_meta[$meta_id]);
|
134 |
+
}
|
135 |
+
}
|
136 |
+
|
137 |
+
public function EventPostMetaDeleted($meta_ids, $object_id, $meta_key, $_meta_value){
|
138 |
+
$post = get_post($object_id);
|
139 |
+
foreach($meta_ids as $meta_id){
|
140 |
+
switch($post->post_type){
|
141 |
+
case 'page':
|
142 |
+
$this->plugin->alerts->Trigger(2061, array(
|
143 |
+
'PostID' => $object_id,
|
144 |
+
'PostTitle' => $post->post_title,
|
145 |
+
'MetaID' => $meta_id,
|
146 |
+
'MetaKey' => $meta_key,
|
147 |
+
'MetaValue' => $_meta_value,
|
148 |
+
));
|
149 |
+
break;
|
150 |
+
case 'post':
|
151 |
+
$this->plugin->alerts->Trigger(2055, array(
|
152 |
+
'PostID' => $object_id,
|
153 |
+
'PostTitle' => $post->post_title,
|
154 |
+
'MetaID' => $meta_id,
|
155 |
+
'MetaKey' => $meta_key,
|
156 |
+
'MetaValue' => $_meta_value,
|
157 |
+
));
|
158 |
+
break;
|
159 |
+
default:
|
160 |
+
$this->plugin->alerts->Trigger(2058, array(
|
161 |
+
'PostID' => $object_id,
|
162 |
+
'PostTitle' => $post->post_title,
|
163 |
+
'PostType' => $post->post_type,
|
164 |
+
'MetaID' => $meta_id,
|
165 |
+
'MetaKey' => $meta_key,
|
166 |
+
'MetaValue' => $_meta_value,
|
167 |
+
));
|
168 |
+
break;
|
169 |
+
}
|
170 |
+
}
|
171 |
+
}
|
172 |
+
}
|
classes/Sensors/PluginsThemes.php
CHANGED
@@ -24,7 +24,7 @@ class WSAL_Sensors_PluginsThemes extends WSAL_AbstractSensor {
|
|
24 |
$is_plugins = $actype == 'plugins';
|
25 |
|
26 |
// install plugin
|
27 |
-
if(($action
|
28 |
$plugin = array_values(array_diff(array_keys(get_plugins()), array_keys($this->old_plugins)));
|
29 |
if(count($plugin) != 1)
|
30 |
return $this->LogError(
|
24 |
$is_plugins = $actype == 'plugins';
|
25 |
|
26 |
// install plugin
|
27 |
+
if(in_array($action, array('install-plugin', 'upload-plugin'))){
|
28 |
$plugin = array_values(array_diff(array_keys(get_plugins()), array_keys($this->old_plugins)));
|
29 |
if(count($plugin) != 1)
|
30 |
return $this->LogError(
|
classes/Settings.php
CHANGED
@@ -6,35 +6,10 @@ class WSAL_Settings {
|
|
6 |
*/
|
7 |
protected $_plugin;
|
8 |
|
9 |
-
const OPT_PRFX = 'wsal-';
|
10 |
-
|
11 |
public function __construct(WpSecurityAuditLog $plugin){
|
12 |
$this->_plugin = $plugin;
|
13 |
}
|
14 |
|
15 |
-
protected function IsMultisite(){
|
16 |
-
return function_exists('is_multisite') && is_multisite();
|
17 |
-
}
|
18 |
-
|
19 |
-
protected function GetGlobalOption($option, $default = false){
|
20 |
-
$fn = $this->IsMultisite() ? 'get_site_option' : 'get_option';
|
21 |
-
return $fn($option, $default);
|
22 |
-
}
|
23 |
-
|
24 |
-
protected function SetGlobalOption($option, $value){
|
25 |
-
$fn = $this->IsMultisite() ? 'update_site_option' : 'update_option';
|
26 |
-
return $fn($option, $value);
|
27 |
-
}
|
28 |
-
|
29 |
-
protected function GetLocalOption($option, $default = false){
|
30 |
-
$result = get_user_option($option, get_current_user_id());
|
31 |
-
return $result === false ? $default : $result;
|
32 |
-
}
|
33 |
-
|
34 |
-
protected function SetLocalOption($option, $value){
|
35 |
-
update_user_option(get_current_user_id(), $option, $value, false);
|
36 |
-
}
|
37 |
-
|
38 |
const OPT_DEV_DATA_INSPECTOR = 'd';
|
39 |
const OPT_DEV_PHP_ERRORS = 'p';
|
40 |
const OPT_DEV_REQUEST_LOG = 'r';
|
@@ -57,8 +32,8 @@ class WSAL_Settings {
|
|
57 |
*/
|
58 |
public function IsDevOptionEnabled($option){
|
59 |
if(is_null($this->_devoption)){
|
60 |
-
$this->_devoption = $this->GetGlobalOption(
|
61 |
-
|
62 |
implode(',', $this->GetDefaultDevOptions())
|
63 |
);
|
64 |
$this->_devoption = explode(',', $this->_devoption);
|
@@ -70,7 +45,7 @@ class WSAL_Settings {
|
|
70 |
* @return boolean Whether any developer option has been enabled or not.
|
71 |
*/
|
72 |
public function IsAnyDevOptionEnabled(){
|
73 |
-
return !!$this->GetGlobalOption(
|
74 |
}
|
75 |
|
76 |
/**
|
@@ -88,8 +63,8 @@ class WSAL_Settings {
|
|
88 |
if($enabled)
|
89 |
$this->_devoption[] = $option;
|
90 |
// commit option
|
91 |
-
$this->SetGlobalOption(
|
92 |
-
|
93 |
implode(',', $this->_devoption)
|
94 |
);
|
95 |
}
|
@@ -99,7 +74,7 @@ class WSAL_Settings {
|
|
99 |
*/
|
100 |
public function ClearDevOptions(){
|
101 |
$this->_devoption = array();
|
102 |
-
$this->SetGlobalOption(
|
103 |
}
|
104 |
|
105 |
/**
|
@@ -141,28 +116,28 @@ class WSAL_Settings {
|
|
141 |
* @return boolean Whether dashboard widgets are enabled or not.
|
142 |
*/
|
143 |
public function IsWidgetsEnabled(){
|
144 |
-
return !$this->GetGlobalOption(
|
145 |
}
|
146 |
|
147 |
/**
|
148 |
* @param boolean $newvalue Whether dashboard widgets are enabled or not.
|
149 |
*/
|
150 |
public function SetWidgetsEnabled($newvalue){
|
151 |
-
$this->SetGlobalOption(
|
152 |
}
|
153 |
|
154 |
/**
|
155 |
* @return boolean Whether alerts in audit log view refresh automatically or not.
|
156 |
*/
|
157 |
public function IsRefreshAlertsEnabled(){
|
158 |
-
return !$this->GetGlobalOption(
|
159 |
}
|
160 |
|
161 |
/**
|
162 |
* @param boolean $newvalue Whether alerts in audit log view refresh automatically or not.
|
163 |
*/
|
164 |
public function SetRefreshAlertsEnabled($newvalue){
|
165 |
-
$this->SetGlobalOption(
|
166 |
}
|
167 |
|
168 |
/**
|
@@ -193,7 +168,7 @@ class WSAL_Settings {
|
|
193 |
*/
|
194 |
public function GetPruningDate(){
|
195 |
if(!$this->_pruning){
|
196 |
-
$this->_pruning = $this->GetGlobalOption(
|
197 |
if(!strtotime($this->_pruning))
|
198 |
$this->_pruning = $this->GetDefaultPruningDate();
|
199 |
}
|
@@ -205,7 +180,7 @@ class WSAL_Settings {
|
|
205 |
*/
|
206 |
public function SetPruningDate($newvalue){
|
207 |
if(strtotime($newvalue)){
|
208 |
-
$this->SetGlobalOption(
|
209 |
$this->_pruning = $newvalue;
|
210 |
}
|
211 |
}
|
@@ -214,7 +189,7 @@ class WSAL_Settings {
|
|
214 |
* @return integer Maximum number of alerts to keep.
|
215 |
*/
|
216 |
public function GetPruningLimit(){
|
217 |
-
$val = (int)$this->GetGlobalOption(
|
218 |
return $val ? $val : $this->GetMaxAllowedAlerts();
|
219 |
}
|
220 |
|
@@ -223,23 +198,23 @@ class WSAL_Settings {
|
|
223 |
*/
|
224 |
public function SetPruningLimit($newvalue){
|
225 |
$newvalue = max(/*min(*/(int)$newvalue/*, $this->GetMaxAllowedAlerts())*/, 1);
|
226 |
-
$this->SetGlobalOption(
|
227 |
}
|
228 |
|
229 |
public function SetPruningDateEnabled($enabled){
|
230 |
-
$this->SetGlobalOption(
|
231 |
}
|
232 |
|
233 |
public function SetPruningLimitEnabled($enabled){
|
234 |
-
$this->SetGlobalOption(
|
235 |
}
|
236 |
|
237 |
public function IsPruningDateEnabled(){
|
238 |
-
return $this->GetGlobalOption(
|
239 |
}
|
240 |
|
241 |
public function IsPruningLimitEnabled(){
|
242 |
-
return $this->GetGlobalOption(
|
243 |
}
|
244 |
|
245 |
protected $_disabled = null;
|
@@ -254,7 +229,7 @@ class WSAL_Settings {
|
|
254 |
public function GetDisabledAlerts(){
|
255 |
if(!$this->_disabled){
|
256 |
$this->_disabled = implode(',', $this->GetDefaultDisabledAlerts());
|
257 |
-
$this->_disabled = $this->GetGlobalOption(
|
258 |
$this->_disabled = explode(',', $this->_disabled);
|
259 |
$this->_disabled = array_map('intval', $this->_disabled);
|
260 |
}
|
@@ -266,19 +241,19 @@ class WSAL_Settings {
|
|
266 |
*/
|
267 |
public function SetDisabledAlerts($types){
|
268 |
$this->_disabled = array_unique(array_map('intval', $types));
|
269 |
-
$this->SetGlobalOption(
|
270 |
}
|
271 |
|
272 |
protected $_viewers = null;
|
273 |
|
274 |
public function SetAllowedPluginViewers($usersOrRoles){
|
275 |
$this->_viewers = $usersOrRoles;
|
276 |
-
$this->SetGlobalOption(
|
277 |
}
|
278 |
|
279 |
public function GetAllowedPluginViewers(){
|
280 |
if(is_null($this->_viewers)){
|
281 |
-
$this->_viewers = array_unique(array_filter(explode(',', $this->GetGlobalOption(
|
282 |
}
|
283 |
return $this->_viewers;
|
284 |
}
|
@@ -287,12 +262,12 @@ class WSAL_Settings {
|
|
287 |
|
288 |
public function SetAllowedPluginEditors($usersOrRoles){
|
289 |
$this->_editors = $usersOrRoles;
|
290 |
-
$this->SetGlobalOption(
|
291 |
}
|
292 |
|
293 |
public function GetAllowedPluginEditors(){
|
294 |
if(is_null($this->_editors)){
|
295 |
-
$this->_editors = array_unique(array_filter(explode(',', $this->GetGlobalOption(
|
296 |
}
|
297 |
return $this->_editors;
|
298 |
}
|
@@ -301,12 +276,12 @@ class WSAL_Settings {
|
|
301 |
|
302 |
public function SetViewPerPage($newvalue){
|
303 |
$this->_perpage = max($newvalue, 1);
|
304 |
-
$this->SetGlobalOption(
|
305 |
}
|
306 |
|
307 |
public function GetViewPerPage(){
|
308 |
if(is_null($this->_perpage)){
|
309 |
-
$this->_perpage = (int)$this->GetGlobalOption(
|
310 |
}
|
311 |
return $this->_perpage;
|
312 |
}
|
@@ -323,14 +298,14 @@ class WSAL_Settings {
|
|
323 |
* @return string[] List of superadmin usernames.
|
324 |
*/
|
325 |
protected function GetSuperAdmins(){
|
326 |
-
return $this->IsMultisite() ? get_super_admins() : array();
|
327 |
}
|
328 |
|
329 |
/**
|
330 |
* @return string[] List of admin usernames.
|
331 |
*/
|
332 |
protected function GetAdmins(){
|
333 |
-
if($this->IsMultisite()){
|
334 |
// see: https://gist.github.com/1508426/65785a15b8638d43a9905effb59e4d97319ef8f8
|
335 |
global $wpdb;
|
336 |
$cap = get_current_blog_id();
|
@@ -367,7 +342,7 @@ class WSAL_Settings {
|
|
367 |
break;
|
368 |
case 'edit':
|
369 |
$allowed = $this->GetAllowedPluginEditors();
|
370 |
-
$allowed = array_merge($allowed, $this->IsMultisite() ?
|
371 |
$this->GetSuperAdmins() : $this->GetAdmins()
|
372 |
);
|
373 |
break;
|
@@ -396,10 +371,10 @@ class WSAL_Settings {
|
|
396 |
}
|
397 |
|
398 |
public function IsIncognito(){
|
399 |
-
return $this->GetGlobalOption(
|
400 |
}
|
401 |
|
402 |
public function SetIncognito($enabled){
|
403 |
-
return $this->SetGlobalOption(
|
404 |
}
|
405 |
}
|
6 |
*/
|
7 |
protected $_plugin;
|
8 |
|
|
|
|
|
9 |
public function __construct(WpSecurityAuditLog $plugin){
|
10 |
$this->_plugin = $plugin;
|
11 |
}
|
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
const OPT_DEV_DATA_INSPECTOR = 'd';
|
14 |
const OPT_DEV_PHP_ERRORS = 'p';
|
15 |
const OPT_DEV_REQUEST_LOG = 'r';
|
32 |
*/
|
33 |
public function IsDevOptionEnabled($option){
|
34 |
if(is_null($this->_devoption)){
|
35 |
+
$this->_devoption = $this->_plugin->GetGlobalOption(
|
36 |
+
'dev-options',
|
37 |
implode(',', $this->GetDefaultDevOptions())
|
38 |
);
|
39 |
$this->_devoption = explode(',', $this->_devoption);
|
45 |
* @return boolean Whether any developer option has been enabled or not.
|
46 |
*/
|
47 |
public function IsAnyDevOptionEnabled(){
|
48 |
+
return !!$this->_plugin->GetGlobalOption('dev-options', null);
|
49 |
}
|
50 |
|
51 |
/**
|
63 |
if($enabled)
|
64 |
$this->_devoption[] = $option;
|
65 |
// commit option
|
66 |
+
$this->_plugin->SetGlobalOption(
|
67 |
+
'dev-options',
|
68 |
implode(',', $this->_devoption)
|
69 |
);
|
70 |
}
|
74 |
*/
|
75 |
public function ClearDevOptions(){
|
76 |
$this->_devoption = array();
|
77 |
+
$this->_plugin->SetGlobalOption('dev-options', '');
|
78 |
}
|
79 |
|
80 |
/**
|
116 |
* @return boolean Whether dashboard widgets are enabled or not.
|
117 |
*/
|
118 |
public function IsWidgetsEnabled(){
|
119 |
+
return !$this->_plugin->GetGlobalOption('disable-widgets');
|
120 |
}
|
121 |
|
122 |
/**
|
123 |
* @param boolean $newvalue Whether dashboard widgets are enabled or not.
|
124 |
*/
|
125 |
public function SetWidgetsEnabled($newvalue){
|
126 |
+
$this->_plugin->SetGlobalOption('disable-widgets', !$newvalue);
|
127 |
}
|
128 |
|
129 |
/**
|
130 |
* @return boolean Whether alerts in audit log view refresh automatically or not.
|
131 |
*/
|
132 |
public function IsRefreshAlertsEnabled(){
|
133 |
+
return !$this->_plugin->GetGlobalOption('disable-refresh');
|
134 |
}
|
135 |
|
136 |
/**
|
137 |
* @param boolean $newvalue Whether alerts in audit log view refresh automatically or not.
|
138 |
*/
|
139 |
public function SetRefreshAlertsEnabled($newvalue){
|
140 |
+
$this->_plugin->SetGlobalOption('disable-refresh', !$newvalue);
|
141 |
}
|
142 |
|
143 |
/**
|
168 |
*/
|
169 |
public function GetPruningDate(){
|
170 |
if(!$this->_pruning){
|
171 |
+
$this->_pruning = $this->_plugin->GetGlobalOption('pruning-date');
|
172 |
if(!strtotime($this->_pruning))
|
173 |
$this->_pruning = $this->GetDefaultPruningDate();
|
174 |
}
|
180 |
*/
|
181 |
public function SetPruningDate($newvalue){
|
182 |
if(strtotime($newvalue)){
|
183 |
+
$this->_plugin->SetGlobalOption('pruning-date', $newvalue);
|
184 |
$this->_pruning = $newvalue;
|
185 |
}
|
186 |
}
|
189 |
* @return integer Maximum number of alerts to keep.
|
190 |
*/
|
191 |
public function GetPruningLimit(){
|
192 |
+
$val = (int)$this->_plugin->GetGlobalOption('pruning-limit');
|
193 |
return $val ? $val : $this->GetMaxAllowedAlerts();
|
194 |
}
|
195 |
|
198 |
*/
|
199 |
public function SetPruningLimit($newvalue){
|
200 |
$newvalue = max(/*min(*/(int)$newvalue/*, $this->GetMaxAllowedAlerts())*/, 1);
|
201 |
+
$this->_plugin->SetGlobalOption('pruning-limit', $newvalue);
|
202 |
}
|
203 |
|
204 |
public function SetPruningDateEnabled($enabled){
|
205 |
+
$this->_plugin->SetGlobalOption('pruning-date-e', $enabled);
|
206 |
}
|
207 |
|
208 |
public function SetPruningLimitEnabled($enabled){
|
209 |
+
$this->_plugin->SetGlobalOption('pruning-limit-e', $enabled);
|
210 |
}
|
211 |
|
212 |
public function IsPruningDateEnabled(){
|
213 |
+
return $this->_plugin->GetGlobalOption('pruning-date-e', true);
|
214 |
}
|
215 |
|
216 |
public function IsPruningLimitEnabled(){
|
217 |
+
return $this->_plugin->GetGlobalOption('pruning-limit-e', true);
|
218 |
}
|
219 |
|
220 |
protected $_disabled = null;
|
229 |
public function GetDisabledAlerts(){
|
230 |
if(!$this->_disabled){
|
231 |
$this->_disabled = implode(',', $this->GetDefaultDisabledAlerts());
|
232 |
+
$this->_disabled = $this->_plugin->GetGlobalOption('disabled-alerts', $this->_disabled);
|
233 |
$this->_disabled = explode(',', $this->_disabled);
|
234 |
$this->_disabled = array_map('intval', $this->_disabled);
|
235 |
}
|
241 |
*/
|
242 |
public function SetDisabledAlerts($types){
|
243 |
$this->_disabled = array_unique(array_map('intval', $types));
|
244 |
+
$this->_plugin->SetGlobalOption('disabled-alerts', implode(',', $this->_disabled));
|
245 |
}
|
246 |
|
247 |
protected $_viewers = null;
|
248 |
|
249 |
public function SetAllowedPluginViewers($usersOrRoles){
|
250 |
$this->_viewers = $usersOrRoles;
|
251 |
+
$this->_plugin->SetGlobalOption('plugin-viewers', implode(',', $this->_viewers));
|
252 |
}
|
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 |
}
|
262 |
|
263 |
public function SetAllowedPluginEditors($usersOrRoles){
|
264 |
$this->_editors = $usersOrRoles;
|
265 |
+
$this->_plugin->SetGlobalOption('plugin-editors', implode(',', $this->_editors));
|
266 |
}
|
267 |
|
268 |
public function GetAllowedPluginEditors(){
|
269 |
if(is_null($this->_editors)){
|
270 |
+
$this->_editors = array_unique(array_filter(explode(',', $this->_plugin->GetGlobalOption('plugin-editors'))));
|
271 |
}
|
272 |
return $this->_editors;
|
273 |
}
|
276 |
|
277 |
public function SetViewPerPage($newvalue){
|
278 |
$this->_perpage = max($newvalue, 1);
|
279 |
+
$this->_plugin->SetGlobalOption('items-per-page', $this->_perpage);
|
280 |
}
|
281 |
|
282 |
public function GetViewPerPage(){
|
283 |
if(is_null($this->_perpage)){
|
284 |
+
$this->_perpage = (int)$this->_plugin->GetGlobalOption('items-per-page', 10);
|
285 |
}
|
286 |
return $this->_perpage;
|
287 |
}
|
298 |
* @return string[] List of superadmin usernames.
|
299 |
*/
|
300 |
protected function GetSuperAdmins(){
|
301 |
+
return $this->_plugin->IsMultisite() ? get_super_admins() : array();
|
302 |
}
|
303 |
|
304 |
/**
|
305 |
* @return string[] List of admin usernames.
|
306 |
*/
|
307 |
protected function GetAdmins(){
|
308 |
+
if($this->_plugin->IsMultisite()){
|
309 |
// see: https://gist.github.com/1508426/65785a15b8638d43a9905effb59e4d97319ef8f8
|
310 |
global $wpdb;
|
311 |
$cap = get_current_blog_id();
|
342 |
break;
|
343 |
case 'edit':
|
344 |
$allowed = $this->GetAllowedPluginEditors();
|
345 |
+
$allowed = array_merge($allowed, $this->_plugin->IsMultisite() ?
|
346 |
$this->GetSuperAdmins() : $this->GetAdmins()
|
347 |
);
|
348 |
break;
|
371 |
}
|
372 |
|
373 |
public function IsIncognito(){
|
374 |
+
return $this->_plugin->GetGlobalOption('hide-plugin');
|
375 |
}
|
376 |
|
377 |
public function SetIncognito($enabled){
|
378 |
+
return $this->_plugin->SetGlobalOption('hide-plugin', $enabled);
|
379 |
}
|
380 |
}
|
classes/ViewManager.php
CHANGED
@@ -102,9 +102,9 @@ class WSAL_ViewManager {
|
|
102 |
|
103 |
// add menu items
|
104 |
foreach($this->views as $view){
|
105 |
-
if($view->
|
106 |
add_submenu_page(
|
107 |
-
$this->views[0]->GetSafeViewName(),
|
108 |
$view->GetTitle(),
|
109 |
$view->GetName(),
|
110 |
'read', // no capability requirement
|
102 |
|
103 |
// add menu items
|
104 |
foreach($this->views as $view){
|
105 |
+
if($view->IsAccessible()){
|
106 |
add_submenu_page(
|
107 |
+
$view->IsVisible() ? $this->views[0]->GetSafeViewName() : null,
|
108 |
$view->GetTitle(),
|
109 |
$view->GetName(),
|
110 |
'read', // no capability requirement
|
classes/Views/Sandbox.php
CHANGED
@@ -23,7 +23,7 @@ class WSAL_Views_Sandbox extends WSAL_AbstractView {
|
|
23 |
return 5;
|
24 |
}
|
25 |
|
26 |
-
public function
|
27 |
return $this->_plugin->settings->CurrentUserCan('edit')
|
28 |
&& $this->_plugin->settings->IsSandboxPageEnabled();
|
29 |
}
|
23 |
return 5;
|
24 |
}
|
25 |
|
26 |
+
public function IsAccessible(){
|
27 |
return $this->_plugin->settings->CurrentUserCan('edit')
|
28 |
&& $this->_plugin->settings->IsSandboxPageEnabled();
|
29 |
}
|
defaults.php
CHANGED
@@ -23,7 +23,7 @@ function wsaldefaults_wsal_init(WpSecurityAuditLog $wsal){
|
|
23 |
array('name' => 'E_COMPILE_WARNING', 'description' => __('Compile-time warning.', 'wp-security-audit-log')),
|
24 |
array('name' => 'E_USER_ERROR', 'description' => __('User-generated error message.', 'wp-security-audit-log')),
|
25 |
array('name' => 'E_USER_WARNING', 'description' => __('User-generated warning message.', 'wp-security-audit-log')),
|
26 |
-
array('name' => 'E_USER_NOTICE', 'description' => __('User-generated notice message.
|
27 |
array('name' => 'E_STRICT', 'description' => __('Non-standard/optimal code warning.', 'wp-security-audit-log')),
|
28 |
array('name' => 'E_RECOVERABLE_ERROR', 'description' => __('Catchable fatal error.', 'wp-security-audit-log')),
|
29 |
array('name' => 'E_DEPRECATED', 'description' => __('Run-time deprecation notices.', 'wp-security-audit-log')),
|
@@ -62,6 +62,10 @@ function wsaldefaults_wsal_init(WpSecurityAuditLog $wsal){
|
|
62 |
array(2027, E_NOTICE, __('User changed the date of a blog post', 'wp-security-audit-log'), __('Changed the date of %PostTitle% blog post from %OldDate% to %NewDate%', 'wp-security-audit-log')),
|
63 |
array(2049, E_NOTICE, __('User sets a post as sticky', 'wp-security-audit-log'), __('Set the post %PostTitle% as Sticky', 'wp-security-audit-log')),
|
64 |
array(2050, E_NOTICE, __('User removes post from sticky', 'wp-security-audit-log'), __('Removed the post %PostTitle% from Sticky', 'wp-security-audit-log')),
|
|
|
|
|
|
|
|
|
65 |
),
|
66 |
__('Pages', 'wp-security-audit-log') => array(
|
67 |
array(2004, E_NOTICE, __('User created a new WordPress page and saved it as draft', 'wp-security-audit-log'), __('Created a new page called %PostTitle%. Page ID is %PostID%', 'wp-security-audit-log')),
|
@@ -78,6 +82,10 @@ function wsaldefaults_wsal_init(WpSecurityAuditLog $wsal){
|
|
78 |
array(2028, E_NOTICE, __('User changed the date of a page post', 'wp-security-audit-log'), __('Changed the date of %PostTitle% page from %OldDate% to %NewDate%', 'wp-security-audit-log')),
|
79 |
array(2047, E_NOTICE, __('User changed the parent of a page', 'wp-security-audit-log'), __('Changed the parent of %PostTitle% page from %OldParentName% to %NewParentName%', 'wp-security-audit-log')),
|
80 |
array(2048, E_CRITICAL, __('User changes the template of a page', 'wp-security-audit-log'), __('Changed the template of %PostTitle% page from %OldTemplate% to %NewTemplate%', 'wp-security-audit-log')),
|
|
|
|
|
|
|
|
|
81 |
),
|
82 |
__('Custom Posts', 'wp-security-audit-log') => array(
|
83 |
array(2029, E_NOTICE, __('User created a new post with custom post type and saved it as draft', 'wp-security-audit-log'), __('Created a new custom post called %PostTitle% of type %PostType%. Post ID is %PostID%', 'wp-security-audit-log')),
|
@@ -93,6 +101,10 @@ function wsaldefaults_wsal_init(WpSecurityAuditLog $wsal){
|
|
93 |
array(2039, E_NOTICE, __('User changed the status of post with custom post type', 'wp-security-audit-log'), __('Changed the status of custom post %PostTitle% of type %PostType% from %OldStatus% to %NewStatus%', 'wp-security-audit-log')),
|
94 |
array(2040, E_WARNING, __('User changed the visibility of a post with custom post type', 'wp-security-audit-log'), __('Changed the visibility of custom post %PostTitle% of type %PostType% from %OldVisibility% to %NewVisibility%', 'wp-security-audit-log')),
|
95 |
array(2041, E_NOTICE, __('User changed the date of post with custom post type', 'wp-security-audit-log'), __('Changed the date of custom post %PostTitle% of type %PostType% from %OldDate% to %NewDate%', 'wp-security-audit-log')),
|
|
|
|
|
|
|
|
|
96 |
),
|
97 |
__('Widgets', 'wp-security-audit-log') => array(
|
98 |
array(2042, E_CRITICAL, __('User added a new widget', 'wp-security-audit-log'), __('Added a new %WidgetName% widget in %Sidebar%', 'wp-security-audit-log')),
|
23 |
array('name' => 'E_COMPILE_WARNING', 'description' => __('Compile-time warning.', 'wp-security-audit-log')),
|
24 |
array('name' => 'E_USER_ERROR', 'description' => __('User-generated error message.', 'wp-security-audit-log')),
|
25 |
array('name' => 'E_USER_WARNING', 'description' => __('User-generated warning message.', 'wp-security-audit-log')),
|
26 |
+
array('name' => 'E_USER_NOTICE', 'description' => __('User-generated notice message.', 'wp-security-audit-log')),
|
27 |
array('name' => 'E_STRICT', 'description' => __('Non-standard/optimal code warning.', 'wp-security-audit-log')),
|
28 |
array('name' => 'E_RECOVERABLE_ERROR', 'description' => __('Catchable fatal error.', 'wp-security-audit-log')),
|
29 |
array('name' => 'E_DEPRECATED', 'description' => __('Run-time deprecation notices.', 'wp-security-audit-log')),
|
62 |
array(2027, E_NOTICE, __('User changed the date of a blog post', 'wp-security-audit-log'), __('Changed the date of %PostTitle% blog post from %OldDate% to %NewDate%', 'wp-security-audit-log')),
|
63 |
array(2049, E_NOTICE, __('User sets a post as sticky', 'wp-security-audit-log'), __('Set the post %PostTitle% as Sticky', 'wp-security-audit-log')),
|
64 |
array(2050, E_NOTICE, __('User removes post from sticky', 'wp-security-audit-log'), __('Removed the post %PostTitle% from Sticky', 'wp-security-audit-log')),
|
65 |
+
array(2053, E_CRITICAL, __('User creates a custom field for a post', 'wp-security-audit-log'), __('Created custom field %MetaKey% with value %MetaValue% in post %PostTitle%', 'wp-security-audit-log')),
|
66 |
+
array(2054, E_CRITICAL, __('User updates a custom field value for a post', 'wp-security-audit-log'), __('Modified the value of custom field %MetaKey% from %MetaValueOld% to %MetaValueNew% in post %PostTitle%', 'wp-security-audit-log')),
|
67 |
+
array(2055, E_CRITICAL, __('User deletes a custom field from a post', 'wp-security-audit-log'), __('Deleted custom field %MetaKey% with value %MetaValue% from post %PostTitle%', 'wp-security-audit-log')),
|
68 |
+
array(2062, E_CRITICAL, __('User updates a custom field name for a post', 'wp-security-audit-log'), __('Changed the custom field name from %MetaKeyOld% to %MetaKeyNew% in post %PostTitle%', 'wp-security-audit-log')),
|
69 |
),
|
70 |
__('Pages', 'wp-security-audit-log') => array(
|
71 |
array(2004, E_NOTICE, __('User created a new WordPress page and saved it as draft', 'wp-security-audit-log'), __('Created a new page called %PostTitle%. Page ID is %PostID%', 'wp-security-audit-log')),
|
82 |
array(2028, E_NOTICE, __('User changed the date of a page post', 'wp-security-audit-log'), __('Changed the date of %PostTitle% page from %OldDate% to %NewDate%', 'wp-security-audit-log')),
|
83 |
array(2047, E_NOTICE, __('User changed the parent of a page', 'wp-security-audit-log'), __('Changed the parent of %PostTitle% page from %OldParentName% to %NewParentName%', 'wp-security-audit-log')),
|
84 |
array(2048, E_CRITICAL, __('User changes the template of a page', 'wp-security-audit-log'), __('Changed the template of %PostTitle% page from %OldTemplate% to %NewTemplate%', 'wp-security-audit-log')),
|
85 |
+
array(2059, E_CRITICAL, __('User creates a custom field for a page', 'wp-security-audit-log'), __('Created custom field %MetaKey% with value %MetaValue% in page %PostTitle%', 'wp-security-audit-log')),
|
86 |
+
array(2060, E_CRITICAL, __('User updates a custom field value for a page', 'wp-security-audit-log'), __('Modified the value of custom field %MetaKey% from %MetaValueOld% to %MetaValueNew% in page %PostTitle%', 'wp-security-audit-log')),
|
87 |
+
array(2061, E_CRITICAL, __('User deletes a custom field from a page', 'wp-security-audit-log'), __('Deleted custom field %MetaKey% with value %MetaValue% from page %PostTitle%', 'wp-security-audit-log')),
|
88 |
+
array(2064, E_CRITICAL, __('User updates a custom field name for a page', 'wp-security-audit-log'), __('Changed the custom field name from %MetaKeyOld% to %MetaKeyNew% in page %PostTitle%', 'wp-security-audit-log')),
|
89 |
),
|
90 |
__('Custom Posts', 'wp-security-audit-log') => array(
|
91 |
array(2029, E_NOTICE, __('User created a new post with custom post type and saved it as draft', 'wp-security-audit-log'), __('Created a new custom post called %PostTitle% of type %PostType%. Post ID is %PostID%', 'wp-security-audit-log')),
|
101 |
array(2039, E_NOTICE, __('User changed the status of post with custom post type', 'wp-security-audit-log'), __('Changed the status of custom post %PostTitle% of type %PostType% from %OldStatus% to %NewStatus%', 'wp-security-audit-log')),
|
102 |
array(2040, E_WARNING, __('User changed the visibility of a post with custom post type', 'wp-security-audit-log'), __('Changed the visibility of custom post %PostTitle% of type %PostType% from %OldVisibility% to %NewVisibility%', 'wp-security-audit-log')),
|
103 |
array(2041, E_NOTICE, __('User changed the date of post with custom post type', 'wp-security-audit-log'), __('Changed the date of custom post %PostTitle% of type %PostType% from %OldDate% to %NewDate%', 'wp-security-audit-log')),
|
104 |
+
array(2056, E_CRITICAL, __('User creates a custom field for a custom post', 'wp-security-audit-log'), __('Created custom field %MetaKey% with value %MetaValue% in custom post %PostTitle% of type %PostType%', 'wp-security-audit-log')),
|
105 |
+
array(2057, E_CRITICAL, __('User updates a custom field for a custom post', 'wp-security-audit-log'), __('Modified the value of custom field %MetaKey% from %MetaValueOld% to %MetaValueNew% in custom post %PostTitle% of type %PostType%', 'wp-security-audit-log')),
|
106 |
+
array(2058, E_CRITICAL, __('User deletes a custom field from a custom post', 'wp-security-audit-log'), __('Deleted custom field %MetaKey% with value %MetaValue% from custom post %PostTitle% of type %PostType%', 'wp-security-audit-log')),
|
107 |
+
array(2063, E_CRITICAL, __('User updates a custom field name for a custom post', 'wp-security-audit-log'), __('Changed the custom field name from %MetaKeyOld% to %MetaKeyNew% in custom post %PostTitle% of type %PostType%', 'wp-security-audit-log')),
|
108 |
),
|
109 |
__('Widgets', 'wp-security-audit-log') => array(
|
110 |
array(2042, E_CRITICAL, __('User added a new widget', 'wp-security-audit-log'), __('Added a new %WidgetName% widget in %Sidebar%', 'wp-security-audit-log')),
|
languages/wp-security-audit-log.pot
CHANGED
@@ -2,9 +2,9 @@
|
|
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.2.
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/wp-security-audit-log\n"
|
7 |
-
"POT-Creation-Date: 2014-07-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -553,7 +553,7 @@ msgid "User-generated warning message."
|
|
553 |
msgstr ""
|
554 |
|
555 |
#: defaults.php:26
|
556 |
-
msgid "User-generated notice message.
|
557 |
msgstr ""
|
558 |
|
559 |
#: defaults.php:27
|
@@ -785,641 +785,757 @@ msgstr ""
|
|
785 |
msgid "Removed the post %PostTitle% from Sticky"
|
786 |
msgstr ""
|
787 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
788 |
#: defaults.php:66
|
789 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
790 |
msgstr ""
|
791 |
|
792 |
#: defaults.php:67
|
793 |
-
msgid "User
|
794 |
msgstr ""
|
795 |
|
796 |
#: defaults.php:67
|
797 |
-
msgid "
|
|
|
798 |
msgstr ""
|
799 |
|
800 |
#: defaults.php:68
|
801 |
-
msgid "User
|
802 |
msgstr ""
|
803 |
|
804 |
#: defaults.php:68
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
805 |
msgid "Published a page called %PostTitle%. Page URL is %PostUrl%"
|
806 |
msgstr ""
|
807 |
|
808 |
-
#: defaults.php:
|
809 |
msgid "User modified a published WordPress page"
|
810 |
msgstr ""
|
811 |
|
812 |
-
#: defaults.php:
|
813 |
msgid "Modified the published page %PostTitle%. Page URL is %PostUrl%"
|
814 |
msgstr ""
|
815 |
|
816 |
-
#: defaults.php:
|
817 |
msgid "User modified a draft WordPress page"
|
818 |
msgstr ""
|
819 |
|
820 |
-
#: defaults.php:
|
821 |
msgid "Modified the draft page %PostTitle%. page ID is %PostID%"
|
822 |
msgstr ""
|
823 |
|
824 |
-
#: defaults.php:
|
825 |
msgid "User permanently deleted a page from the trash"
|
826 |
msgstr ""
|
827 |
|
828 |
-
#: defaults.php:
|
829 |
msgid "Deleted the page %PostTitle%. Page ID is %PostID%"
|
830 |
msgstr ""
|
831 |
|
832 |
-
#: defaults.php:
|
833 |
msgid "User moved WordPress page to the trash"
|
834 |
msgstr ""
|
835 |
|
836 |
-
#: defaults.php:
|
837 |
msgid "Moved the page %PostTitle% to trash"
|
838 |
msgstr ""
|
839 |
|
840 |
-
#: defaults.php:
|
841 |
msgid "User restored a WordPress page from trash"
|
842 |
msgstr ""
|
843 |
|
844 |
-
#: defaults.php:
|
845 |
msgid "Restored page %PostTitle% from trash"
|
846 |
msgstr ""
|
847 |
|
848 |
-
#: defaults.php:
|
849 |
msgid "User changed page URL"
|
850 |
msgstr ""
|
851 |
|
852 |
-
#: defaults.php:
|
853 |
msgid "Changed the URL of the page %PostTitle% from %OldUrl% to %NewUrl%"
|
854 |
msgstr ""
|
855 |
|
856 |
-
#: defaults.php:
|
857 |
msgid "User changed page author"
|
858 |
msgstr ""
|
859 |
|
860 |
-
#: defaults.php:
|
861 |
msgid "Changed the author of %PostTitle% page from %OldAuthor% to %NewAuthor%"
|
862 |
msgstr ""
|
863 |
|
864 |
-
#: defaults.php:
|
865 |
msgid "User changed page status"
|
866 |
msgstr ""
|
867 |
|
868 |
-
#: defaults.php:
|
869 |
msgid "Changed the status of %PostTitle% page from %OldStatus% to %NewStatus%"
|
870 |
msgstr ""
|
871 |
|
872 |
-
#: defaults.php:
|
873 |
msgid "User changed the visibility of a page post"
|
874 |
msgstr ""
|
875 |
|
876 |
-
#: defaults.php:
|
877 |
msgid ""
|
878 |
"Changed the visibility of %PostTitle% page from %OldVisibility% to "
|
879 |
"%NewVisibility%"
|
880 |
msgstr ""
|
881 |
|
882 |
-
#: defaults.php:
|
883 |
msgid "User changed the date of a page post"
|
884 |
msgstr ""
|
885 |
|
886 |
-
#: defaults.php:
|
887 |
msgid "Changed the date of %PostTitle% page from %OldDate% to %NewDate%"
|
888 |
msgstr ""
|
889 |
|
890 |
-
#: defaults.php:
|
891 |
msgid "User changed the parent of a page"
|
892 |
msgstr ""
|
893 |
|
894 |
-
#: defaults.php:
|
895 |
msgid ""
|
896 |
"Changed the parent of %PostTitle% page from %OldParentName% to %NewParentName"
|
897 |
"%"
|
898 |
msgstr ""
|
899 |
|
900 |
-
#: defaults.php:
|
901 |
msgid "User changes the template of a page"
|
902 |
msgstr ""
|
903 |
|
904 |
-
#: defaults.php:
|
905 |
msgid ""
|
906 |
"Changed the template of %PostTitle% page from %OldTemplate% to %NewTemplate%"
|
907 |
msgstr ""
|
908 |
|
909 |
-
#: defaults.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
910 |
msgid "Custom Posts"
|
911 |
msgstr ""
|
912 |
|
913 |
-
#: defaults.php:
|
914 |
msgid "User created a new post with custom post type and saved it as draft"
|
915 |
msgstr ""
|
916 |
|
917 |
-
#: defaults.php:
|
918 |
msgid ""
|
919 |
"Created a new custom post called %PostTitle% of type %PostType%. Post ID is "
|
920 |
"%PostID%"
|
921 |
msgstr ""
|
922 |
|
923 |
-
#: defaults.php:
|
924 |
msgid "User published a post with custom post type"
|
925 |
msgstr ""
|
926 |
|
927 |
-
#: defaults.php:
|
928 |
msgid ""
|
929 |
"Published a custom post %PostTitle% of type %PostType%. Post URL is %PostUrl%"
|
930 |
msgstr ""
|
931 |
|
932 |
-
#: defaults.php:
|
933 |
msgid "User modified a post with custom post type"
|
934 |
msgstr ""
|
935 |
|
936 |
-
#: defaults.php:
|
937 |
msgid ""
|
938 |
"Modified custom post %PostTitle% of type %PostType%. Post URL is %PostUrl%"
|
939 |
msgstr ""
|
940 |
|
941 |
-
#: defaults.php:
|
942 |
msgid "User modified a draft post with custom post type"
|
943 |
msgstr ""
|
944 |
|
945 |
-
#: defaults.php:
|
946 |
msgid ""
|
947 |
"Modified draft custom post %PostTitle% of type is %PostType%. Post URL is "
|
948 |
"%PostUrl%"
|
949 |
msgstr ""
|
950 |
|
951 |
-
#: defaults.php:
|
952 |
msgid "User permanently deleted post with custom post type"
|
953 |
msgstr ""
|
954 |
|
955 |
-
#: defaults.php:
|
956 |
msgid "Deleted custom post %PostTitle% of type %PostType%"
|
957 |
msgstr ""
|
958 |
|
959 |
-
#: defaults.php:
|
960 |
msgid "User moved post with custom post type to trash"
|
961 |
msgstr ""
|
962 |
|
963 |
-
#: defaults.php:
|
964 |
msgid "Moved custom post %PostTitle% to trash. Post type is %PostType%"
|
965 |
msgstr ""
|
966 |
|
967 |
-
#: defaults.php:
|
968 |
msgid "User restored post with custom post type from trash"
|
969 |
msgstr ""
|
970 |
|
971 |
-
#: defaults.php:
|
972 |
msgid "Restored custom post %PostTitle% of type %PostType% from trash"
|
973 |
msgstr ""
|
974 |
|
975 |
-
#: defaults.php:
|
976 |
msgid "User changed the category of a post with custom post type"
|
977 |
msgstr ""
|
978 |
|
979 |
-
#: defaults.php:
|
980 |
msgid ""
|
981 |
"Changed the category(ies) of custom post %PostTitle% of type %PostType% from "
|
982 |
"%OldCategories% to %NewCategories%"
|
983 |
msgstr ""
|
984 |
|
985 |
-
#: defaults.php:
|
986 |
msgid "User changed the URL of a post with custom post type"
|
987 |
msgstr ""
|
988 |
|
989 |
-
#: defaults.php:
|
990 |
msgid ""
|
991 |
"Changed the URL of custom post %PostTitle% of type %PostType% from %OldUrl% "
|
992 |
"to %NewUrl%"
|
993 |
msgstr ""
|
994 |
|
995 |
-
#: defaults.php:
|
996 |
msgid "User changed the author or post with custom post type"
|
997 |
msgstr ""
|
998 |
|
999 |
-
#: defaults.php:
|
1000 |
msgid ""
|
1001 |
"Changed the author of custom post %PostTitle% of type %PostType% from "
|
1002 |
"%OldAuthor% to %NewAuthor%"
|
1003 |
msgstr ""
|
1004 |
|
1005 |
-
#: defaults.php:
|
1006 |
msgid "User changed the status of post with custom post type"
|
1007 |
msgstr ""
|
1008 |
|
1009 |
-
#: defaults.php:
|
1010 |
msgid ""
|
1011 |
"Changed the status of custom post %PostTitle% of type %PostType% from "
|
1012 |
"%OldStatus% to %NewStatus%"
|
1013 |
msgstr ""
|
1014 |
|
1015 |
-
#: defaults.php:
|
1016 |
msgid "User changed the visibility of a post with custom post type"
|
1017 |
msgstr ""
|
1018 |
|
1019 |
-
#: defaults.php:
|
1020 |
msgid ""
|
1021 |
"Changed the visibility of custom post %PostTitle% of type %PostType% from "
|
1022 |
"%OldVisibility% to %NewVisibility%"
|
1023 |
msgstr ""
|
1024 |
|
1025 |
-
#: defaults.php:
|
1026 |
msgid "User changed the date of post with custom post type"
|
1027 |
msgstr ""
|
1028 |
|
1029 |
-
#: defaults.php:
|
1030 |
msgid ""
|
1031 |
"Changed the date of custom post %PostTitle% of type %PostType% from %OldDate"
|
1032 |
"% to %NewDate%"
|
1033 |
msgstr ""
|
1034 |
|
1035 |
-
#: defaults.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1036 |
msgid "Widgets"
|
1037 |
msgstr ""
|
1038 |
|
1039 |
-
#: defaults.php:
|
1040 |
msgid "User added a new widget"
|
1041 |
msgstr ""
|
1042 |
|
1043 |
-
#: defaults.php:
|
1044 |
msgid "Added a new %WidgetName% widget in %Sidebar%"
|
1045 |
msgstr ""
|
1046 |
|
1047 |
-
#: defaults.php:
|
1048 |
msgid "User modified a widget"
|
1049 |
msgstr ""
|
1050 |
|
1051 |
-
#: defaults.php:
|
1052 |
msgid "Modified the %WidgetName% widget in %Sidebar%"
|
1053 |
msgstr ""
|
1054 |
|
1055 |
-
#: defaults.php:
|
1056 |
msgid "User deleted widget"
|
1057 |
msgstr ""
|
1058 |
|
1059 |
-
#: defaults.php:
|
1060 |
msgid "Deleted the %WidgetName% widget from %Sidebar%"
|
1061 |
msgstr ""
|
1062 |
|
1063 |
-
#: defaults.php:
|
1064 |
msgid "User moved widget"
|
1065 |
msgstr ""
|
1066 |
|
1067 |
-
#: defaults.php:
|
1068 |
msgid "Moved the %WidgetName% widget from %OldSidebar% to %NewSidebar%"
|
1069 |
msgstr ""
|
1070 |
|
1071 |
-
#: defaults.php:
|
1072 |
msgid "User Profiles"
|
1073 |
msgstr ""
|
1074 |
|
1075 |
-
#: defaults.php:
|
1076 |
msgid "A new user was created on WordPress"
|
1077 |
msgstr ""
|
1078 |
|
1079 |
-
#: defaults.php:
|
1080 |
msgid ""
|
1081 |
"User %NewUserData->Username% subscribed with a role of %NewUserData->Roles%"
|
1082 |
msgstr ""
|
1083 |
|
1084 |
-
#: defaults.php:
|
1085 |
msgid "A user created another WordPress user"
|
1086 |
msgstr ""
|
1087 |
|
1088 |
-
#: defaults.php:
|
1089 |
msgid ""
|
1090 |
"Created a new user %NewUserData->Username% with the role of %NewUserData-"
|
1091 |
">Roles%"
|
1092 |
msgstr ""
|
1093 |
|
1094 |
-
#: defaults.php:
|
1095 |
msgid "The role of a user was changed by another WordPress user"
|
1096 |
msgstr ""
|
1097 |
|
1098 |
-
#: defaults.php:
|
1099 |
msgid "Changed the role of user %TargetUsername% from %OldRole% to %NewRole%"
|
1100 |
msgstr ""
|
1101 |
|
1102 |
-
#: defaults.php:
|
1103 |
msgid "User has changed his or her password"
|
1104 |
msgstr ""
|
1105 |
|
1106 |
-
#: defaults.php:
|
1107 |
msgid "Changed the password"
|
1108 |
msgstr ""
|
1109 |
|
1110 |
-
#: defaults.php:
|
1111 |
msgid "A user changed another user's password"
|
1112 |
msgstr ""
|
1113 |
|
1114 |
-
#: defaults.php:
|
1115 |
msgid ""
|
1116 |
"Changed the password for user %TargetUserData->Username% with the role of "
|
1117 |
"%TargetUserData->Roles%"
|
1118 |
msgstr ""
|
1119 |
|
1120 |
-
#: defaults.php:
|
1121 |
msgid "User changed his or her email address"
|
1122 |
msgstr ""
|
1123 |
|
1124 |
-
#: defaults.php:
|
1125 |
msgid "Changed the email address from %OldEmail% to %NewEmail%"
|
1126 |
msgstr ""
|
1127 |
|
1128 |
-
#: defaults.php:
|
1129 |
msgid "A user changed another user's email address"
|
1130 |
msgstr ""
|
1131 |
|
1132 |
-
#: defaults.php:
|
1133 |
msgid ""
|
1134 |
"Changed the email address of user account %TargetUsername% from %OldEmail% "
|
1135 |
"to %NewEmail%"
|
1136 |
msgstr ""
|
1137 |
|
1138 |
-
#: defaults.php:
|
1139 |
msgid "A user was deleted by another user"
|
1140 |
msgstr ""
|
1141 |
|
1142 |
-
#: defaults.php:
|
1143 |
msgid ""
|
1144 |
"Deleted User %TargetUserData->Username% with the role of %TargetUserData-"
|
1145 |
">Roles%"
|
1146 |
msgstr ""
|
1147 |
|
1148 |
-
#: defaults.php:
|
1149 |
msgid "Plugins & Themes"
|
1150 |
msgstr ""
|
1151 |
|
1152 |
-
#: defaults.php:
|
1153 |
msgid "User installed a plugin"
|
1154 |
msgstr ""
|
1155 |
|
1156 |
-
#: defaults.php:
|
1157 |
msgid "Installed the plugin %Plugin->Name% in %Plugin->plugin_dir_path%"
|
1158 |
msgstr ""
|
1159 |
|
1160 |
-
#: defaults.php:
|
1161 |
msgid "User activated a WordPress plugin"
|
1162 |
msgstr ""
|
1163 |
|
1164 |
-
#: defaults.php:
|
1165 |
msgid "Activated the plugin %PluginData->Name% installed in %PluginFile%"
|
1166 |
msgstr ""
|
1167 |
|
1168 |
-
#: defaults.php:
|
1169 |
msgid "User deactivated a WordPress plugin"
|
1170 |
msgstr ""
|
1171 |
|
1172 |
-
#: defaults.php:
|
1173 |
msgid "Deactivated the plugin %PluginData->Name% installed in %PluginFile%"
|
1174 |
msgstr ""
|
1175 |
|
1176 |
-
#: defaults.php:
|
1177 |
msgid "User uninstalled a plugin"
|
1178 |
msgstr ""
|
1179 |
|
1180 |
-
#: defaults.php:
|
1181 |
msgid ""
|
1182 |
"Uninstalled the plugin %PluginData->Name% which was installed in %PluginFile%"
|
1183 |
msgstr ""
|
1184 |
|
1185 |
-
#: defaults.php:
|
1186 |
msgid "User upgraded a plugin"
|
1187 |
msgstr ""
|
1188 |
|
1189 |
-
#: defaults.php:
|
1190 |
msgid "Upgraded the plugin %PluginData->Name% installed in %PluginFile%"
|
1191 |
msgstr ""
|
1192 |
|
1193 |
-
#: defaults.php:
|
1194 |
msgid "User installed a theme"
|
1195 |
msgstr ""
|
1196 |
|
1197 |
-
#: defaults.php:
|
1198 |
msgid "Installed theme \"%Theme->Name%\" in %Theme->get_template_directory%"
|
1199 |
msgstr ""
|
1200 |
|
1201 |
-
#: defaults.php:
|
1202 |
msgid "User activated a theme"
|
1203 |
msgstr ""
|
1204 |
|
1205 |
-
#: defaults.php:
|
1206 |
msgid ""
|
1207 |
"Activated theme \"%Theme->Name%\", installed in %Theme-"
|
1208 |
">get_template_directory%"
|
1209 |
msgstr ""
|
1210 |
|
1211 |
-
#: defaults.php:
|
1212 |
msgid "User uninstalled a theme"
|
1213 |
msgstr ""
|
1214 |
|
1215 |
-
#: defaults.php:
|
1216 |
msgid ""
|
1217 |
"Deleted theme \"%Theme->Name%\" installed in %Theme->get_template_directory%"
|
1218 |
msgstr ""
|
1219 |
|
1220 |
-
#: defaults.php:
|
1221 |
msgid "System Activity"
|
1222 |
msgstr ""
|
1223 |
|
1224 |
-
#: defaults.php:
|
1225 |
msgid "Unknown Error"
|
1226 |
msgstr ""
|
1227 |
|
1228 |
-
#: defaults.php:
|
1229 |
msgid "An unexpected error has occurred"
|
1230 |
msgstr ""
|
1231 |
|
1232 |
-
#: defaults.php:
|
1233 |
msgid "PHP error"
|
1234 |
msgstr ""
|
1235 |
|
1236 |
-
#: defaults.php:
|
1237 |
-
#: defaults.php:
|
1238 |
msgid "%Message%"
|
1239 |
msgstr ""
|
1240 |
|
1241 |
-
#: defaults.php:
|
1242 |
msgid "PHP warning"
|
1243 |
msgstr ""
|
1244 |
|
1245 |
-
#: defaults.php:
|
1246 |
msgid "PHP notice"
|
1247 |
msgstr ""
|
1248 |
|
1249 |
-
#: defaults.php:
|
1250 |
msgid "PHP exception"
|
1251 |
msgstr ""
|
1252 |
|
1253 |
-
#: defaults.php:
|
1254 |
msgid "PHP shutdown error"
|
1255 |
msgstr ""
|
1256 |
|
1257 |
-
#: defaults.php:
|
1258 |
msgid "Events automatically pruned by system"
|
1259 |
msgstr ""
|
1260 |
|
1261 |
-
#: defaults.php:
|
1262 |
msgid "%EventCount% event(s) automatically deleted by system"
|
1263 |
msgstr ""
|
1264 |
|
1265 |
-
#: defaults.php:
|
1266 |
msgid "Option Anyone Can Register in WordPress settings changed"
|
1267 |
msgstr ""
|
1268 |
|
1269 |
-
#: defaults.php:
|
1270 |
msgid "%NewValue% the option \"Anyone can register\""
|
1271 |
msgstr ""
|
1272 |
|
1273 |
-
#: defaults.php:
|
1274 |
msgid "New User Default Role changed"
|
1275 |
msgstr ""
|
1276 |
|
1277 |
-
#: defaults.php:
|
1278 |
msgid "Changed the New User Default Role from %OldRole% to %NewRole%"
|
1279 |
msgstr ""
|
1280 |
|
1281 |
-
#: defaults.php:
|
1282 |
msgid "WordPress Administrator Notification email changed"
|
1283 |
msgstr ""
|
1284 |
|
1285 |
-
#: defaults.php:
|
1286 |
msgid ""
|
1287 |
"Changed the WordPress administrator notifications email address from "
|
1288 |
"%OldEmail% to %NewEmail%"
|
1289 |
msgstr ""
|
1290 |
|
1291 |
-
#: defaults.php:
|
1292 |
msgid "WordPress was updated"
|
1293 |
msgstr ""
|
1294 |
|
1295 |
-
#: defaults.php:
|
1296 |
msgid "Updated WordPress from version %OldVersion% to %NewVersion%"
|
1297 |
msgstr ""
|
1298 |
|
1299 |
-
#: defaults.php:
|
1300 |
msgid "User changes the WordPress Permalinks"
|
1301 |
msgstr ""
|
1302 |
|
1303 |
-
#: defaults.php:
|
1304 |
msgid "Changed the WordPress permalinks from %OldPattern% to %NewPattern%"
|
1305 |
msgstr ""
|
1306 |
|
1307 |
-
#: defaults.php:
|
1308 |
msgid "MultiSite"
|
1309 |
msgstr ""
|
1310 |
|
1311 |
-
#: defaults.php:
|
1312 |
msgid "User granted Super Admin privileges"
|
1313 |
msgstr ""
|
1314 |
|
1315 |
-
#: defaults.php:
|
1316 |
msgid "Granted Super Admin privileges to %TargetUsername%"
|
1317 |
msgstr ""
|
1318 |
|
1319 |
-
#: defaults.php:
|
1320 |
msgid "User revoked from Super Admin privileges"
|
1321 |
msgstr ""
|
1322 |
|
1323 |
-
#: defaults.php:
|
1324 |
msgid "Revoked Super Admin privileges from %TargetUsername%"
|
1325 |
msgstr ""
|
1326 |
|
1327 |
-
#: defaults.php:
|
1328 |
msgid "Existing user added to a site"
|
1329 |
msgstr ""
|
1330 |
|
1331 |
-
#: defaults.php:
|
1332 |
msgid ""
|
1333 |
"Added existing user %TargetUsername% with %TargetUserRole% role to site "
|
1334 |
"%SiteName%"
|
1335 |
msgstr ""
|
1336 |
|
1337 |
-
#: defaults.php:
|
1338 |
msgid "User removed from site"
|
1339 |
msgstr ""
|
1340 |
|
1341 |
-
#: defaults.php:
|
1342 |
msgid ""
|
1343 |
"Removed user %TargetUsername% with role %TargetUserRole% from %SiteName% site"
|
1344 |
msgstr ""
|
1345 |
|
1346 |
-
#: defaults.php:
|
1347 |
msgid "New network user created"
|
1348 |
msgstr ""
|
1349 |
|
1350 |
-
#: defaults.php:
|
1351 |
msgid "Created a new network user %NewUserData->Username%"
|
1352 |
msgstr ""
|
1353 |
|
1354 |
-
#: defaults.php:
|
1355 |
msgid "New site added on network"
|
1356 |
msgstr ""
|
1357 |
|
1358 |
-
#: defaults.php:
|
1359 |
msgid "Added site %SiteName% to the network"
|
1360 |
msgstr ""
|
1361 |
|
1362 |
-
#: defaults.php:
|
1363 |
msgid "Existing site archived"
|
1364 |
msgstr ""
|
1365 |
|
1366 |
-
#: defaults.php:
|
1367 |
msgid "Archived site %SiteName%"
|
1368 |
msgstr ""
|
1369 |
|
1370 |
-
#: defaults.php:
|
1371 |
msgid "Archived site has been unarchived"
|
1372 |
msgstr ""
|
1373 |
|
1374 |
-
#: defaults.php:
|
1375 |
msgid "Unarchived site %SiteName%"
|
1376 |
msgstr ""
|
1377 |
|
1378 |
-
#: defaults.php:
|
1379 |
msgid "Deactivated site has been activated"
|
1380 |
msgstr ""
|
1381 |
|
1382 |
-
#: defaults.php:
|
1383 |
msgid "Activated site %SiteName%"
|
1384 |
msgstr ""
|
1385 |
|
1386 |
-
#: defaults.php:
|
1387 |
msgid "Site has been deactivated"
|
1388 |
msgstr ""
|
1389 |
|
1390 |
-
#: defaults.php:
|
1391 |
msgid "Deactivated site %SiteName%"
|
1392 |
msgstr ""
|
1393 |
|
1394 |
-
#: defaults.php:
|
1395 |
msgid "Existing site deleted from network"
|
1396 |
msgstr ""
|
1397 |
|
1398 |
-
#: defaults.php:
|
1399 |
msgid "Deleted site %SiteName%"
|
1400 |
msgstr ""
|
1401 |
|
1402 |
-
#: defaults.php:
|
1403 |
msgid "Activated theme on network"
|
1404 |
msgstr ""
|
1405 |
|
1406 |
-
#: defaults.php:
|
1407 |
msgid ""
|
1408 |
"Network activated %Theme->Name% theme installed in %Theme-"
|
1409 |
">get_template_directory%"
|
1410 |
msgstr ""
|
1411 |
|
1412 |
-
#: defaults.php:
|
1413 |
msgid "Deactivated theme from network"
|
1414 |
msgstr ""
|
1415 |
|
1416 |
-
#: defaults.php:
|
1417 |
msgid ""
|
1418 |
"Network deactivated %Theme->Name% theme installed in %Theme-"
|
1419 |
">get_template_directory%"
|
1420 |
msgstr ""
|
1421 |
|
1422 |
-
#: wp-security-audit-log.php:
|
1423 |
msgid ""
|
1424 |
"You are using a version of PHP that is older than %s, which is no longer "
|
1425 |
"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.2.3\n"
|
6 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/wp-security-audit-log\n"
|
7 |
+
"POT-Creation-Date: 2014-07-23 10:21:20+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
553 |
msgstr ""
|
554 |
|
555 |
#: defaults.php:26
|
556 |
+
msgid "User-generated notice message."
|
557 |
msgstr ""
|
558 |
|
559 |
#: defaults.php:27
|
785 |
msgid "Removed the post %PostTitle% from Sticky"
|
786 |
msgstr ""
|
787 |
|
788 |
+
#: defaults.php:65
|
789 |
+
msgid "User creates a custom field for a post"
|
790 |
+
msgstr ""
|
791 |
+
|
792 |
+
#: defaults.php:65
|
793 |
+
msgid ""
|
794 |
+
"Created custom field %MetaKey% with value %MetaValue% in post %PostTitle%"
|
795 |
+
msgstr ""
|
796 |
+
|
797 |
#: defaults.php:66
|
798 |
+
msgid "User updates a custom field value for a post"
|
799 |
+
msgstr ""
|
800 |
+
|
801 |
+
#: defaults.php:66
|
802 |
+
msgid ""
|
803 |
+
"Modified the value of custom field %MetaKey% from %MetaValueOld% to "
|
804 |
+
"%MetaValueNew% in post %PostTitle%"
|
805 |
msgstr ""
|
806 |
|
807 |
#: defaults.php:67
|
808 |
+
msgid "User deletes a custom field from a post"
|
809 |
msgstr ""
|
810 |
|
811 |
#: defaults.php:67
|
812 |
+
msgid ""
|
813 |
+
"Deleted custom field %MetaKey% with value %MetaValue% from post %PostTitle%"
|
814 |
msgstr ""
|
815 |
|
816 |
#: defaults.php:68
|
817 |
+
msgid "User updates a custom field name for a post"
|
818 |
msgstr ""
|
819 |
|
820 |
#: defaults.php:68
|
821 |
+
msgid ""
|
822 |
+
"Changed the custom field name from %MetaKeyOld% to %MetaKeyNew% in post "
|
823 |
+
"%PostTitle%"
|
824 |
+
msgstr ""
|
825 |
+
|
826 |
+
#: defaults.php:70
|
827 |
+
msgid "Pages"
|
828 |
+
msgstr ""
|
829 |
+
|
830 |
+
#: defaults.php:71
|
831 |
+
msgid "User created a new WordPress page and saved it as draft"
|
832 |
+
msgstr ""
|
833 |
+
|
834 |
+
#: defaults.php:71
|
835 |
+
msgid "Created a new page called %PostTitle%. Page ID is %PostID%"
|
836 |
+
msgstr ""
|
837 |
+
|
838 |
+
#: defaults.php:72
|
839 |
+
msgid "User published a WorPress page"
|
840 |
+
msgstr ""
|
841 |
+
|
842 |
+
#: defaults.php:72
|
843 |
msgid "Published a page called %PostTitle%. Page URL is %PostUrl%"
|
844 |
msgstr ""
|
845 |
|
846 |
+
#: defaults.php:73
|
847 |
msgid "User modified a published WordPress page"
|
848 |
msgstr ""
|
849 |
|
850 |
+
#: defaults.php:73
|
851 |
msgid "Modified the published page %PostTitle%. Page URL is %PostUrl%"
|
852 |
msgstr ""
|
853 |
|
854 |
+
#: defaults.php:74
|
855 |
msgid "User modified a draft WordPress page"
|
856 |
msgstr ""
|
857 |
|
858 |
+
#: defaults.php:74
|
859 |
msgid "Modified the draft page %PostTitle%. page ID is %PostID%"
|
860 |
msgstr ""
|
861 |
|
862 |
+
#: defaults.php:75
|
863 |
msgid "User permanently deleted a page from the trash"
|
864 |
msgstr ""
|
865 |
|
866 |
+
#: defaults.php:75
|
867 |
msgid "Deleted the page %PostTitle%. Page ID is %PostID%"
|
868 |
msgstr ""
|
869 |
|
870 |
+
#: defaults.php:76
|
871 |
msgid "User moved WordPress page to the trash"
|
872 |
msgstr ""
|
873 |
|
874 |
+
#: defaults.php:76
|
875 |
msgid "Moved the page %PostTitle% to trash"
|
876 |
msgstr ""
|
877 |
|
878 |
+
#: defaults.php:77
|
879 |
msgid "User restored a WordPress page from trash"
|
880 |
msgstr ""
|
881 |
|
882 |
+
#: defaults.php:77
|
883 |
msgid "Restored page %PostTitle% from trash"
|
884 |
msgstr ""
|
885 |
|
886 |
+
#: defaults.php:78
|
887 |
msgid "User changed page URL"
|
888 |
msgstr ""
|
889 |
|
890 |
+
#: defaults.php:78
|
891 |
msgid "Changed the URL of the page %PostTitle% from %OldUrl% to %NewUrl%"
|
892 |
msgstr ""
|
893 |
|
894 |
+
#: defaults.php:79
|
895 |
msgid "User changed page author"
|
896 |
msgstr ""
|
897 |
|
898 |
+
#: defaults.php:79
|
899 |
msgid "Changed the author of %PostTitle% page from %OldAuthor% to %NewAuthor%"
|
900 |
msgstr ""
|
901 |
|
902 |
+
#: defaults.php:80
|
903 |
msgid "User changed page status"
|
904 |
msgstr ""
|
905 |
|
906 |
+
#: defaults.php:80
|
907 |
msgid "Changed the status of %PostTitle% page from %OldStatus% to %NewStatus%"
|
908 |
msgstr ""
|
909 |
|
910 |
+
#: defaults.php:81
|
911 |
msgid "User changed the visibility of a page post"
|
912 |
msgstr ""
|
913 |
|
914 |
+
#: defaults.php:81
|
915 |
msgid ""
|
916 |
"Changed the visibility of %PostTitle% page from %OldVisibility% to "
|
917 |
"%NewVisibility%"
|
918 |
msgstr ""
|
919 |
|
920 |
+
#: defaults.php:82
|
921 |
msgid "User changed the date of a page post"
|
922 |
msgstr ""
|
923 |
|
924 |
+
#: defaults.php:82
|
925 |
msgid "Changed the date of %PostTitle% page from %OldDate% to %NewDate%"
|
926 |
msgstr ""
|
927 |
|
928 |
+
#: defaults.php:83
|
929 |
msgid "User changed the parent of a page"
|
930 |
msgstr ""
|
931 |
|
932 |
+
#: defaults.php:83
|
933 |
msgid ""
|
934 |
"Changed the parent of %PostTitle% page from %OldParentName% to %NewParentName"
|
935 |
"%"
|
936 |
msgstr ""
|
937 |
|
938 |
+
#: defaults.php:84
|
939 |
msgid "User changes the template of a page"
|
940 |
msgstr ""
|
941 |
|
942 |
+
#: defaults.php:84
|
943 |
msgid ""
|
944 |
"Changed the template of %PostTitle% page from %OldTemplate% to %NewTemplate%"
|
945 |
msgstr ""
|
946 |
|
947 |
+
#: defaults.php:85
|
948 |
+
msgid "User creates a custom field for a page"
|
949 |
+
msgstr ""
|
950 |
+
|
951 |
+
#: defaults.php:85
|
952 |
+
msgid ""
|
953 |
+
"Created custom field %MetaKey% with value %MetaValue% in page %PostTitle%"
|
954 |
+
msgstr ""
|
955 |
+
|
956 |
+
#: defaults.php:86
|
957 |
+
msgid "User updates a custom field value for a page"
|
958 |
+
msgstr ""
|
959 |
+
|
960 |
+
#: defaults.php:86
|
961 |
+
msgid ""
|
962 |
+
"Modified the value of custom field %MetaKey% from %MetaValueOld% to "
|
963 |
+
"%MetaValueNew% in page %PostTitle%"
|
964 |
+
msgstr ""
|
965 |
+
|
966 |
+
#: defaults.php:87
|
967 |
+
msgid "User deletes a custom field from a page"
|
968 |
+
msgstr ""
|
969 |
+
|
970 |
+
#: defaults.php:87
|
971 |
+
msgid ""
|
972 |
+
"Deleted custom field %MetaKey% with value %MetaValue% from page %PostTitle%"
|
973 |
+
msgstr ""
|
974 |
+
|
975 |
+
#: defaults.php:88
|
976 |
+
msgid "User updates a custom field name for a page"
|
977 |
+
msgstr ""
|
978 |
+
|
979 |
+
#: defaults.php:88
|
980 |
+
msgid ""
|
981 |
+
"Changed the custom field name from %MetaKeyOld% to %MetaKeyNew% in page "
|
982 |
+
"%PostTitle%"
|
983 |
+
msgstr ""
|
984 |
+
|
985 |
+
#: defaults.php:90
|
986 |
msgid "Custom Posts"
|
987 |
msgstr ""
|
988 |
|
989 |
+
#: defaults.php:91
|
990 |
msgid "User created a new post with custom post type and saved it as draft"
|
991 |
msgstr ""
|
992 |
|
993 |
+
#: defaults.php:91
|
994 |
msgid ""
|
995 |
"Created a new custom post called %PostTitle% of type %PostType%. Post ID is "
|
996 |
"%PostID%"
|
997 |
msgstr ""
|
998 |
|
999 |
+
#: defaults.php:92
|
1000 |
msgid "User published a post with custom post type"
|
1001 |
msgstr ""
|
1002 |
|
1003 |
+
#: defaults.php:92
|
1004 |
msgid ""
|
1005 |
"Published a custom post %PostTitle% of type %PostType%. Post URL is %PostUrl%"
|
1006 |
msgstr ""
|
1007 |
|
1008 |
+
#: defaults.php:93
|
1009 |
msgid "User modified a post with custom post type"
|
1010 |
msgstr ""
|
1011 |
|
1012 |
+
#: defaults.php:93
|
1013 |
msgid ""
|
1014 |
"Modified custom post %PostTitle% of type %PostType%. Post URL is %PostUrl%"
|
1015 |
msgstr ""
|
1016 |
|
1017 |
+
#: defaults.php:94
|
1018 |
msgid "User modified a draft post with custom post type"
|
1019 |
msgstr ""
|
1020 |
|
1021 |
+
#: defaults.php:94
|
1022 |
msgid ""
|
1023 |
"Modified draft custom post %PostTitle% of type is %PostType%. Post URL is "
|
1024 |
"%PostUrl%"
|
1025 |
msgstr ""
|
1026 |
|
1027 |
+
#: defaults.php:95
|
1028 |
msgid "User permanently deleted post with custom post type"
|
1029 |
msgstr ""
|
1030 |
|
1031 |
+
#: defaults.php:95
|
1032 |
msgid "Deleted custom post %PostTitle% of type %PostType%"
|
1033 |
msgstr ""
|
1034 |
|
1035 |
+
#: defaults.php:96
|
1036 |
msgid "User moved post with custom post type to trash"
|
1037 |
msgstr ""
|
1038 |
|
1039 |
+
#: defaults.php:96
|
1040 |
msgid "Moved custom post %PostTitle% to trash. Post type is %PostType%"
|
1041 |
msgstr ""
|
1042 |
|
1043 |
+
#: defaults.php:97
|
1044 |
msgid "User restored post with custom post type from trash"
|
1045 |
msgstr ""
|
1046 |
|
1047 |
+
#: defaults.php:97
|
1048 |
msgid "Restored custom post %PostTitle% of type %PostType% from trash"
|
1049 |
msgstr ""
|
1050 |
|
1051 |
+
#: defaults.php:98
|
1052 |
msgid "User changed the category of a post with custom post type"
|
1053 |
msgstr ""
|
1054 |
|
1055 |
+
#: defaults.php:98
|
1056 |
msgid ""
|
1057 |
"Changed the category(ies) of custom post %PostTitle% of type %PostType% from "
|
1058 |
"%OldCategories% to %NewCategories%"
|
1059 |
msgstr ""
|
1060 |
|
1061 |
+
#: defaults.php:99
|
1062 |
msgid "User changed the URL of a post with custom post type"
|
1063 |
msgstr ""
|
1064 |
|
1065 |
+
#: defaults.php:99
|
1066 |
msgid ""
|
1067 |
"Changed the URL of custom post %PostTitle% of type %PostType% from %OldUrl% "
|
1068 |
"to %NewUrl%"
|
1069 |
msgstr ""
|
1070 |
|
1071 |
+
#: defaults.php:100
|
1072 |
msgid "User changed the author or post with custom post type"
|
1073 |
msgstr ""
|
1074 |
|
1075 |
+
#: defaults.php:100
|
1076 |
msgid ""
|
1077 |
"Changed the author of custom post %PostTitle% of type %PostType% from "
|
1078 |
"%OldAuthor% to %NewAuthor%"
|
1079 |
msgstr ""
|
1080 |
|
1081 |
+
#: defaults.php:101
|
1082 |
msgid "User changed the status of post with custom post type"
|
1083 |
msgstr ""
|
1084 |
|
1085 |
+
#: defaults.php:101
|
1086 |
msgid ""
|
1087 |
"Changed the status of custom post %PostTitle% of type %PostType% from "
|
1088 |
"%OldStatus% to %NewStatus%"
|
1089 |
msgstr ""
|
1090 |
|
1091 |
+
#: defaults.php:102
|
1092 |
msgid "User changed the visibility of a post with custom post type"
|
1093 |
msgstr ""
|
1094 |
|
1095 |
+
#: defaults.php:102
|
1096 |
msgid ""
|
1097 |
"Changed the visibility of custom post %PostTitle% of type %PostType% from "
|
1098 |
"%OldVisibility% to %NewVisibility%"
|
1099 |
msgstr ""
|
1100 |
|
1101 |
+
#: defaults.php:103
|
1102 |
msgid "User changed the date of post with custom post type"
|
1103 |
msgstr ""
|
1104 |
|
1105 |
+
#: defaults.php:103
|
1106 |
msgid ""
|
1107 |
"Changed the date of custom post %PostTitle% of type %PostType% from %OldDate"
|
1108 |
"% to %NewDate%"
|
1109 |
msgstr ""
|
1110 |
|
1111 |
+
#: defaults.php:104
|
1112 |
+
msgid "User creates a custom field for a custom post"
|
1113 |
+
msgstr ""
|
1114 |
+
|
1115 |
+
#: defaults.php:104
|
1116 |
+
msgid ""
|
1117 |
+
"Created custom field %MetaKey% with value %MetaValue% in custom post "
|
1118 |
+
"%PostTitle% of type %PostType%"
|
1119 |
+
msgstr ""
|
1120 |
+
|
1121 |
+
#: defaults.php:105
|
1122 |
+
msgid "User updates a custom field for a custom post"
|
1123 |
+
msgstr ""
|
1124 |
+
|
1125 |
+
#: defaults.php:105
|
1126 |
+
msgid ""
|
1127 |
+
"Modified the value of custom field %MetaKey% from %MetaValueOld% to "
|
1128 |
+
"%MetaValueNew% in custom post %PostTitle% of type %PostType%"
|
1129 |
+
msgstr ""
|
1130 |
+
|
1131 |
+
#: defaults.php:106
|
1132 |
+
msgid "User deletes a custom field from a custom post"
|
1133 |
+
msgstr ""
|
1134 |
+
|
1135 |
+
#: defaults.php:106
|
1136 |
+
msgid ""
|
1137 |
+
"Deleted custom field %MetaKey% with value %MetaValue% from custom post "
|
1138 |
+
"%PostTitle% of type %PostType%"
|
1139 |
+
msgstr ""
|
1140 |
+
|
1141 |
+
#: defaults.php:107
|
1142 |
+
msgid "User updates a custom field name for a custom post"
|
1143 |
+
msgstr ""
|
1144 |
+
|
1145 |
+
#: defaults.php:107
|
1146 |
+
msgid ""
|
1147 |
+
"Changed the custom field name from %MetaKeyOld% to %MetaKeyNew% in custom "
|
1148 |
+
"post %PostTitle% of type %PostType%"
|
1149 |
+
msgstr ""
|
1150 |
+
|
1151 |
+
#: defaults.php:109
|
1152 |
msgid "Widgets"
|
1153 |
msgstr ""
|
1154 |
|
1155 |
+
#: defaults.php:110
|
1156 |
msgid "User added a new widget"
|
1157 |
msgstr ""
|
1158 |
|
1159 |
+
#: defaults.php:110
|
1160 |
msgid "Added a new %WidgetName% widget in %Sidebar%"
|
1161 |
msgstr ""
|
1162 |
|
1163 |
+
#: defaults.php:111
|
1164 |
msgid "User modified a widget"
|
1165 |
msgstr ""
|
1166 |
|
1167 |
+
#: defaults.php:111
|
1168 |
msgid "Modified the %WidgetName% widget in %Sidebar%"
|
1169 |
msgstr ""
|
1170 |
|
1171 |
+
#: defaults.php:112
|
1172 |
msgid "User deleted widget"
|
1173 |
msgstr ""
|
1174 |
|
1175 |
+
#: defaults.php:112
|
1176 |
msgid "Deleted the %WidgetName% widget from %Sidebar%"
|
1177 |
msgstr ""
|
1178 |
|
1179 |
+
#: defaults.php:113
|
1180 |
msgid "User moved widget"
|
1181 |
msgstr ""
|
1182 |
|
1183 |
+
#: defaults.php:113
|
1184 |
msgid "Moved the %WidgetName% widget from %OldSidebar% to %NewSidebar%"
|
1185 |
msgstr ""
|
1186 |
|
1187 |
+
#: defaults.php:115
|
1188 |
msgid "User Profiles"
|
1189 |
msgstr ""
|
1190 |
|
1191 |
+
#: defaults.php:116
|
1192 |
msgid "A new user was created on WordPress"
|
1193 |
msgstr ""
|
1194 |
|
1195 |
+
#: defaults.php:116
|
1196 |
msgid ""
|
1197 |
"User %NewUserData->Username% subscribed with a role of %NewUserData->Roles%"
|
1198 |
msgstr ""
|
1199 |
|
1200 |
+
#: defaults.php:117
|
1201 |
msgid "A user created another WordPress user"
|
1202 |
msgstr ""
|
1203 |
|
1204 |
+
#: defaults.php:117
|
1205 |
msgid ""
|
1206 |
"Created a new user %NewUserData->Username% with the role of %NewUserData-"
|
1207 |
">Roles%"
|
1208 |
msgstr ""
|
1209 |
|
1210 |
+
#: defaults.php:118
|
1211 |
msgid "The role of a user was changed by another WordPress user"
|
1212 |
msgstr ""
|
1213 |
|
1214 |
+
#: defaults.php:118
|
1215 |
msgid "Changed the role of user %TargetUsername% from %OldRole% to %NewRole%"
|
1216 |
msgstr ""
|
1217 |
|
1218 |
+
#: defaults.php:119
|
1219 |
msgid "User has changed his or her password"
|
1220 |
msgstr ""
|
1221 |
|
1222 |
+
#: defaults.php:119
|
1223 |
msgid "Changed the password"
|
1224 |
msgstr ""
|
1225 |
|
1226 |
+
#: defaults.php:120
|
1227 |
msgid "A user changed another user's password"
|
1228 |
msgstr ""
|
1229 |
|
1230 |
+
#: defaults.php:120
|
1231 |
msgid ""
|
1232 |
"Changed the password for user %TargetUserData->Username% with the role of "
|
1233 |
"%TargetUserData->Roles%"
|
1234 |
msgstr ""
|
1235 |
|
1236 |
+
#: defaults.php:121
|
1237 |
msgid "User changed his or her email address"
|
1238 |
msgstr ""
|
1239 |
|
1240 |
+
#: defaults.php:121
|
1241 |
msgid "Changed the email address from %OldEmail% to %NewEmail%"
|
1242 |
msgstr ""
|
1243 |
|
1244 |
+
#: defaults.php:122
|
1245 |
msgid "A user changed another user's email address"
|
1246 |
msgstr ""
|
1247 |
|
1248 |
+
#: defaults.php:122
|
1249 |
msgid ""
|
1250 |
"Changed the email address of user account %TargetUsername% from %OldEmail% "
|
1251 |
"to %NewEmail%"
|
1252 |
msgstr ""
|
1253 |
|
1254 |
+
#: defaults.php:123
|
1255 |
msgid "A user was deleted by another user"
|
1256 |
msgstr ""
|
1257 |
|
1258 |
+
#: defaults.php:123
|
1259 |
msgid ""
|
1260 |
"Deleted User %TargetUserData->Username% with the role of %TargetUserData-"
|
1261 |
">Roles%"
|
1262 |
msgstr ""
|
1263 |
|
1264 |
+
#: defaults.php:125
|
1265 |
msgid "Plugins & Themes"
|
1266 |
msgstr ""
|
1267 |
|
1268 |
+
#: defaults.php:126
|
1269 |
msgid "User installed a plugin"
|
1270 |
msgstr ""
|
1271 |
|
1272 |
+
#: defaults.php:126
|
1273 |
msgid "Installed the plugin %Plugin->Name% in %Plugin->plugin_dir_path%"
|
1274 |
msgstr ""
|
1275 |
|
1276 |
+
#: defaults.php:127
|
1277 |
msgid "User activated a WordPress plugin"
|
1278 |
msgstr ""
|
1279 |
|
1280 |
+
#: defaults.php:127
|
1281 |
msgid "Activated the plugin %PluginData->Name% installed in %PluginFile%"
|
1282 |
msgstr ""
|
1283 |
|
1284 |
+
#: defaults.php:128
|
1285 |
msgid "User deactivated a WordPress plugin"
|
1286 |
msgstr ""
|
1287 |
|
1288 |
+
#: defaults.php:128
|
1289 |
msgid "Deactivated the plugin %PluginData->Name% installed in %PluginFile%"
|
1290 |
msgstr ""
|
1291 |
|
1292 |
+
#: defaults.php:129
|
1293 |
msgid "User uninstalled a plugin"
|
1294 |
msgstr ""
|
1295 |
|
1296 |
+
#: defaults.php:129
|
1297 |
msgid ""
|
1298 |
"Uninstalled the plugin %PluginData->Name% which was installed in %PluginFile%"
|
1299 |
msgstr ""
|
1300 |
|
1301 |
+
#: defaults.php:130
|
1302 |
msgid "User upgraded a plugin"
|
1303 |
msgstr ""
|
1304 |
|
1305 |
+
#: defaults.php:130
|
1306 |
msgid "Upgraded the plugin %PluginData->Name% installed in %PluginFile%"
|
1307 |
msgstr ""
|
1308 |
|
1309 |
+
#: defaults.php:131
|
1310 |
msgid "User installed a theme"
|
1311 |
msgstr ""
|
1312 |
|
1313 |
+
#: defaults.php:131
|
1314 |
msgid "Installed theme \"%Theme->Name%\" in %Theme->get_template_directory%"
|
1315 |
msgstr ""
|
1316 |
|
1317 |
+
#: defaults.php:132
|
1318 |
msgid "User activated a theme"
|
1319 |
msgstr ""
|
1320 |
|
1321 |
+
#: defaults.php:132
|
1322 |
msgid ""
|
1323 |
"Activated theme \"%Theme->Name%\", installed in %Theme-"
|
1324 |
">get_template_directory%"
|
1325 |
msgstr ""
|
1326 |
|
1327 |
+
#: defaults.php:133
|
1328 |
msgid "User uninstalled a theme"
|
1329 |
msgstr ""
|
1330 |
|
1331 |
+
#: defaults.php:133
|
1332 |
msgid ""
|
1333 |
"Deleted theme \"%Theme->Name%\" installed in %Theme->get_template_directory%"
|
1334 |
msgstr ""
|
1335 |
|
1336 |
+
#: defaults.php:135
|
1337 |
msgid "System Activity"
|
1338 |
msgstr ""
|
1339 |
|
1340 |
+
#: defaults.php:136
|
1341 |
msgid "Unknown Error"
|
1342 |
msgstr ""
|
1343 |
|
1344 |
+
#: defaults.php:136
|
1345 |
msgid "An unexpected error has occurred"
|
1346 |
msgstr ""
|
1347 |
|
1348 |
+
#: defaults.php:137
|
1349 |
msgid "PHP error"
|
1350 |
msgstr ""
|
1351 |
|
1352 |
+
#: defaults.php:137 defaults.php:138 defaults.php:139 defaults.php:140
|
1353 |
+
#: defaults.php:141
|
1354 |
msgid "%Message%"
|
1355 |
msgstr ""
|
1356 |
|
1357 |
+
#: defaults.php:138
|
1358 |
msgid "PHP warning"
|
1359 |
msgstr ""
|
1360 |
|
1361 |
+
#: defaults.php:139
|
1362 |
msgid "PHP notice"
|
1363 |
msgstr ""
|
1364 |
|
1365 |
+
#: defaults.php:140
|
1366 |
msgid "PHP exception"
|
1367 |
msgstr ""
|
1368 |
|
1369 |
+
#: defaults.php:141
|
1370 |
msgid "PHP shutdown error"
|
1371 |
msgstr ""
|
1372 |
|
1373 |
+
#: defaults.php:142
|
1374 |
msgid "Events automatically pruned by system"
|
1375 |
msgstr ""
|
1376 |
|
1377 |
+
#: defaults.php:142
|
1378 |
msgid "%EventCount% event(s) automatically deleted by system"
|
1379 |
msgstr ""
|
1380 |
|
1381 |
+
#: defaults.php:143
|
1382 |
msgid "Option Anyone Can Register in WordPress settings changed"
|
1383 |
msgstr ""
|
1384 |
|
1385 |
+
#: defaults.php:143
|
1386 |
msgid "%NewValue% the option \"Anyone can register\""
|
1387 |
msgstr ""
|
1388 |
|
1389 |
+
#: defaults.php:144
|
1390 |
msgid "New User Default Role changed"
|
1391 |
msgstr ""
|
1392 |
|
1393 |
+
#: defaults.php:144
|
1394 |
msgid "Changed the New User Default Role from %OldRole% to %NewRole%"
|
1395 |
msgstr ""
|
1396 |
|
1397 |
+
#: defaults.php:145
|
1398 |
msgid "WordPress Administrator Notification email changed"
|
1399 |
msgstr ""
|
1400 |
|
1401 |
+
#: defaults.php:145
|
1402 |
msgid ""
|
1403 |
"Changed the WordPress administrator notifications email address from "
|
1404 |
"%OldEmail% to %NewEmail%"
|
1405 |
msgstr ""
|
1406 |
|
1407 |
+
#: defaults.php:146
|
1408 |
msgid "WordPress was updated"
|
1409 |
msgstr ""
|
1410 |
|
1411 |
+
#: defaults.php:146
|
1412 |
msgid "Updated WordPress from version %OldVersion% to %NewVersion%"
|
1413 |
msgstr ""
|
1414 |
|
1415 |
+
#: defaults.php:147
|
1416 |
msgid "User changes the WordPress Permalinks"
|
1417 |
msgstr ""
|
1418 |
|
1419 |
+
#: defaults.php:147
|
1420 |
msgid "Changed the WordPress permalinks from %OldPattern% to %NewPattern%"
|
1421 |
msgstr ""
|
1422 |
|
1423 |
+
#: defaults.php:149
|
1424 |
msgid "MultiSite"
|
1425 |
msgstr ""
|
1426 |
|
1427 |
+
#: defaults.php:150
|
1428 |
msgid "User granted Super Admin privileges"
|
1429 |
msgstr ""
|
1430 |
|
1431 |
+
#: defaults.php:150
|
1432 |
msgid "Granted Super Admin privileges to %TargetUsername%"
|
1433 |
msgstr ""
|
1434 |
|
1435 |
+
#: defaults.php:151
|
1436 |
msgid "User revoked from Super Admin privileges"
|
1437 |
msgstr ""
|
1438 |
|
1439 |
+
#: defaults.php:151
|
1440 |
msgid "Revoked Super Admin privileges from %TargetUsername%"
|
1441 |
msgstr ""
|
1442 |
|
1443 |
+
#: defaults.php:152
|
1444 |
msgid "Existing user added to a site"
|
1445 |
msgstr ""
|
1446 |
|
1447 |
+
#: defaults.php:152
|
1448 |
msgid ""
|
1449 |
"Added existing user %TargetUsername% with %TargetUserRole% role to site "
|
1450 |
"%SiteName%"
|
1451 |
msgstr ""
|
1452 |
|
1453 |
+
#: defaults.php:153
|
1454 |
msgid "User removed from site"
|
1455 |
msgstr ""
|
1456 |
|
1457 |
+
#: defaults.php:153
|
1458 |
msgid ""
|
1459 |
"Removed user %TargetUsername% with role %TargetUserRole% from %SiteName% site"
|
1460 |
msgstr ""
|
1461 |
|
1462 |
+
#: defaults.php:154
|
1463 |
msgid "New network user created"
|
1464 |
msgstr ""
|
1465 |
|
1466 |
+
#: defaults.php:154
|
1467 |
msgid "Created a new network user %NewUserData->Username%"
|
1468 |
msgstr ""
|
1469 |
|
1470 |
+
#: defaults.php:155
|
1471 |
msgid "New site added on network"
|
1472 |
msgstr ""
|
1473 |
|
1474 |
+
#: defaults.php:155
|
1475 |
msgid "Added site %SiteName% to the network"
|
1476 |
msgstr ""
|
1477 |
|
1478 |
+
#: defaults.php:156
|
1479 |
msgid "Existing site archived"
|
1480 |
msgstr ""
|
1481 |
|
1482 |
+
#: defaults.php:156
|
1483 |
msgid "Archived site %SiteName%"
|
1484 |
msgstr ""
|
1485 |
|
1486 |
+
#: defaults.php:157
|
1487 |
msgid "Archived site has been unarchived"
|
1488 |
msgstr ""
|
1489 |
|
1490 |
+
#: defaults.php:157
|
1491 |
msgid "Unarchived site %SiteName%"
|
1492 |
msgstr ""
|
1493 |
|
1494 |
+
#: defaults.php:158
|
1495 |
msgid "Deactivated site has been activated"
|
1496 |
msgstr ""
|
1497 |
|
1498 |
+
#: defaults.php:158
|
1499 |
msgid "Activated site %SiteName%"
|
1500 |
msgstr ""
|
1501 |
|
1502 |
+
#: defaults.php:159
|
1503 |
msgid "Site has been deactivated"
|
1504 |
msgstr ""
|
1505 |
|
1506 |
+
#: defaults.php:159
|
1507 |
msgid "Deactivated site %SiteName%"
|
1508 |
msgstr ""
|
1509 |
|
1510 |
+
#: defaults.php:160
|
1511 |
msgid "Existing site deleted from network"
|
1512 |
msgstr ""
|
1513 |
|
1514 |
+
#: defaults.php:160
|
1515 |
msgid "Deleted site %SiteName%"
|
1516 |
msgstr ""
|
1517 |
|
1518 |
+
#: defaults.php:161
|
1519 |
msgid "Activated theme on network"
|
1520 |
msgstr ""
|
1521 |
|
1522 |
+
#: defaults.php:161
|
1523 |
msgid ""
|
1524 |
"Network activated %Theme->Name% theme installed in %Theme-"
|
1525 |
">get_template_directory%"
|
1526 |
msgstr ""
|
1527 |
|
1528 |
+
#: defaults.php:162
|
1529 |
msgid "Deactivated theme from network"
|
1530 |
msgstr ""
|
1531 |
|
1532 |
+
#: defaults.php:162
|
1533 |
msgid ""
|
1534 |
"Network deactivated %Theme->Name% theme installed in %Theme-"
|
1535 |
">get_template_directory%"
|
1536 |
msgstr ""
|
1537 |
|
1538 |
+
#: wp-security-audit-log.php:142
|
1539 |
msgid ""
|
1540 |
"You are using a version of PHP that is older than %s, which is no longer "
|
1541 |
"supported.<br/>Contact us on <a href=\"mailto:plugins@wpwhitesecurity.com"
|
readme.txt
CHANGED
@@ -7,7 +7,7 @@ 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
|
8 |
Requires at least: 3.6
|
9 |
Tested up to: 3.9.1
|
10 |
-
Stable tag: 1.2.
|
11 |
|
12 |
Identify WordPress issues before they become a security problem by keeping an audit log of users and all of the under the hood WordPress activity.
|
13 |
|
@@ -61,9 +61,9 @@ We need help translating the plugin and the WordPress Security Events. If you're
|
|
61 |
* German translation by [Mourad Louha](http://excel-translator.de)
|
62 |
|
63 |
= WordPress & PHP Errors Monitoring Tools =
|
64 |
-
Plugins and themes customizations are most probably the norm of the day on large WordPress websites, not to mention the installation of new plugins and components.
|
65 |
|
66 |
-
|
67 |
|
68 |
= Other Noteworthy Features =
|
69 |
WP Security Audit Log plugin also has a number of features that make WordPress and WordPress multisite monitoring and auditing easier, such as:
|
@@ -74,17 +74,8 @@ WP Security Audit Log plugin also has a number of features that make WordPress a
|
|
74 |
* Configure WordPress security alerts purging by time or by number of alerts
|
75 |
* User role is reported in alerts for a complete overview of what is happening
|
76 |
* User avatar is reported in the alerts for better recognizability
|
77 |
-
* Enable or disable any security alerts
|
78 |
-
* And much more...
|
79 |
-
|
80 |
* From where WordPress users are logging in
|
81 |
-
* Users who created. modified or deleted categories
|
82 |
-
* Users who created a blog post, page or a custom post
|
83 |
-
* Users who published a blog post, page or a custom post
|
84 |
-
* Users who modified published WordPress content such as custom posts, pages or a blog posts
|
85 |
-
* Users who moves content such as blog posts or WordPress pages to trash or permanently deletes it
|
86 |
-
* Users who modify WordPress widgets
|
87 |
-
* Uses who upload or delete any sort of files
|
88 |
* and much more...
|
89 |
|
90 |
= As Featured On: =
|
@@ -139,38 +130,45 @@ Yes, WP Security Audit Log works on WordPress Multisite networks, i.e. it can mo
|
|
139 |
|
140 |
== Changelog ==
|
141 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
142 |
= 1.2.2 (2014-07-16) =
|
143 |
* New Features
|
144 |
-
|
145 |
|
146 |
* Improvements
|
147 |
-
|
148 |
-
|
|
|
149 |
|
150 |
* Bug Fixes
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
* Bug Fix
|
155 |
-
* Fixed reported issue with ugrade (more info [here](http://wordpress.org/support/topic/errors-showing-since-120-upgrade-on-multisite-install?replies=4))
|
156 |
|
157 |
= 1.2.1 (2014-07-2) =
|
158 |
* Bug Fix
|
159 |
-
|
160 |
|
161 |
= 1.2.0 (2014-07-2) =
|
162 |
* New Features
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
|
170 |
* New WordPress Security Alerts
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
|
175 |
= 1.1.0 (2014-05-27) =
|
176 |
* New Features
|
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
|
8 |
Requires at least: 3.6
|
9 |
Tested up to: 3.9.1
|
10 |
+
Stable tag: 1.2.3
|
11 |
|
12 |
Identify WordPress issues before they become a security problem by keeping an audit log of users and all of the under the hood WordPress activity.
|
13 |
|
61 |
* German translation by [Mourad Louha](http://excel-translator.de)
|
62 |
|
63 |
= WordPress & PHP Errors Monitoring Tools =
|
64 |
+
Plugins and themes customizations are most probably the norm of the day on large WordPress websites, not to mention the installation of new plugins and components. With WP Security Audit Log now it is easier than ever before to monitor your plugins', theme's and other code behaviour, it will generate a alert when a PHP error, warning, exception or shutdown is detected. It is also possible to log all HTTP GET and POST requests that are reaching your WordPress installation to a log file with WP Security Audit Log. Simply enable the PHP Errors monitoring or logging from the plugins settings.
|
65 |
|
66 |
+
NOTE: Developer options should NEVER be enabled on Live websites. They should only be enabled on testing, staging and development WordPress and WordPress multisite installations.
|
67 |
|
68 |
= Other Noteworthy Features =
|
69 |
WP Security Audit Log plugin also has a number of features that make WordPress and WordPress multisite monitoring and auditing easier, such as:
|
74 |
* Configure WordPress security alerts purging by time or by number of alerts
|
75 |
* User role is reported in alerts for a complete overview of what is happening
|
76 |
* User avatar is reported in the alerts for better recognizability
|
77 |
+
* Enable or disable any security alerts
|
|
|
|
|
78 |
* From where WordPress users are logging in
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
* and much more...
|
80 |
|
81 |
= As Featured On: =
|
130 |
|
131 |
== Changelog ==
|
132 |
|
133 |
+
= 1.2.3 (2014-07-23) =
|
134 |
+
* Improvements
|
135 |
+
* Improved database structure for better support of high-traffic WordPress and WordPress multisite installations
|
136 |
+
* Developer options are reset during updates for improved performance
|
137 |
+
* Added a warning / note to the developer options (such options should NEVER be enabled on live websites but only on testing, staging and development websites)
|
138 |
+
|
139 |
+
* Bug Fixes
|
140 |
+
* Fixed database issue with primary key constraint
|
141 |
+
|
142 |
= 1.2.2 (2014-07-16) =
|
143 |
* New Features
|
144 |
+
* Italian translation available thanks to [Leonardo Musumeci](http://leonardomusumeci.net/)
|
145 |
|
146 |
* Improvements
|
147 |
+
* Added a warning to developer options
|
148 |
+
* "Hidden" developer options from default settings; user has to click link to access developer settings
|
149 |
+
* Backtrace logging now made optional from a developer setting
|
150 |
|
151 |
* Bug Fixes
|
152 |
+
* Solved several issues related to translations. Now everything in the plugin is translatable
|
153 |
+
* Fixed several other issues reported by email
|
|
|
|
|
|
|
154 |
|
155 |
= 1.2.1 (2014-07-2) =
|
156 |
* Bug Fix
|
157 |
+
* Fixed reported issue with upgrade (more info [here](http://wordpress.org/support/topic/errors-showing-since-120-upgrade-on-multisite-install?replies=4))
|
158 |
|
159 |
= 1.2.0 (2014-07-2) =
|
160 |
* New Features
|
161 |
+
* Unlimited Alerts can be stored (removed the 5000 alerts limit)
|
162 |
+
* Alert time now includes milliseconds for more precision (ideal for auditing and compliance)
|
163 |
+
* Reported alert time is now relative to user's configured timezone
|
164 |
+
* Alerts automatic pruning procedures can now be enabled / disabled
|
165 |
+
* Option to hide WP Security Audit Log from Plugins page in WordPress
|
166 |
+
* If there are more than 15 websites in a multisite installation, an auto complete site search box is shown instead of the drop down menu
|
167 |
|
168 |
* New WordPress Security Alerts
|
169 |
+
* Alert 5007: User has uninstalled / deleted a theme
|
170 |
+
* Alert 5008: Super administrator network activated a theme on multisite
|
171 |
+
* Alert 5009: Super administrator network deactivated a theme on multisite
|
172 |
|
173 |
= 1.1.0 (2014-05-27) =
|
174 |
* New Features
|
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 and keep track of everything happening on your WordPress, including WordPress users activity. Similar to Windows Event Log and Linux Syslog, WP Security Audit Log will generate a security alert for everything that happens on your WordPress blog or website. Use the Audit Log Viewer included in the plugin to see all the security alerts.
|
6 |
Author: WP White Security
|
7 |
-
Version: 1.2.
|
8 |
Text Domain: wp-security-audit-log
|
9 |
Author URI: http://www.wpwhitesecurity.com/
|
10 |
License: GPL2
|
@@ -34,6 +34,8 @@ class WpSecurityAuditLog {
|
|
34 |
|
35 |
const MIN_PHP_VERSION = '5.3.0';
|
36 |
|
|
|
|
|
37 |
/**
|
38 |
* Views supervisor.
|
39 |
* @var WSAL_ViewManager
|
@@ -76,6 +78,8 @@ class WpSecurityAuditLog {
|
|
76 |
|
77 |
/**
|
78 |
* Standard singleton pattern.
|
|
|
|
|
79 |
* @return \self Returns the current plugin instance.
|
80 |
*/
|
81 |
public static function GetInstance(){
|
@@ -122,6 +126,9 @@ class WpSecurityAuditLog {
|
|
122 |
do_action('wsal_init', $this);
|
123 |
}
|
124 |
|
|
|
|
|
|
|
125 |
public function Install(){
|
126 |
if (version_compare(PHP_VERSION, self::MIN_PHP_VERSION) < 0) {
|
127 |
?><html>
|
@@ -140,18 +147,52 @@ class WpSecurityAuditLog {
|
|
140 |
}
|
141 |
|
142 |
$PreInstalled = $this->IsInstalled();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
WSAL_DB_ActiveRecord::InstallAll();
|
144 |
-
if (!$PreInstalled && $this->CanUpgrade()) $this->Upgrade();
|
145 |
|
|
|
|
|
|
|
|
|
146 |
wp_schedule_event(0, 'hourly', 'wsal_cleanup');
|
147 |
}
|
148 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
public function Uninstall(){
|
150 |
WSAL_DB_ActiveRecord::UninstallAll();
|
151 |
wp_unschedule_event(0, 'wsal_cleanup');
|
152 |
}
|
153 |
|
154 |
-
|
|
|
|
|
|
|
155 |
global $wpdb;
|
156 |
static $migTypes = array(
|
157 |
3000 => 5006
|
@@ -212,6 +253,24 @@ class WpSecurityAuditLog {
|
|
212 |
|
213 |
// <editor-fold desc="Utility Methods">
|
214 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
215 |
public function HidePlugin(){
|
216 |
?><style type="text/css">.wp-list-table.plugins #wp-security-audit-log { display: none; }</style><?php
|
217 |
}
|
@@ -255,27 +314,90 @@ class WpSecurityAuditLog {
|
|
255 |
return function_exists('is_multisite') && is_multisite();
|
256 |
}
|
257 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
258 |
public function CleanUp(){
|
259 |
foreach($this->_cleanup_hooks as $hook)
|
260 |
call_user_func($hook);
|
261 |
}
|
262 |
|
|
|
|
|
|
|
|
|
263 |
public function AddCleanupHook($hook){
|
264 |
$this->_cleanup_hooks[] = $hook;
|
265 |
}
|
266 |
|
|
|
|
|
|
|
|
|
267 |
public function RemoveCleanupHook($hook){
|
268 |
while(($pos = array_search($hook, $this->_cleanup_hooks)) !== false)
|
269 |
unset($this->_cleanup_hooks[$pos]);
|
270 |
}
|
271 |
|
|
|
|
|
|
|
|
|
272 |
public function IsInstalled(){
|
273 |
global $wpdb;
|
274 |
$table = $wpdb->base_prefix . 'wsal_occurrences';
|
275 |
return ($wpdb->get_var('SHOW TABLES LIKE "'.$table.'"') == $table);
|
276 |
}
|
277 |
|
278 |
-
|
|
|
|
|
|
|
279 |
global $wpdb;
|
280 |
$table = $wpdb->base_prefix . 'wordpress_auditlog_events';
|
281 |
return ($wpdb->get_var('SHOW TABLES LIKE "'.$table.'"') == $table);
|
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 and keep track of everything happening on your WordPress, including WordPress users activity. Similar to Windows Event Log and Linux Syslog, WP Security Audit Log will generate a security alert for everything that happens on your WordPress blog or website. Use the Audit Log Viewer included in the plugin to see all the security alerts.
|
6 |
Author: WP White Security
|
7 |
+
Version: 1.2.3
|
8 |
Text Domain: wp-security-audit-log
|
9 |
Author URI: http://www.wpwhitesecurity.com/
|
10 |
License: GPL2
|
34 |
|
35 |
const MIN_PHP_VERSION = '5.3.0';
|
36 |
|
37 |
+
const OPT_PRFX = 'wsal-';
|
38 |
+
|
39 |
/**
|
40 |
* Views supervisor.
|
41 |
* @var WSAL_ViewManager
|
78 |
|
79 |
/**
|
80 |
* Standard singleton pattern.
|
81 |
+
* WARNING! To ensure the system always works as expected, AVOID using this method.
|
82 |
+
* Instead, make use of the plugin instance provided by 'wsal_init' action.
|
83 |
* @return \self Returns the current plugin instance.
|
84 |
*/
|
85 |
public static function GetInstance(){
|
126 |
do_action('wsal_init', $this);
|
127 |
}
|
128 |
|
129 |
+
/**
|
130 |
+
* Install all assets required for a useable system.
|
131 |
+
*/
|
132 |
public function Install(){
|
133 |
if (version_compare(PHP_VERSION, self::MIN_PHP_VERSION) < 0) {
|
134 |
?><html>
|
147 |
}
|
148 |
|
149 |
$PreInstalled = $this->IsInstalled();
|
150 |
+
|
151 |
+
// if system already installed, do updates now (if any)
|
152 |
+
$OldVersion = $this->GetOldVersion();
|
153 |
+
$NewVersion = $this->GetNewVersion();
|
154 |
+
if ($PreInstalled && $OldVersion != $NewVersion) $this->Update($OldVersion, $NewVersion);
|
155 |
+
|
156 |
+
// ensure that the system is installed and schema is correct
|
157 |
WSAL_DB_ActiveRecord::InstallAll();
|
|
|
158 |
|
159 |
+
// if system wasn't installed, try migration now
|
160 |
+
if (!$PreInstalled && $this->CanMigrate()) $this->Migrate();
|
161 |
+
|
162 |
+
// install cleanup hook
|
163 |
wp_schedule_event(0, 'hourly', 'wsal_cleanup');
|
164 |
}
|
165 |
|
166 |
+
/**
|
167 |
+
* Run some code that updates critical components required for a newwer version.
|
168 |
+
* @param string $old_version The old version.
|
169 |
+
* @param string $new_version The new version.
|
170 |
+
*/
|
171 |
+
public function Update($old_version, $new_version){
|
172 |
+
// update version in db
|
173 |
+
$this->GetGlobalOption('version', $new_version);
|
174 |
+
|
175 |
+
// disable all developer options
|
176 |
+
$this->settings->ClearDevOptions();
|
177 |
+
|
178 |
+
// do version-to-version specific changes
|
179 |
+
if(version_compare($old_version, '1.2.3') == -1){
|
180 |
+
// ... an example
|
181 |
+
}
|
182 |
+
}
|
183 |
+
|
184 |
+
/**
|
185 |
+
* Uninstall plugin.
|
186 |
+
*/
|
187 |
public function Uninstall(){
|
188 |
WSAL_DB_ActiveRecord::UninstallAll();
|
189 |
wp_unschedule_event(0, 'wsal_cleanup');
|
190 |
}
|
191 |
|
192 |
+
/**
|
193 |
+
* Migrate data from old plugin.
|
194 |
+
*/
|
195 |
+
public function Migrate(){
|
196 |
global $wpdb;
|
197 |
static $migTypes = array(
|
198 |
3000 => 5006
|
253 |
|
254 |
// <editor-fold desc="Utility Methods">
|
255 |
|
256 |
+
/**
|
257 |
+
* @return string The current plugin version (according to plugin file metadata).
|
258 |
+
*/
|
259 |
+
public function GetNewVersion(){
|
260 |
+
$version = get_plugin_data(__FILE__, false, false);
|
261 |
+
return isset($version['Version']) ? $version['Version'] : '0.0.0';
|
262 |
+
}
|
263 |
+
|
264 |
+
/**
|
265 |
+
* @return string The plugin version as stored in DB (will be the old version during an update/install).
|
266 |
+
*/
|
267 |
+
public function GetOldVersion(){
|
268 |
+
return $this->GetGlobalOption('version', '0.0.0');
|
269 |
+
}
|
270 |
+
|
271 |
+
/**
|
272 |
+
* @internal To be called in admin header for hiding plugin form Plugins list.
|
273 |
+
*/
|
274 |
public function HidePlugin(){
|
275 |
?><style type="text/css">.wp-list-table.plugins #wp-security-audit-log { display: none; }</style><?php
|
276 |
}
|
314 |
return function_exists('is_multisite') && is_multisite();
|
315 |
}
|
316 |
|
317 |
+
/**
|
318 |
+
* Get a global option.
|
319 |
+
* @param string $option Option name.
|
320 |
+
* @param mixed $default (Optional) Value returned when option is not set (defaults to false).
|
321 |
+
* @param string $prefix (Optional) A prefix used before option name.
|
322 |
+
* @return mixed Option's value or $default if option not set.
|
323 |
+
*/
|
324 |
+
public function GetGlobalOption($option, $default = false, $prefix = self::OPT_PRFX){
|
325 |
+
$fn = $this->IsMultisite() ? 'get_site_option' : 'get_option';
|
326 |
+
return $fn($prefix . $option, $default);
|
327 |
+
}
|
328 |
+
|
329 |
+
/**
|
330 |
+
* Set a global option.
|
331 |
+
* @param string $option Option name.
|
332 |
+
* @param mixed $value New value for option.
|
333 |
+
* @param string $prefix (Optional) A prefix used before option name.
|
334 |
+
*/
|
335 |
+
public function SetGlobalOption($option, $value, $prefix = self::OPT_PRFX){
|
336 |
+
$fn = $this->IsMultisite() ? 'update_site_option' : 'update_option';
|
337 |
+
$fn($prefix . $option, $value);
|
338 |
+
}
|
339 |
+
|
340 |
+
/**
|
341 |
+
* Get a user-specific option.
|
342 |
+
* @param string $option Option name.
|
343 |
+
* @param mixed $default (Optional) Value returned when option is not set (defaults to false).
|
344 |
+
* @param string $prefix (Optional) A prefix used before option name.
|
345 |
+
* @return mixed Option's value or $default if option not set.
|
346 |
+
*/
|
347 |
+
public function GetUserOption($option, $default = false, $prefix = self::OPT_PRFX){
|
348 |
+
$result = get_user_option($prefix . $option, get_current_user_id());
|
349 |
+
return $result === false ? $default : $result;
|
350 |
+
}
|
351 |
+
|
352 |
+
/**
|
353 |
+
* Set a user-specific option.
|
354 |
+
* @param string $option Option name.
|
355 |
+
* @param mixed $value New value for option.
|
356 |
+
* @param string $prefix (Optional) A prefix used before option name.
|
357 |
+
*/
|
358 |
+
public function SetUserOption($option, $value, $prefix = self::OPT_PRFX){
|
359 |
+
update_user_option(get_current_user_id(), $prefix . $option, $value, false);
|
360 |
+
}
|
361 |
+
|
362 |
+
/**
|
363 |
+
* Run cleanup routines.
|
364 |
+
*/
|
365 |
public function CleanUp(){
|
366 |
foreach($this->_cleanup_hooks as $hook)
|
367 |
call_user_func($hook);
|
368 |
}
|
369 |
|
370 |
+
/**
|
371 |
+
* Add callback to be called when a cleanup operation is required.
|
372 |
+
* @param callable $hook
|
373 |
+
*/
|
374 |
public function AddCleanupHook($hook){
|
375 |
$this->_cleanup_hooks[] = $hook;
|
376 |
}
|
377 |
|
378 |
+
/**
|
379 |
+
* Remove a callback from the cleanup callbacks list.
|
380 |
+
* @param callable $hook
|
381 |
+
*/
|
382 |
public function RemoveCleanupHook($hook){
|
383 |
while(($pos = array_search($hook, $this->_cleanup_hooks)) !== false)
|
384 |
unset($this->_cleanup_hooks[$pos]);
|
385 |
}
|
386 |
|
387 |
+
/**
|
388 |
+
* Do we have an existing installation? This only applies for version 1.0 onwards.
|
389 |
+
* @return boolean
|
390 |
+
*/
|
391 |
public function IsInstalled(){
|
392 |
global $wpdb;
|
393 |
$table = $wpdb->base_prefix . 'wsal_occurrences';
|
394 |
return ($wpdb->get_var('SHOW TABLES LIKE "'.$table.'"') == $table);
|
395 |
}
|
396 |
|
397 |
+
/**
|
398 |
+
* @return boolean Whether the old plugin was present or not.
|
399 |
+
*/
|
400 |
+
public function CanMigrate(){
|
401 |
global $wpdb;
|
402 |
$table = $wpdb->base_prefix . 'wordpress_auditlog_events';
|
403 |
return ($wpdb->get_var('SHOW TABLES LIKE "'.$table.'"') == $table);
|