Advanced Access Manager - Version 2.7

Version Description

  • Fixed bug with subject managing check
  • Fixed bug with update hook
  • Fixed issue with extension activation hook
  • Added AAM Security Feature. First iteration
  • Improved CSS
Download this release

Release Info

Developer vasyl_m
Plugin Icon 128x128 Advanced Access Manager
Version 2.7
Comparing to
See all releases

Code changes from version 2.6 to 2.7

Files changed (54) hide show
  1. aam.php +19 -4
  2. application/core/extension.php +5 -13
  3. application/core/repository.php +1 -8
  4. application/core/update.php +12 -2
  5. application/view/abstract.php +2 -0
  6. application/view/tmpl/configpress.phtml +17 -7
  7. application/view/tmpl/extension.phtml +10 -4
  8. application/view/tmpl/manager.phtml +2 -9
  9. application/view/tmpl/metabox.phtml +2 -2
  10. application/view/user.php +1 -2
  11. config.php +1 -1
  12. extension/AAM_Secure/extension.php +384 -0
  13. extension/AAM_Secure/geoip/freegeoip.php +31 -0
  14. extension/AAM_Secure/geoip/geoip.php +15 -0
  15. extension/AAM_Secure/index.php +17 -0
  16. extension/AAM_Secure/javascript/loader.js +41 -0
  17. extension/AAM_Secure/javascript/security.js +48 -0
  18. extension/AAM_Secure/security.php +85 -0
  19. extension/AAM_Secure/stylesheet/flags32.css +260 -0
  20. extension/AAM_Secure/stylesheet/images/deny.png +0 -0
  21. extension/AAM_Secure/stylesheet/images/flags32.png +0 -0
  22. extension/AAM_Secure/stylesheet/images/large-iconset.png +0 -0
  23. extension/AAM_Secure/stylesheet/images/restriction.png +0 -0
  24. extension/AAM_Secure/stylesheet/security.css +84 -0
  25. extension/AAM_Secure/view/security.phtml +156 -0
  26. media/css/aam.css +2 -314
  27. media/css/common.css +353 -0
  28. media/css/configpress.css +0 -102
  29. media/css/extension.css +0 -64
  30. media/css/images/common/add.png +0 -0
  31. media/css/images/common/large-iconset.png +0 -0
  32. media/css/images/common/medium-iconset.png +0 -0
  33. media/css/images/{warning.png → common/warning.png} +0 -0
  34. media/css/images/cpanel/help-forum-active.png +0 -0
  35. media/css/images/cpanel/help-forum.png +0 -0
  36. media/css/images/cpanel/message-active.png +0 -0
  37. media/css/images/cpanel/message.png +0 -0
  38. media/css/images/cpanel/restore-active.png +0 -0
  39. media/css/images/cpanel/restore.png +0 -0
  40. media/css/images/cpanel/save-active.png +0 -0
  41. media/css/images/cpanel/save.png +0 -0
  42. media/css/images/cpanel/star-active.png +0 -0
  43. media/css/images/cpanel/star.png +0 -0
  44. media/css/images/cpanel/twitter-active.png +0 -0
  45. media/css/images/cpanel/twitter.png +0 -0
  46. media/css/images/extension/link-active.png +0 -0
  47. media/css/images/extension/link.png +0 -0
  48. media/css/images/extension/message-active.png +0 -0
  49. media/css/images/extension/message.png +0 -0
  50. media/css/images/extension/twitter-active.png +0 -0
  51. media/css/images/extension/twitter.png +0 -0
  52. media/js/aam.js +49 -24
  53. readme.txt +53 -45
  54. screenshot-6.png +0 -0
aam.php CHANGED
@@ -3,7 +3,7 @@
3
  /**
4
  Plugin Name: Advanced Access Manager
5
  Description: Manage User and Role Access to WordPress Backend and Frontend.
6
- Version: 2.6
7
  Author: Vasyl Martyniuk <support@wpaam.com>
8
  Author URI: http://www.wpaam.com
9
 
@@ -727,7 +727,12 @@ class aam {
727
  wp_enqueue_style('global');
728
  wp_enqueue_style('wp-admin');
729
  wp_enqueue_style('aam-ui-style', AAM_MEDIA_URL . 'css/jquery-ui.css');
730
- wp_enqueue_style('aam-style', AAM_MEDIA_URL . 'css/aam.css');
 
 
 
 
 
731
  wp_enqueue_style('aam-datatables', AAM_MEDIA_URL . 'css/jquery.dt.css');
732
  wp_enqueue_style('wp-pointer');
733
  wp_enqueue_style(
@@ -738,10 +743,20 @@ class aam {
738
  wp_enqueue_style('global');
739
  wp_enqueue_style('wp-admin');
740
  wp_enqueue_style('aam-ui-style', AAM_MEDIA_URL . 'css/jquery-ui.css');
741
- wp_enqueue_style('aam-style', AAM_MEDIA_URL . 'css/extension.css');
 
 
 
 
 
742
  wp_enqueue_style('aam-datatables', AAM_MEDIA_URL . 'css/jquery.dt.css');
743
  } elseif ($this->isAAMConfigPressScreen()) {
744
- wp_enqueue_style('aam-style', AAM_MEDIA_URL . 'css/configpress.css');
 
 
 
 
 
745
  wp_enqueue_style('aam-codemirror', AAM_MEDIA_URL . 'css/codemirror.css');
746
  }
747
 
3
  /**
4
  Plugin Name: Advanced Access Manager
5
  Description: Manage User and Role Access to WordPress Backend and Frontend.
6
+ Version: 2.7
7
  Author: Vasyl Martyniuk <support@wpaam.com>
8
  Author URI: http://www.wpaam.com
9
 
727
  wp_enqueue_style('global');
728
  wp_enqueue_style('wp-admin');
729
  wp_enqueue_style('aam-ui-style', AAM_MEDIA_URL . 'css/jquery-ui.css');
730
+ wp_enqueue_style('aam-common-style', AAM_MEDIA_URL . 'css/common.css');
731
+ wp_enqueue_style(
732
+ 'aam-style',
733
+ AAM_MEDIA_URL . 'css/aam.css',
734
+ array('aam-common-style')
735
+ );
736
  wp_enqueue_style('aam-datatables', AAM_MEDIA_URL . 'css/jquery.dt.css');
737
  wp_enqueue_style('wp-pointer');
738
  wp_enqueue_style(
743
  wp_enqueue_style('global');
744
  wp_enqueue_style('wp-admin');
745
  wp_enqueue_style('aam-ui-style', AAM_MEDIA_URL . 'css/jquery-ui.css');
746
+ wp_enqueue_style('aam-common-style', AAM_MEDIA_URL . 'css/common.css');
747
+ wp_enqueue_style(
748
+ 'aam-style',
749
+ AAM_MEDIA_URL . 'css/extension.css',
750
+ array('aam-common-style')
751
+ );
752
  wp_enqueue_style('aam-datatables', AAM_MEDIA_URL . 'css/jquery.dt.css');
753
  } elseif ($this->isAAMConfigPressScreen()) {
754
+ wp_enqueue_style('aam-common-style', AAM_MEDIA_URL . 'css/common.css');
755
+ wp_enqueue_style(
756
+ 'aam-style',
757
+ AAM_MEDIA_URL . 'css/configpress.css',
758
+ array('aam-common-style')
759
+ );
760
  wp_enqueue_style('aam-codemirror', AAM_MEDIA_URL . 'css/codemirror.css');
761
  }
762
 
application/core/extension.php CHANGED
@@ -16,11 +16,6 @@
16
  */
17
  class AAM_Core_Extension {
18
 
19
- /**
20
- * Extension iterator
21
- */
22
- const ITERATOR = 1;
23
-
24
  /**
25
  * Parent AAM object
26
  *
@@ -44,19 +39,16 @@ class AAM_Core_Extension {
44
  }
45
 
46
  /**
47
- * Get extension iterator
48
  *
49
- * Extension iterator is kind of extension's version with the only difference:
50
- * the iterator is incremented only when activation hook has to be fired.
51
- *
52
- * @return int
53
  *
54
  * @access public
55
  */
56
- public function getInterator(){
57
- return self::ITERATOR;
58
  }
59
-
60
  /**
61
  * Set Parent Object
62
  *
16
  */
17
  class AAM_Core_Extension {
18
 
 
 
 
 
 
19
  /**
20
  * Parent AAM object
21
  *
39
  }
40
 
41
  /**
42
+ * Activate hook
43
  *
44
+ * @return boolean
 
 
 
45
  *
46
  * @access public
47
  */
48
+ public function activate(){
49
+ return true;
50
  }
51
+
52
  /**
53
  * Set Parent Object
54
  *
application/core/repository.php CHANGED
@@ -221,7 +221,6 @@ class aam_Core_Repository {
221
  $repository[$extension] = (object) array(
222
  'status' => self::STATUS_INSTALLED,
223
  'license' => $license,
224
- 'iteration' => 0, //this counter is used for extension activation
225
  //ugly way but quick
226
  'basedir' => "{$this->_basedir}/" . str_replace(' ', '_', $extension)
227
  );
@@ -349,13 +348,7 @@ class aam_Core_Repository {
349
  if (file_exists($bootstrap) && !isset($this->_cache[$extension])) {
350
  //bootstrap the extension
351
  $this->_cache[$extension] = require_once($bootstrap);
352
- //TODO - Implement Iterator here!!
353
- //check if activation hook still present and trigger warning if yes
354
- if (file_exists($this->_basedir . "/{$extension}/activation.php")){
355
- aam_Core_Console::add(
356
- "Activation hook for {$extension} is not deleted"
357
- );
358
- }
359
  }
360
  }
361
 
221
  $repository[$extension] = (object) array(
222
  'status' => self::STATUS_INSTALLED,
223
  'license' => $license,
 
224
  //ugly way but quick
225
  'basedir' => "{$this->_basedir}/" . str_replace(' ', '_', $extension)
226
  );
348
  if (file_exists($bootstrap) && !isset($this->_cache[$extension])) {
349
  //bootstrap the extension
350
  $this->_cache[$extension] = require_once($bootstrap);
351
+ $this->_cache[$extension]->activate();
 
 
 
 
 
 
352
  }
353
  }
354
 
application/core/update.php CHANGED
@@ -17,6 +17,15 @@
17
  */
18
  final class aam_Core_Update {
19
 
 
 
 
 
 
 
 
 
 
20
  /**
21
  * List of stages
22
  *
@@ -33,7 +42,8 @@ final class aam_Core_Update {
33
  *
34
  * @access public
35
  */
36
- public function __construct() {
 
37
  //register update stages
38
  $this->_stages = apply_filters('aam_update_stages', array(
39
  array($this, 'downloadRepository'),
@@ -72,7 +82,7 @@ final class aam_Core_Update {
72
  $response = true;
73
  if ($extensions = aam_Core_API::getBlogOption('aam_extensions')) {
74
  if (is_array($extensions)){
75
- $repo = new aam_Core_Repository();
76
  $repo->download();
77
  }
78
  }
17
  */
18
  final class aam_Core_Update {
19
 
20
+ /**
21
+ * Reference to AAM
22
+ *
23
+ * @var aam
24
+ *
25
+ * @access private
26
+ */
27
+
28
+ private $_parent = null;
29
  /**
30
  * List of stages
31
  *
42
  *
43
  * @access public
44
  */
45
+ public function __construct($parent) {
46
+ $this->_parent = $parent;
47
  //register update stages
48
  $this->_stages = apply_filters('aam_update_stages', array(
49
  array($this, 'downloadRepository'),
82
  $response = true;
83
  if ($extensions = aam_Core_API::getBlogOption('aam_extensions')) {
84
  if (is_array($extensions)){
85
+ $repo = aam_Core_Repository::getInstance($this->_parent);
86
  $repo->download();
87
  }
88
  }
application/view/abstract.php CHANGED
@@ -82,6 +82,8 @@ abstract class aam_View_Abstract {
82
  );
83
  }
84
  }
 
 
85
  }
86
 
87
  /**
82
  );
83
  }
84
  }
85
+
86
+ return true;
87
  }
88
 
89
  /**
application/view/tmpl/configpress.phtml CHANGED
@@ -55,14 +55,24 @@
55
  <span><?php echo __('Control Panel', 'aam'); ?></span>
56
  </h3>
57
  <div class="inside">
58
- <div class="cpanel-major">
59
- <a href="#" class="cpanel-item cpanel-item-save" id="save_config" ><?php echo __('Save', 'aam'); ?></a>
 
 
60
  </div>
61
- <div class="cpanel-minor">
62
- <a href="https://twitter.com/wpaam" target="_blank" class="cpanel-item cpanel-item-twitter" id="aam_twitter" aam-tooltip="<?php echo __('Follow @wpaam', 'aam'); ?>"><?php echo __('Follow', 'aam'); ?></a>
63
- <a href="http://wpaam.com/support" target="_blank" class="cpanel-item cpanel-item-help" id="aam_help" aam-tooltip="<?php echo __('Help Forum', 'aam'); ?>"><?php echo __('Help', 'aam'); ?></a>
64
- <a href="mailto:support@wpaam.com" class="cpanel-item cpanel-item-message" id="aam_message" aam-tooltip="<?php echo __('E-mail Us', 'aam'); ?>"><?php echo __('E-mail Us', 'aam'); ?></a>
65
- <a href="http://wordpress.org/support/view/plugin-reviews/advanced-access-manager" target="_blank" class="cpanel-item cpanel-item-star" aam-tooltip="<?php echo __('Rate AAM', 'aam'); ?>"><?php echo __('Rate Us', 'aam'); ?></a>
 
 
 
 
 
 
 
 
66
  </div>
67
  </div>
68
  </div>
55
  <span><?php echo __('Control Panel', 'aam'); ?></span>
56
  </h3>
57
  <div class="inside">
58
+ <div class="large-icons-row">
59
+ <a href="#" class="aam-icon aam-icon-large aam-icon-large-save" id="save_config" >
60
+ <span></span><?php echo __('Save', 'aam'); ?>
61
+ </a>
62
  </div>
63
+ <div class="medium-icons-row">
64
+ <a href="https://twitter.com/wpaam" target="_blank" class="aam-icon aam-icon-medium aam-icon-medium-twitter" aam-tooltip="<?php echo __('Follow @wpaam', 'aam'); ?>">
65
+ <span></span><?php echo __('Follow', 'aam'); ?>
66
+ </a>
67
+ <a href="http://wpaam.com/support" target="_blank" class="aam-icon aam-icon-medium aam-icon-medium-help" aam-tooltip="<?php echo __('Help Forum', 'aam'); ?>">
68
+ <span></span><?php echo __('Help', 'aam'); ?>
69
+ </a>
70
+ <a href="mailto:support@wpaam.com" class="aam-icon aam-icon-medium aam-icon-medium-message" id="aam_message" aam-tooltip="<?php echo __('E-mail Us', 'aam'); ?>">
71
+ <span></span><?php echo __('E-mail Us', 'aam'); ?>
72
+ </a>
73
+ <a href="http://wordpress.org/support/view/plugin-reviews/advanced-access-manager" target="_blank" class="aam-icon aam-icon-medium aam-icon-medium-star" aam-tooltip="<?php echo __('Rate AAM', 'aam'); ?>">
74
+ <span></span><?php echo __('Rate Us', 'aam'); ?>
75
+ </a>
76
  </div>
77
  </div>
78
  </div>
application/view/tmpl/extension.phtml CHANGED
@@ -169,10 +169,16 @@
169
  <span><?php echo __('Connect with AAM', 'aam'); ?></span>
170
  </h3>
171
  <div class="inside">
172
- <div id="misc-publishing-actions" class="cpanel">
173
- <a href="https://twitter.com/wpaam" class="cpanel-item cpanel-item-twitter" aam-tooltip="Follow @wpaam" target="_blank">Follow</a>
174
- <a href="mailto:support@wpaam.com" class="cpanel-item cpanel-item-message" aam-tooltip="Send Us Email">Send Message</a>
175
- <a href="http://wpaam.com" class="cpanel-item cpanel-item-website" aam-tooltip="Visit Us" target="_blank">Website</a>
 
 
 
 
 
 
176
  </div>
177
  </div>
178
  </div>
169
  <span><?php echo __('Connect with AAM', 'aam'); ?></span>
170
  </h3>
171
  <div class="inside">
172
+ <div class="large-icons-row">
173
+ <a href="https://twitter.com/wpaam" class="aam-icon aam-icon-large aam-icon-large-twitter" aam-tooltip="Follow @wpaam" target="_blank">
174
+ <span></span><?php echo __('Follow Us', 'aam'); ?>
175
+ </a>
176
+ <a href="mailto:support@wpaam.com" class="aam-icon aam-icon-large aam-icon-large-message" aam-tooltip="Send Us Email">
177
+ <span></span><?php echo __('Send Message', 'aam'); ?>
178
+ </a>
179
+ <a href="http://wpaam.com" class="aam-icon aam-icon-large aam-icon-large-link" aam-tooltip="Visit Us" target="_blank">
180
+ <span></span><?php echo __('Website', 'aam'); ?>
181
+ </a>
182
  </div>
183
  </div>
184
  </div>
application/view/tmpl/manager.phtml CHANGED
@@ -59,16 +59,9 @@
59
  <span><?php echo __('Control Panel', 'aam'); ?></span>
60
  </h3>
61
  <div class="inside">
62
- <div class="cpanel-major">
63
- <a href="#" class="cpanel-item cpanel-item-restore" id="aam_roleback" aam-tooltip="<?php echo __('Restore Default', 'aam'); ?>"><?php echo __('Default', 'aam'); ?></a>
64
- <a href="#" class="cpanel-item cpanel-item-save" id="aam_save" ><?php echo __('Save', 'aam'); ?></a>
65
- </div>
66
- <div class="cpanel-minor">
67
- <a href="https://twitter.com/wpaam" target="_blank" class="cpanel-item cpanel-item-twitter" id="aam_twitter" aam-tooltip="<?php echo __('Follow @wpaam', 'aam'); ?>"><?php echo __('Follow', 'aam'); ?></a>
68
- <a href="http://wpaam.com/support" target="_blank" class="cpanel-item cpanel-item-help" id="aam_help" aam-tooltip="<?php echo __('Help Forum', 'aam'); ?>"><?php echo __('Help', 'aam'); ?></a>
69
- <a href="#" class="cpanel-item cpanel-item-message" id="aam_message" aam-tooltip="<?php echo __('E-mail Us', 'aam'); ?>"><?php echo __('E-mail Us', 'aam'); ?></a>
70
- <a href="http://wordpress.org/support/view/plugin-reviews/advanced-access-manager" target="_blank" class="cpanel-item cpanel-item-star" aam-tooltip="<?php echo __('Rate AAM', 'aam'); ?>"><?php echo __('Rate Us', 'aam'); ?></a>
71
  </div>
 
72
  <div class="aam-metabox-loader"></div>
73
  </div>
74
  <div id="restore_dialog" class="aam-dialog" title="<?php echo __('Undo Change', 'aam'); ?>">
59
  <span><?php echo __('Control Panel', 'aam'); ?></span>
60
  </h3>
61
  <div class="inside">
62
+ <div class="large-icons-row" id="cpanel_major">
 
 
 
 
 
 
 
 
63
  </div>
64
+ <div class="medium-icons-row" id="cpanel_minor"></div>
65
  <div class="aam-metabox-loader"></div>
66
  </div>
67
  <div id="restore_dialog" class="aam-dialog" title="<?php echo __('Undo Change', 'aam'); ?>">
application/view/tmpl/metabox.phtml CHANGED
@@ -12,8 +12,8 @@
12
  <div class="metabox-top-action-link">
13
  <input type="text" class="link-text" id="metabox_link" />
14
  </div>
15
- <a href="#" class="aam-icon aam-icon-medium aam-icon-add" id="retrieve_url" aam-tooltip="<?php echo __('Retrieve Metaboxes From Link', 'aam') ;?>"><span></span></a>
16
- <a href="#" class="aam-icon aam-icon-medium aam-icon-refresh" id="refresh_metaboxes" aam-tooltip="<?php echo __('Refresh the List', 'aam') ;?>"><span></span></a>
17
  <br class="clear" />
18
  </div>
19
  <div class="aam-metabox-loader"></div>
12
  <div class="metabox-top-action-link">
13
  <input type="text" class="link-text" id="metabox_link" />
14
  </div>
15
+ <a href="#" class="aam-icon aam-icon-medium aam-icon-medium-add" id="retrieve_url" aam-tooltip="<?php echo __('Retrieve Metaboxes From Link', 'aam') ;?>"><span></span></a>
16
+ <a href="#" class="aam-icon aam-icon-medium aam-icon-medium-refresh" id="refresh_metaboxes" aam-tooltip="<?php echo __('Refresh the List', 'aam') ;?>"><span></span></a>
17
  <br class="clear" />
18
  </div>
19
  <div class="aam-metabox-loader"></div>
application/view/user.php CHANGED
@@ -124,8 +124,7 @@ class aam_View_User extends aam_View_Abstract {
124
  * @access public
125
  */
126
  public function block() {
127
- if ($this->isManagable($this->getSubject()->getUser())
128
- && $this->getSubject()->block()){
129
  $response = array(
130
  'status' => 'success',
131
  'user_status' => $this->getSubject()->user_status
124
  * @access public
125
  */
126
  public function block() {
127
+ if ($this->isManagable() && $this->getSubject()->block()){
 
128
  $response = array(
129
  'status' => 'success',
130
  'user_status' => $this->getSubject()->user_status
config.php CHANGED
@@ -8,7 +8,7 @@
8
  */
9
 
10
  //AAM Version for Update purpose
11
- define('AAM_VERSION', '2.5.1');
12
 
13
  define('AAM_BASE_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR);
14
 
8
  */
9
 
10
  //AAM Version for Update purpose
11
+ define('AAM_VERSION', '2.7');
12
 
13
  define('AAM_BASE_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR);
14
 
extension/AAM_Secure/extension.php ADDED
@@ -0,0 +1,384 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * ======================================================================
5
+ * LICENSE: This file is subject to the terms and conditions defined in *
6
+ * file 'license.txt', which is part of this source code package. *
7
+ * ======================================================================
8
+ */
9
+
10
+ /**
11
+ * Feature Secure
12
+ *
13
+ * @package AAM
14
+ * @author Vasyl Martyniuk <support@wpaam.com>
15
+ * @copyright Copyright C Vasyl Martyniuk
16
+ * @license GNU General Public License {@link http://www.gnu.org/licenses/}
17
+ */
18
+ class AAM_Secure extends AAM_Core_Extension {
19
+
20
+ /**
21
+ * Unique Feature ID
22
+ */
23
+ const FEATURE_ID = 'secure';
24
+
25
+ /**
26
+ *
27
+ * @var type
28
+ */
29
+ private $_cache = array();
30
+
31
+ /**
32
+ *
33
+ * @var type
34
+ */
35
+ private $_cacheLimit = 1000;
36
+
37
+ /**
38
+ *
39
+ * @var type
40
+ */
41
+ private $_stats = array();
42
+
43
+ /**
44
+ * Constructor
45
+ *
46
+ * @param aam $parent Main AAM object
47
+ *
48
+ * @return void
49
+ *
50
+ * @access public
51
+ */
52
+ public function __construct(aam $parent) {
53
+ parent::__construct($parent);
54
+
55
+ if (is_admin()) {
56
+ //print required JS & CSS
57
+ add_action('admin_print_scripts', array($this, 'printScripts'));
58
+ add_action('admin_print_styles', array($this, 'printStyles'));
59
+ add_action('admin_head', array($this, 'adminHead'));
60
+
61
+ //manager Admin Menu
62
+ if (aam_Core_API::isNetworkPanel()) {
63
+ add_action('network_admin_menu', array($this, 'adminMenu'), 999);
64
+ } else {
65
+ add_action('admin_menu', array($this, 'adminMenu'), 999);
66
+ }
67
+ //manager AAM Ajax Requests
68
+ add_action('wp_ajax_aam_security', array($this, 'ajax'));
69
+ }
70
+
71
+ add_filter('wp_login_errors', array($this, 'loginFailure'), 10, 2);
72
+ add_action('wp_login', array($this, 'login'), 10, 2);
73
+
74
+ //add_filter('authenticate', array($this, 'authenticate'), 999, 3);
75
+ }
76
+
77
+ /**
78
+ *
79
+ * @param type $username
80
+ * @param type $user
81
+ */
82
+ public function login($username, $user) {
83
+ $this->_cache = aam_Core_API::getBlogOption(
84
+ 'aam_security_login_cache', array()
85
+ );
86
+ $ip = aam_Core_Request::server('REMOTE_ADDR');
87
+ if ($this->hasIPCache($ip)) {
88
+ $data = $this->getIPCache($ip);
89
+ $data->attempts = 0; //reset counter
90
+ $this->addIPCache($ip, $data);
91
+ aam_Core_API::updateBlogOption(
92
+ 'aam_security_login_cache', $this->_cache
93
+ );
94
+ }
95
+ }
96
+
97
+ /**
98
+ *
99
+ * @return type
100
+ */
101
+ public function isGeoLookupOn() {
102
+ $geo_lookup = aam_Core_ConfigPress::getParam(
103
+ 'security.login.geo_lookup', 'false'
104
+ );
105
+
106
+ return ($geo_lookup == 'true' ? true : false);
107
+ }
108
+
109
+ /**
110
+ *
111
+ * @return type
112
+ */
113
+ public function isLoginLockoutOn() {
114
+ $login_lock = aam_Core_ConfigPress::getParam(
115
+ 'security.login.lockout', 'false'
116
+ );
117
+
118
+ return ($login_lock == 'true' ? true : false);
119
+ }
120
+
121
+ /**
122
+ *
123
+ * @param type $errors
124
+ * @param type $redirect_to
125
+ */
126
+ public function loginFailure($errors, $redirect_to) {
127
+ $this->_cache = aam_Core_API::getBlogOption(
128
+ 'aam_security_login_cache', array()
129
+ );
130
+ $this->_cacheLimit = aam_Core_ConfigPress::getParam(
131
+ 'security.login.cache_limit', 1000
132
+ );
133
+ if ($this->isGeoLookupOn()) {
134
+ $this->_stats = aam_Core_API::getBlogOption(
135
+ 'aam_security_login_stats', array()
136
+ );
137
+ $info = $this->retrieveGeoData();
138
+ if (!is_null($info)) {
139
+ if (!isset($this->_stats[$info->countryCode])) {
140
+ $this->_stats[$info->countryCode] = array(
141
+ 'failed' => 0
142
+ );
143
+ }
144
+ $this->_stats[$info->countryCode]['failed']++;
145
+ aam_Core_API::updateBlogOption(
146
+ 'aam_security_login_stats', $this->_stats
147
+ );
148
+ }
149
+ }
150
+ if ($this->isLoginLockoutOn()) {
151
+ $this->loginLockout();
152
+ }
153
+ aam_Core_API::updateBlogOption(
154
+ 'aam_security_login_cache', $this->_cache
155
+ );
156
+
157
+ return $errors;
158
+ }
159
+
160
+ /**
161
+ *
162
+ */
163
+ protected function loginLockout() {
164
+ $ip = aam_Core_Request::server('REMOTE_ADDR');
165
+ if ($this->hasIPCache($ip)) {
166
+ $info = $this->getIPCache($ip);
167
+ } else {
168
+ $info = new stdClass;
169
+ }
170
+
171
+ if (!isset($info->attempts)) {
172
+ $info->attempts = 1;
173
+ } else {
174
+ $info->attempts++;
175
+ }
176
+ $threshold = aam_Core_ConfigPress::getParam(
177
+ 'security.login.attempts', 10
178
+ );
179
+ if ($info->attempts >= $threshold) {
180
+ $action = aam_Core_ConfigPress::getParam(
181
+ 'security.login.attempt_failure', 'slowdown'
182
+ );
183
+ switch ($action) {
184
+ case 'slowdown':
185
+ $time = aam_Core_ConfigPress::getParam(
186
+ 'security.login.slowdown_time', '5'
187
+ );
188
+ sleep(intval($time));
189
+ break;
190
+
191
+ case 'die':
192
+ wp_die(aam_Core_ConfigPress::getParam(
193
+ 'security.login.die_message', 'You are not allowed to login'
194
+ ));
195
+ break;
196
+
197
+ default:
198
+ break;
199
+ }
200
+ }
201
+ }
202
+
203
+ /**
204
+ *
205
+ * @return null
206
+ */
207
+ protected function retrieveGeoData() {
208
+ $ip = aam_Core_Request::server('REMOTE_ADDR');
209
+ if ($this->hasIPCache($ip)) {
210
+ $location = $this->getIPCache($ip);
211
+ } else {
212
+ $service = aam_Core_ConfigPress::getParam(
213
+ 'security.login.geoip.service', 'FreeGeoIP'
214
+ );
215
+ $filename = dirname(__FILE__) . '/geoip/' . strtolower($service) . '.php';
216
+
217
+ if (file_exists($filename)) {
218
+ require_once($filename);
219
+ $location = call_user_func("{$service}::query", $ip);
220
+ $this->addIPCache($ip, $location);
221
+ } else {
222
+ $location = null;
223
+ }
224
+ }
225
+
226
+ return $location;
227
+ }
228
+
229
+ /**
230
+ *
231
+ * @param type $ip
232
+ * @return type
233
+ */
234
+ protected function hasIPCache($ip) {
235
+ return (isset($this->_cache[$ip]) ? true : false);
236
+ }
237
+
238
+ /**
239
+ *
240
+ * @param type $ip
241
+ * @return type
242
+ */
243
+ protected function getIPCache($ip) {
244
+ return ($this->hasIPCache($ip) ? $this->_cache[$ip] : null);
245
+ }
246
+
247
+ /**
248
+ *
249
+ * @param type $ip
250
+ * @param type $data
251
+ */
252
+ protected function addIPCache($ip, $data) {
253
+ if (!is_null($data)) {
254
+ if ((count($this->_cache) >= $this->_cacheLimit) && !isset($this->_cache[$ip])) {
255
+ array_shift($this->_cache);
256
+ }
257
+ $this->_cache[$ip] = $data;
258
+ }
259
+ }
260
+
261
+ /**
262
+ * Print necessary styles
263
+ *
264
+ * @return void
265
+ *
266
+ * @access public
267
+ */
268
+ public function printStyles() {
269
+ if ($this->isSecurityScreen()) {
270
+ wp_enqueue_style('dashboard');
271
+ wp_enqueue_style('global');
272
+ wp_enqueue_style('wp-admin');
273
+ wp_enqueue_style('aam-ui-style', AAM_MEDIA_URL . 'css/jquery-ui.css');
274
+ wp_enqueue_style('aam-common-style', AAM_MEDIA_URL . 'css/common.css');
275
+ wp_enqueue_style('aam-security-style', AAM_SECURITY_BASE_URL . '/stylesheet/security.css');
276
+ if ($this->isGeoLookupOn()) {
277
+ wp_enqueue_style('aam-datatable', AAM_MEDIA_URL . 'css/jquery.dt.css');
278
+ wp_enqueue_style('aam-country-flags', AAM_SECURITY_BASE_URL . '/stylesheet/flags32.css');
279
+ }
280
+ }
281
+ }
282
+
283
+ /**
284
+ * Print necessary scripts
285
+ *
286
+ * @return void
287
+ *
288
+ * @access public
289
+ */
290
+ public function printScripts() {
291
+ if ($this->isSecurityScreen()) {
292
+ wp_enqueue_script('postbox');
293
+ wp_enqueue_script('dashboard');
294
+ if ($this->isGeoLookupOn()) {
295
+ wp_enqueue_script('aam-datatable', AAM_MEDIA_URL . 'js/jquery.dt.js');
296
+ wp_enqueue_script('google-jsapi', 'https://www.google.com/jsapi');
297
+ }
298
+ wp_enqueue_script('aam-security', AAM_SECURITY_BASE_URL . '/javascript/security.js');
299
+ $localization = array(
300
+ 'nonce' => wp_create_nonce('aam_ajax'),
301
+ 'ajaxurl' => admin_url('admin-ajax.php'),
302
+ );
303
+ wp_localize_script('aam-security', 'aamLocal', $localization);
304
+ }
305
+ }
306
+
307
+ /**
308
+ *
309
+ */
310
+ public function adminHead() {
311
+ if ($this->isSecurityScreen() && $this->isGeoLookupOn()) {
312
+ echo '<script type="text/javascript">';
313
+ echo file_get_contents(__DIR__ . '/javascript/loader.js');
314
+ echo '</script>';
315
+ }
316
+ }
317
+
318
+ /**
319
+ *
320
+ * @return type
321
+ */
322
+ public function isSecurityScreen() {
323
+ return (aam_Core_Request::get('page') == 'aam-security' ? true : false);
324
+ }
325
+
326
+ /**
327
+ * Register Admin Menu
328
+ *
329
+ * @return void
330
+ *
331
+ * @access public
332
+ */
333
+ public function adminMenu() {
334
+ //register submenus
335
+ add_submenu_page(
336
+ 'aam', __('Security', 'aam'), __('Security', 'aam'), aam_Core_ConfigPress::getParam(
337
+ 'aam.page.security.capability', 'administrator'
338
+ ), 'aam-security', array($this, 'content')
339
+ );
340
+ }
341
+
342
+ /**
343
+ *
344
+ */
345
+ public function content() {
346
+ require_once(dirname(__FILE__) . '/security.php');
347
+ $security = new aam_View_Security();
348
+ echo $security->run();
349
+ }
350
+
351
+ public function ajax() {
352
+ check_ajax_referer('aam_ajax');
353
+
354
+ //clean buffer to make sure that nothing messing around with system
355
+ while (@ob_end_clean());
356
+
357
+ //process ajax request
358
+ try {
359
+ require_once(dirname(__FILE__) . '/security.php');
360
+ $model = new aam_View_Security();
361
+ echo $model->processAjax();
362
+ } catch (Exception $e) {
363
+ echo '-1';
364
+ }
365
+ die();
366
+ }
367
+
368
+ /**
369
+ *
370
+ * @param type $user
371
+ * @param type $username
372
+ * @param type $password
373
+ * @return type
374
+ */
375
+ public function authenticate($user, $username, $password) {
376
+ if (!is_wp_error($user)) {
377
+ $login_history = get_user_meta($user->ID, 'aam_login_history', true);
378
+ $ip = aam_Core_Request::server('REMOTE_ADDR');
379
+ }
380
+
381
+ return $user;
382
+ }
383
+
384
+ }
extension/AAM_Secure/geoip/freegeoip.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * ======================================================================
4
+ * LICENSE: This file is subject to the terms and conditions defined in *
5
+ * file 'license.txt', which is part of this source code package. *
6
+ * ======================================================================
7
+ */
8
+
9
+ require_once(dirname(__FILE__) . '/geoip.php');
10
+
11
+ class FreeGeoIP extends GeoIP {
12
+
13
+ public static function query($ip) {
14
+ $response = aam_Core_API::cURL('http://freegeoip.net/xml/' . $ip, false, true);
15
+ if ($response['status'] == 'success') {
16
+ $data = simplexml_load_string($response['content']);
17
+ $geodata = (object) array(
18
+ 'countryCode' => (string) $data->CountryCode,
19
+ 'countryName' => (string) $data->CountryName,
20
+ 'region' => (string) $data->RegionCode,
21
+ 'city' => (string) $data->City,
22
+ 'zip' => (string) $data->ZipCode
23
+ );
24
+ } else {
25
+ $geodata = null;
26
+ }
27
+
28
+ return $geodata;
29
+ }
30
+
31
+ }
extension/AAM_Secure/geoip/geoip.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * ======================================================================
4
+ * LICENSE: This file is subject to the terms and conditions defined in *
5
+ * file 'license.txt', which is part of this source code package. *
6
+ * ======================================================================
7
+ */
8
+
9
+ abstract class GeoIP {
10
+
11
+ public static function query($ip) {
12
+
13
+ }
14
+
15
+ }
extension/AAM_Secure/index.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * ======================================================================
5
+ * LICENSE: This file is subject to the terms and conditions defined in *
6
+ * file 'license.txt', which is part of this source code package. *
7
+ * ======================================================================
8
+ */
9
+
10
+ $dirname = basename(dirname(__FILE__));
11
+ define('AAM_SECURITY_BASE_URL', AAM_BASE_URL . 'extension/' . $dirname);
12
+
13
+
14
+ //load the Extension Controller
15
+ require_once dirname(__FILE__) . '/extension.php';
16
+
17
+ return new AAM_Secure($this->getParent());
extension/AAM_Secure/javascript/loader.js ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * ======================================================================
3
+ * LICENSE: This file is subject to the terms and conditions defined in *
4
+ * file 'license.txt', which is part of this source code package. *
5
+ * ======================================================================
6
+ */
7
+
8
+ google.load('visualization', '1', {'packages': ['geochart']});
9
+ google.setOnLoadCallback(drawRegionsMap);
10
+
11
+ function drawRegionsMap() {
12
+ jQuery.ajax(aamLocal.ajaxurl, {
13
+ type: 'POST',
14
+ dataType: 'json',
15
+ data: {
16
+ action: 'aam_security',
17
+ sub_action: 'map_data',
18
+ _ajax_nonce: aamLocal.nonce
19
+ },
20
+ success: function(response) {
21
+ var list = new Array();
22
+ list.push(['Country', 'Failed Attempts']);
23
+ for (var i in response.list) {
24
+ list.push(response.list[i]);
25
+ }
26
+ var data = google.visualization.arrayToDataTable(list);
27
+
28
+ var options = {
29
+ colorAxis: {colors: ['#4374e0', '#e7711c']} // orange to blue
30
+ };
31
+ var chart = new google.visualization.GeoChart(
32
+ document.getElementById('geo_map')
33
+ );
34
+ chart.draw(data, options);
35
+ },
36
+ failure: function() {
37
+
38
+ }
39
+ });
40
+
41
+ }
extension/AAM_Secure/javascript/security.js ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * ======================================================================
3
+ * LICENSE: This file is subject to the terms and conditions defined in *
4
+ * file 'license.txt', which is part of this source code package. *
5
+ * ======================================================================
6
+ */
7
+
8
+ function AAMSecurity() {
9
+
10
+ }
11
+
12
+ AAMSecurity.prototype.init = function() {
13
+ var _this = this;
14
+
15
+ if (jQuery('#country_list').length) {
16
+ jQuery('#country_list').dataTable({
17
+ sDom: "t",
18
+ bAutoWidth: false,
19
+ bSort: false,
20
+ aoColumnDefs: [
21
+ {
22
+ sClass: 'center',
23
+ aTargets: [1]
24
+ }
25
+ ]
26
+ });
27
+ }
28
+
29
+ jQuery('.aam-icon', '.large-icons-row').each(function(){
30
+ jQuery(this).bind('click', function(){
31
+ _this.switchMode(jQuery(this).attr('mode'));
32
+ });
33
+ });
34
+ jQuery('#setting_trigger_inline').bind('click', function(event){
35
+ event.preventDefault();
36
+ _this.switchMode('settings');
37
+ });
38
+ };
39
+
40
+ AAMSecurity.prototype.switchMode = function(mode) {
41
+ jQuery('.mode-container').hide();
42
+ jQuery('#' + mode + '_mode').show();
43
+ };
44
+
45
+ jQuery(document).ready(function() {
46
+ var security = new AAMSecurity();
47
+ security.init();
48
+ });
extension/AAM_Secure/security.php ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * ======================================================================
5
+ * LICENSE: This file is subject to the terms and conditions defined in *
6
+ * file 'license.txt', which is part of this source code package. *
7
+ * ======================================================================
8
+ */
9
+
10
+ /**
11
+ *
12
+ * @package AAM
13
+ * @author Vasyl Martyniuk <support@wpaam.com>
14
+ * @copyright Copyright C 2013 Vasyl Martyniuk
15
+ * @license GNU General Public License {@link http://www.gnu.org/licenses/}
16
+ */
17
+ class aam_View_Security extends aam_View_Abstract {
18
+
19
+ /**
20
+ * Run the Manager
21
+ *
22
+ * @return string
23
+ *
24
+ * @access public
25
+ */
26
+ public function run() {
27
+ return $this->loadTemplate(dirname(__FILE__) . '/view/security.phtml');
28
+ }
29
+
30
+ /**
31
+ *
32
+ * @return type
33
+ */
34
+ public function processAjax() {
35
+ switch (aam_Core_Request::post('sub_action')) {
36
+ case 'map_data':
37
+ $response = $this->getMapData();
38
+ break;
39
+
40
+ default:
41
+ $response = json_encode(array('status' => 'failure'));
42
+ break;
43
+ }
44
+
45
+ return $response;
46
+ }
47
+
48
+ protected function getMapData() {
49
+ $stats = aam_Core_API::getBlogOption(
50
+ 'aam_security_login_stats', array()
51
+ );
52
+ $list = array();
53
+ foreach($stats as $country => $data){
54
+ $list[] = array($country, $data['failed']);
55
+ }
56
+ return json_encode(
57
+ array('list' => $list)
58
+ );
59
+ }
60
+
61
+ /**
62
+ *
63
+ * @return type
64
+ */
65
+ public function isGeoLookupOn() {
66
+ $geo_lookup = aam_Core_ConfigPress::getParam(
67
+ 'security.login.geo_lookup', 'false'
68
+ );
69
+
70
+ return ($geo_lookup == 'true' ? true : false);
71
+ }
72
+
73
+ /**
74
+ *
75
+ * @return type
76
+ */
77
+ public function isLoginLockoutOn() {
78
+ $login_lock = aam_Core_ConfigPress::getParam(
79
+ 'security.login.lockout', 'false'
80
+ );
81
+
82
+ return ($login_lock == 'true' ? true : false);
83
+ }
84
+
85
+ }
extension/AAM_Secure/stylesheet/flags32.css ADDED
@@ -0,0 +1,260 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .flag{
2
+ display:block;
3
+ height:32px;
4
+ min-width:32px;
5
+ vertical-align: middle;
6
+ line-height:32px;
7
+ background:url(images/flags32.png) no-repeat 0 center;
8
+ padding-left: 36px;
9
+ }
10
+ ._African_Union{background-position:0 -32px;}
11
+ ._Arab_League{background-position:0 -64px;}
12
+ ._ASEAN{background-position:0 -96px;}
13
+ ._CARICOM{background-position:0 -128px;}
14
+ ._CIS{background-position:0 -160px;}
15
+ ._Commonwealth{background-position:0 -192px;}
16
+ ._England{background-position:0 -224px;}
17
+ ._European_Union, .eu{background-position:0 -256px;}
18
+ ._Islamic_Conference{background-position:0 -288px;}
19
+ ._Kosovo{background-position:0 -320px;}
20
+ ._NATO{background-position:0 -352px;}
21
+ ._Northern_Cyprus{background-position:0 -384px;}
22
+ ._Northern_Ireland{background-position:0 -416px;}
23
+ ._Olimpic_Movement{background-position:0 -448px;}
24
+ ._OPEC{background-position:0 -480px;}
25
+ ._Red_Cross{background-position:0 -512px;}
26
+ ._Scotland{background-position:0 -544px;}
27
+ ._Somaliland{background-position:0 -576px;}
28
+ ._Tibet{background-position:0 -608px;}
29
+ ._United_Nations{background-position:0 -640px;}
30
+ ._Wales{background-position:0 -672px;}
31
+ .ad{background-position:0 -704px;}
32
+ .ae{background-position:0 -736px;}
33
+ .af{background-position:0 -768px;}
34
+ .ag{background-position:0 -800px;}
35
+ .ai{background-position:0 -832px;}
36
+ .al{background-position:0 -864px;}
37
+ .am{background-position:0 -896px;}
38
+ .ao{background-position:0 -928px;}
39
+ .aq{background-position:0 -960px;}
40
+ .ar{background-position:0 -992px;}
41
+ .as{background-position:0 -1024px;}
42
+ .at{background-position:0 -1056px;}
43
+ .au{background-position:0 -1088px;}
44
+ .aw{background-position:0 -1120px;}
45
+ .ax{background-position:0 -1152px;}
46
+ .az{background-position:0 -1184px;}
47
+ .ba{background-position:0 -1216px;}
48
+ .bb{background-position:0 -1248px;}
49
+ .bd{background-position:0 -1280px;}
50
+ .be{background-position:0 -1312px;}
51
+ .bf{background-position:0 -1344px;}
52
+ .bg{background-position:0 -1376px;}
53
+ .bh{background-position:0 -1408px;}
54
+ .bi{background-position:0 -1440px;}
55
+ .bj{background-position:0 -1472px;}
56
+ .bm{background-position:0 -1504px;}
57
+ .bn{background-position:0 -1536px;}
58
+ .bo{background-position:0 -1568px;}
59
+ .br{background-position:0 -1600px;}
60
+ .bs{background-position:0 -1632px;}
61
+ .bt{background-position:0 -1664px;}
62
+ .bw{background-position:0 -1696px;}
63
+ .by{background-position:0 -1728px;}
64
+ .bz{background-position:0 -1760px;}
65
+ .ca{background-position:0 -1792px;}
66
+ .cd{background-position:0 -1824px;}
67
+ .cf{background-position:0 -1856px;}
68
+ .cg{background-position:0 -1888px;}
69
+ .ch{background-position:0 -1920px;}
70
+ .ci{background-position:0 -1952px;}
71
+ .ck{background-position:0 -1984px;}
72
+ .cl{background-position:0 -2016px;}
73
+ .cm{background-position:0 -2048px;}
74
+ .cn{background-position:0 -2080px;}
75
+ .co{background-position:0 -2112px;}
76
+ .cr{background-position:0 -2144px;}
77
+ .cu{background-position:0 -2176px;}
78
+ .cv{background-position:0 -2208px;}
79
+ .cy{background-position:0 -2240px;}
80
+ .cz{background-position:0 -2272px;}
81
+ .de{background-position:0 -2304px;}
82
+ .dj{background-position:0 -2336px;}
83
+ .dk{background-position:0 -2368px;}
84
+ .dm{background-position:0 -2400px;}
85
+ .do{background-position:0 -2432px;}
86
+ .dz{background-position:0 -2464px;}
87
+ .ec{background-position:0 -2496px;}
88
+ .ee{background-position:0 -2528px;}
89
+ .eg{background-position:0 -2560px;}
90
+ .eh{background-position:0 -2592px;}
91
+ .er{background-position:0 -2624px;}
92
+ .es{background-position:0 -2656px;}
93
+ .et{background-position:0 -2688px;}
94
+ .fi{background-position:0 -2720px;}
95
+ .fj{background-position:0 -2752px;}
96
+ .fm{background-position:0 -2784px;}
97
+ .fo{background-position:0 -2816px;}
98
+ .fr{background-position:0 -2848px;}
99
+ .bl, .cp, .mf, .yt{background-position:0 -2848px;}
100
+ .ga{background-position:0 -2880px;}
101
+ .gb{background-position:0 -2912px;}
102
+ .sh{background-position:0 -2912px;}
103
+ .gd{background-position:0 -2944px;}
104
+ .ge{background-position:0 -2976px;}
105
+ .gg{background-position:0 -3008px;}
106
+ .gh{background-position:0 -3040px;}
107
+ .gi{background-position:0 -3072px;}
108
+ .gl{background-position:0 -3104px;}
109
+ .gm{background-position:0 -3136px;}
110
+ .gn{background-position:0 -3168px;}
111
+ .gp{background-position:0 -3200px;}
112
+ .gq{background-position:0 -3232px;}
113
+ .gr{background-position:0 -3264px;}
114
+ .gt{background-position:0 -3296px;}
115
+ .gu{background-position:0 -3328px;}
116
+ .gw{background-position:0 -3360px;}
117
+ .gy{background-position:0 -3392px;}
118
+ .hk{background-position:0 -3424px;}
119
+ .hn{background-position:0 -3456px;}
120
+ .hr{background-position:0 -3488px;}
121
+ .ht{background-position:0 -3520px;}
122
+ .hu{background-position:0 -3552px;}
123
+ .id{background-position:0 -3584px;}
124
+ .mc{background-position:0 -3584px;}
125
+ .ie{background-position:0 -3616px;}
126
+ .il{background-position:0 -3648px;}
127
+ .im{background-position:0 -3680px;}
128
+ .in{background-position:0 -3712px;}
129
+ .iq{background-position:0 -3744px;}
130
+ .ir{background-position:0 -3776px;}
131
+ .is{background-position:0 -3808px;}
132
+ .it{background-position:0 -3840px;}
133
+ .je{background-position:0 -3872px;}
134
+ .jm{background-position:0 -3904px;}
135
+ .jo{background-position:0 -3936px;}
136
+ .jp{background-position:0 -3968px;}
137
+ .ke{background-position:0 -4000px;}
138
+ .kg{background-position:0 -4032px;}
139
+ .kh{background-position:0 -4064px;}
140
+ .ki{background-position:0 -4096px;}
141
+ .km{background-position:0 -4128px;}
142
+ .kn{background-position:0 -4160px;}
143
+ .kp{background-position:0 -4192px;}
144
+ .kr{background-position:0 -4224px;}
145
+ .kw{background-position:0 -4256px;}
146
+ .ky{background-position:0 -4288px;}
147
+ .kz{background-position:0 -4320px;}
148
+ .la{background-position:0 -4352px;}
149
+ .lb{background-position:0 -4384px;}
150
+ .lc{background-position:0 -4416px;}
151
+ .li{background-position:0 -4448px;}
152
+ .lk{background-position:0 -4480px;}
153
+ .lr{background-position:0 -4512px;}
154
+ .ls{background-position:0 -4544px;}
155
+ .lt{background-position:0 -4576px;}
156
+ .lu{background-position:0 -4608px;}
157
+ .lv{background-position:0 -4640px;}
158
+ .ly{background-position:0 -4672px;}
159
+ .ma{background-position:0 -4704px;}
160
+ .md{background-position:0 -4736px;}
161
+ .me{background-position:0 -4768px;}
162
+ .mg{background-position:0 -4800px;}
163
+ .mh{background-position:0 -4832px;}
164
+ .mk{background-position:0 -4864px;}
165
+ .ml{background-position:0 -4896px;}
166
+ .mm{background-position:0 -4928px;}
167
+ .mn{background-position:0 -4960px;}
168
+ .mo{background-position:0 -4992px;}
169
+ .mq{background-position:0 -5024px;}
170
+ .mr{background-position:0 -5056px;}
171
+ .ms{background-position:0 -5088px;}
172
+ .mt{background-position:0 -5120px;}
173
+ .mu{background-position:0 -5152px;}
174
+ .mv{background-position:0 -5184px;}
175
+ .mw{background-position:0 -5216px;}
176
+ .mx{background-position:0 -5248px;}
177
+ .my{background-position:0 -5280px;}
178
+ .mz{background-position:0 -5312px;}
179
+ .na{background-position:0 -5344px;}
180
+ .nc{background-position:0 -5376px;}
181
+ .ne{background-position:0 -5408px;}
182
+ .ng{background-position:0 -5440px;}
183
+ .ni{background-position:0 -5472px;}
184
+ .nl{background-position:0 -5504px;}
185
+ .bq{background-position:0 -5504px;}
186
+ .no{background-position:0 -5536px;}
187
+ .bv, .nq, .sj{background-position:0 -5536px;}
188
+ .np{background-position:0 -5568px;}
189
+ .nr{background-position:0 -5600px;}
190
+ .nz{background-position:0 -5632px;}
191
+ .om{background-position:0 -5664px;}
192
+ .pa{background-position:0 -5696px;}
193
+ .pe{background-position:0 -5728px;}
194
+ .pf{background-position:0 -5760px;}
195
+ .pg{background-position:0 -5792px;}
196
+ .ph{background-position:0 -5824px;}
197
+ .pk{background-position:0 -5856px;}
198
+ .pl{background-position:0 -5888px;}
199
+ .pr{background-position:0 -5920px;}
200
+ .ps{background-position:0 -5952px;}
201
+ .pt{background-position:0 -5984px;}
202
+ .pw{background-position:0 -6016px;}
203
+ .py{background-position:0 -6048px;}
204
+ .qa{background-position:0 -6080px;}
205
+ .re{background-position:0 -6112px;}
206
+ .ro{background-position:0 -6144px;}
207
+ .rs{background-position:0 -6176px;}
208
+ .ru{background-position:0 -6208px;}
209
+ .rw{background-position:0 -6240px;}
210
+ .sa{background-position:0 -6272px;}
211
+ .sb{background-position:0 -6304px;}
212
+ .sc{background-position:0 -6336px;}
213
+ .sd{background-position:0 -6368px;}
214
+ .se{background-position:0 -6400px;}
215
+ .sg{background-position:0 -6432px;}
216
+ .si{background-position:0 -6464px;}
217
+ .sk{background-position:0 -6496px;}
218
+ .sl{background-position:0 -6528px;}
219
+ .sm{background-position:0 -6560px;}
220
+ .sn{background-position:0 -6592px;}
221
+ .so{background-position:0 -6624px;}
222
+ .sr{background-position:0 -6656px;}
223
+ .st{background-position:0 -6688px;}
224
+ .sv{background-position:0 -6720px;}
225
+ .sy{background-position:0 -6752px;}
226
+ .sz{background-position:0 -6784px;}
227
+ .tc{background-position:0 -6816px;}
228
+ .td{background-position:0 -6848px;}
229
+ .tg{background-position:0 -6880px;}
230
+ .th{background-position:0 -6912px;}
231
+ .tj{background-position:0 -6944px;}
232
+ .tl{background-position:0 -6976px;}
233
+ .tm{background-position:0 -7008px;}
234
+ .tn{background-position:0 -7040px;}
235
+ .to{background-position:0 -7072px;}
236
+ .tr{background-position:0 -7104px;}
237
+ .tt{background-position:0 -7136px;}
238
+ .tv{background-position:0 -7168px;}
239
+ .tw{background-position:0 -7200px;}
240
+ .tz{background-position:0 -7232px;}
241
+ .ua{background-position:0 -7264px;}
242
+ .ug{background-position:0 -7296px;}
243
+ .us{background-position:0 -7328px;}
244
+ .uy{background-position:0 -7360px;}
245
+ .uz{background-position:0 -7392px;}
246
+ .va{background-position:0 -7424px;}
247
+ .vc{background-position:0 -7456px;}
248
+ .ve{background-position:0 -7488px;}
249
+ .vg{background-position:0 -7520px;}
250
+ .vi{background-position:0 -7552px;}
251
+ .vn{background-position:0 -7584px;}
252
+ .vu{background-position:0 -7616px;}
253
+ .ws{background-position:0 -7648px;}
254
+ .ye{background-position:0 -7680px;}
255
+ .za{background-position:0 -7712px;}
256
+ .zm{background-position:0 -7744px;}
257
+ .zw{background-position:0 -7776px;}
258
+ .sx{background-position:0 -7808px;}
259
+ .cw{background-position:0 -7840px;}
260
+ .ss{background-position:0 -7872px;}
extension/AAM_Secure/stylesheet/images/deny.png ADDED
Binary file
extension/AAM_Secure/stylesheet/images/flags32.png ADDED
Binary file
extension/AAM_Secure/stylesheet/images/large-iconset.png ADDED
Binary file
extension/AAM_Secure/stylesheet/images/restriction.png ADDED
Binary file
extension/AAM_Secure/stylesheet/security.css ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * ======================================================================
3
+ * LICENSE: This file is subject to the terms and conditions defined in *
4
+ * file 'license.txt', which is part of this source code package. *
5
+ * ======================================================================
6
+ */
7
+
8
+ #aam_form{
9
+ position: relative;
10
+ }
11
+
12
+ .clear{
13
+ line-height: 0;
14
+ font-size: 0;
15
+ padding: 0;
16
+ margin: 0;
17
+ clear: both;
18
+ }
19
+
20
+ .main-inside{
21
+ position: relative;
22
+ min-height: 200px;
23
+ }
24
+
25
+ .aam-main-loader{
26
+ position: absolute;
27
+ top: 0px;
28
+ left: 0px;
29
+ width: 100%;
30
+ height: 100%;
31
+ background: transparent url('images/main-loader.gif') no-repeat center;
32
+ }
33
+
34
+ .aam-icon-large span {
35
+ background-image: url('images/large-iconset.png');
36
+ }
37
+
38
+ .aam-icon-large-glob span{
39
+ background-position: 0 0;
40
+ }
41
+
42
+ .aam-icon-large-glob:hover span{
43
+ background-position: 0 -48px;
44
+ }
45
+
46
+ .aam-icon-large-settings span{
47
+ background-position: -48px 0;
48
+ }
49
+
50
+ .aam-icon-large-settings:hover span{
51
+ background-position: -48px -48px;
52
+ }
53
+
54
+
55
+ .restriction{
56
+ background: transparent url('images/restriction.png') no-repeat center;
57
+ }
58
+
59
+ .deny{
60
+ background: transparent url('images/deny.png') no-repeat center;
61
+ }
62
+
63
+ .center{
64
+ text-align: center;
65
+ }
66
+
67
+ .feature-off-notice{
68
+ width: 90%;
69
+ text-align: center;
70
+ padding: 10px 0;
71
+ font-size: 1.1em;
72
+ margin: 5px auto 0 auto;
73
+ border: 1px solid #FFAAAA;
74
+ }
75
+
76
+ .feature-off-notice a{
77
+ text-decoration: none;
78
+ color: #257DA6;
79
+ }
80
+
81
+ #settings_mode{
82
+ text-align: justify;
83
+ padding: 5px 15px;
84
+ }
extension/AAM_Secure/view/security.phtml ADDED
@@ -0,0 +1,156 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * ======================================================================
4
+ * LICENSE: This file is subject to the terms and conditions defined in *
5
+ * file 'license.txt', which is part of this source code package. *
6
+ * ======================================================================
7
+ */
8
+ ?>
9
+ <div class="wrap">
10
+ <div class="postbox-container" style="width:70%;">
11
+ <div class="metabox-holder">
12
+ <div class="meta-box-sortables">
13
+ <div class="postbox">
14
+ <div class="handlediv" title="<?php echo __('Click to toggle', 'aam'); ?>"></div>
15
+ <h3 class="hndle">
16
+ <?php echo __('AAM Security', 'aam'); ?>
17
+ </h3>
18
+ <div class="inside main-inside">
19
+ <div class="mode-container" id="map_mode">
20
+ <?php if ($this->isGeoLookupOn()) { ?>
21
+ <div id="geo_map" style="width: 100%; height: 500px;"></div>
22
+ <?php } else { ?>
23
+ <p class="feature-off-notice">
24
+ The Geo Lookup feature is off. Turn it on with ConfigPress.<br/>
25
+ For more information check <a href="#" id="setting_trigger_inline">Settings</a> tab.
26
+ </p>
27
+ <?php } ?>
28
+ </div>
29
+ <div class="mode-container" id="settings_mode" style="display: none;">
30
+ <p>
31
+ In current version of AAM Security you have to utilize ConfigPress to trigger
32
+ certain features. Please find out below the list of all possible ConfigPress
33
+ settings:
34
+ <pre style="background:#fff;color:#000">
35
+ <span style="color:#05a;font-weight: bold;">[security]</span>
36
+ <span style="color:#00b418">#Geo Lookup feature monitors the location of the user based on IP address.</span>
37
+ <span style="color:#00b418">#By default this feature is deactivated and can be activated by changing.</span>
38
+ <span style="color:#00b418">#the <b>false</b> to <b>true</b>.</span>
39
+ <span style="color:#0100b6;font-weight:700;">login.geo_lookup</span> = <span style="color:#d80800">"false"</span>
40
+ <span style="color:#00b418">#We are using FreeGeoIP.net webservice to retrieve the geo location based on</span>
41
+ <span style="color:#00b418">#IP address. Currently this is the only option but we will extend the list of</span>
42
+ <span style="color:#00b418">#possible options in future releases.</span>
43
+ <span style="color:#0100b6;font-weight:700">login.geoip.service</span> = <span style="color:#d80800">"FreeGeoIP"</span>
44
+ <span style="color:#00b418">#Login lockout feature control the admin login process. This prevent your</span>
45
+ <span style="color:#00b418">#website from being hacked by trying different password combinations.</span>
46
+ <span style="color:#0100b6;font-weight:700">login.lockout</span> = <span style="color:#d80800">"false"</span>
47
+ <span style="color:#00b418">#This setting defines how many attempts user has for entering correct password</span>
48
+ <span style="color:#00b418">#before the <b>attempt failure</b> procedure fires.</span>
49
+ <span style="color:#0100b6;font-weight:700">login.attempts</span> = <span style="color:#d80800">"10"</span>
50
+ <span style="color:#00b418">#Attempt failure procedure is fired after user excided the number of attempts</span>
51
+ <span style="color:#00b418">#to enter correct password. By default the server starts slowdown the each </span>
52
+ <span style="color:#00b418">#new request for 5 seconds. Another possible procedure is <b>die</b>.</span>
53
+ <span style="color:#00b418">#In this case the login process is completely locked for user's IP address.</span>
54
+ <span style="color:#0100b6;font-weight:700">login.attempt_failure</span> = <span style="color:#d80800">"slowdown"</span>
55
+ <span style="color:#00b418">#By default every new login request slows down for 5 seconds.</span>
56
+ <span style="color:#0100b6;font-weight:700">login.slowdown_time</span> = <span style="color:#d80800">"5"</span>
57
+ <span style="color:#00b418">#If <b>attempt failure</b> procedure is <b>die</b>, you can define your own</span>
58
+ <span style="color:#00b418">#custom message that will be shown for locked user.</span>
59
+ <span style="color:#0100b6;font-weight:700">login.die_message</span> = <span style="color:#d80800">"You are not allowed to login"</span>
60
+ <span style="color:#00b418">#To speedup the lookup and lockout feature, all IP addresses are cached to database.</span>
61
+ <span style="color:#00b418">#By default AAM caches up to 1000 records.</span>
62
+ <span style="color:#0100b6;font-weight:700">login.cache_limit</span> = <span style="color:#d80800">"1000"</span>
63
+ </pre>
64
+ </p>
65
+ <p style="font-size: 0.9em;">
66
+ AAM Security is very new but expecting to be one of the biggest features
67
+ in AAM plugin. Currently it can be considered on development stage so some of
68
+ the features might not work the way you expect.<br/>
69
+ We are expecting feedback and recommendations from you how to expend and improve
70
+ AAM Security feature. Please send your thoughts to our email box
71
+ <a href="mailto:support@wpaam.com">support@wpaam.com</a>.
72
+ </p>
73
+ </div>
74
+ </div>
75
+ </div>
76
+ </div>
77
+ </div>
78
+ </div>
79
+
80
+ <?php if (aam_Core_Console::hasIssues()) { ?>
81
+ <div class="postbox-container" style="width:25%; margin-left: 2%;">
82
+ <div class="metabox-holder">
83
+ <div class="meta-box-sortables">
84
+ <div class="postbox">
85
+ <div class="handlediv" title="<?php echo __('Click to toggle', 'aam'); ?>"></div>
86
+ <h3 class="hndle">
87
+ <span><?php echo __('AAM Warnings', 'aam'); ?></span>
88
+ </h3>
89
+ <div class="inside">
90
+ <?php foreach (aam_Core_Console::getWarnings() as $warning) { ?>
91
+ <div class="aam-warning"><span><?php echo $warning; ?></span></div>
92
+ <?php } ?>
93
+ </div>
94
+ </div>
95
+ </div>
96
+ </div>
97
+ </div>
98
+ <?php } ?>
99
+
100
+ <div class="postbox-container" style="width:25%; margin-left: 2%;">
101
+ <div class="metabox-holder" id="control_panel">
102
+ <div class="meta-box-sortables">
103
+ <div class="postbox">
104
+ <div class="handlediv" title="<?php echo __('Click to toggle', 'aam'); ?>"></div>
105
+ <h3 class="hndle">
106
+ <span><?php echo __('Control Panel', 'aam'); ?></span>
107
+ </h3>
108
+ <div class="inside">
109
+ <div class="large-icons-row">
110
+ <a href="#" class="aam-icon aam-icon-large aam-icon-large-glob" mode="map">
111
+ <span></span><?php echo __('Map', 'aam'); ?>
112
+ </a>
113
+ <!--<a href="#" class="cpanel-item cpanel-item-graph" ><?php echo __('Graph', 'aam'); ?></a>-->
114
+ <a href="#" class="aam-icon aam-icon-large aam-icon-large-settings" mode="settings" >
115
+ <span></span><?php echo __('Settings', 'aam'); ?>
116
+ </a>
117
+ </div>
118
+ <div class="medium-icons-row">
119
+ <a href="https://twitter.com/wpaam" target="_blank" class="aam-icon aam-icon-medium aam-icon-medium-twitter" aam-tooltip="<?php echo __('Follow @wpaam', 'aam'); ?>"><span></span><?php echo __('Follow', 'aam'); ?></a>
120
+ <a href="http://wpaam.com/support" target="_blank" class="aam-icon aam-icon-medium aam-icon-medium-help" aam-tooltip="<?php echo __('Help Forum', 'aam'); ?>"><span></span><?php echo __('Help', 'aam'); ?></a>
121
+ <a href="#" class="aam-icon aam-icon-medium aam-icon-medium-message" id="aam_message" aam-tooltip="<?php echo __('E-mail Us', 'aam'); ?>"><span></span><?php echo __('E-mail Us', 'aam'); ?></a>
122
+ <a href="http://wordpress.org/support/view/plugin-reviews/advanced-access-manager" target="_blank" class="aam-icon aam-icon-medium aam-icon-medium-star" aam-tooltip="<?php echo __('Rate AAM', 'aam'); ?>"><span></span><?php echo __('Rate Us', 'aam'); ?></a>
123
+ </div>
124
+ </div>
125
+ </div>
126
+ </div>
127
+ </div>
128
+ </div>
129
+ <?php if (false && $this->isGeoLookupOn()) { ?>
130
+ <div class="postbox-container" style="width:25%; margin-left: 2%;">
131
+ <div class="metabox-holder">
132
+ <div class="meta-box-sortables">
133
+ <div class="postbox">
134
+ <div class="handlediv" title="<?php echo __('Click to toggle', 'aam'); ?>"></div>
135
+ <h3 class="hndle">
136
+ <span><?php echo __('Country Impact List', 'aam'); ?></span>
137
+ </h3>
138
+ <div class="inside">
139
+ <table class="dataTable" id="country_list">
140
+ <thead>
141
+ <tr>
142
+ <th width="80%">Country</th>
143
+ <th>Action</th>
144
+ </tr>
145
+ </thead>
146
+ <tbody>
147
+ </tbody>
148
+ </table>
149
+ </div>
150
+ </div>
151
+ </div>
152
+ </div>
153
+ </div>
154
+ <?php } ?>
155
+ <br class="clear" />
156
+ </div>
media/css/aam.css CHANGED
@@ -5,29 +5,12 @@
5
  * ======================================================================
6
  */
7
 
8
- .aam-beta-version{
9
- margin: 15px 10px;
10
- border: 1px solid #FF8888;
11
- border-radius: 4px;
12
- padding: 4px;
13
- text-align: center;
14
- font-weight: bold;
15
- font-size: 1.1em;
16
- }
17
 
18
  /** GLOBAL AAM STYLES */
19
  #aam_form{
20
  position: relative;
21
  }
22
 
23
- .aam-hidden{
24
- display: none;
25
- }
26
-
27
- .aam-dialog{
28
- display: none;
29
- }
30
-
31
  .aam-asterix{
32
  display: inline-block;
33
  font-size: 0.9em;
@@ -80,190 +63,11 @@
80
  margin: 10px 0px;
81
  }
82
 
83
- .wrap a{
84
- outline: 0;
85
- }
86
-
87
- .aam-tooltip {
88
- display:none;
89
- position:absolute;
90
- border:1px solid #CCCCCC;
91
- background-color: #F5F5F5;
92
- border-radius: 4px;
93
- box-shadow: 0 0 5px #AAAAAA;
94
- padding: 5px 10px;
95
- z-index: 9999;
96
- color: #333333;
97
- font-size: 1em;
98
- max-width: 300px;
99
- left:0px;
100
- top: 0px;
101
- font-weight: bold;
102
- font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
103
- }
104
-
105
- .aam-icon{
106
- text-indent: -9999px;
107
- text-align: center;
108
- background-repeat: no-repeat;
109
- }
110
-
111
- a.aam-icon{
112
- outline: none;
113
- display: inline-block;
114
- }
115
-
116
- .aam-icon span {
117
- content: "";
118
- display: block;
119
- background-repeat: no-repeat;
120
- opacity: 1;
121
- -webkit-transition: opacity 0.5s;
122
- -moz-transition: opacity 0.5s;
123
- -o-transition: opacity 0.5s;
124
- }
125
-
126
- .aam-icon-medium span {
127
- background-image: url('images/common/medium-iconset.png');
128
- width: 24px;
129
- height: 24px;
130
- margin-left: calc(50% - 12px);
131
- margin-left: -moz-calc(50% - 12px);
132
- }
133
-
134
- .aam-icon-medium:hover span {
135
- opacity: 1;
136
- }
137
-
138
- .aam-icon-small span {
139
- background-image: url('images/common/small-iconset.png');
140
- width: 16px;
141
- height: 16px;
142
- margin-left: calc(50% - 8px);
143
- margin-left: -moz-calc(50% - 8px);
144
- }
145
-
146
- .aam-icon-small:hover span{
147
- opacity: 1;
148
- }
149
-
150
- .aam-icon-medium-active{
151
- background-position-y: -24px !important;
152
- }
153
-
154
- .aam-icon-small-active{
155
- background-position-y: -16px !important;
156
- }
157
-
158
- .aam-icon-add span{
159
- background-position: 0 0;
160
- }
161
-
162
- .aam-icon-add:hover span{
163
- background-position: 0 -24px;
164
- }
165
-
166
- .aam-icon-refresh span{
167
- background-position: -24px 0px;
168
- }
169
-
170
- .aam-icon-refresh:hover span{
171
- background-position: -24px -24px;
172
- }
173
-
174
- .aam-icon-filter span{
175
- background-position: -48px 0px;
176
- }
177
-
178
- .aam-icon-filter:hover span{
179
- background-position: -48px -24px;
180
- }
181
-
182
- .aam-icon-copy span{
183
- background-position: -72px 0px;
184
- }
185
-
186
- .aam-icon-copy:hover span{
187
- background-position: -72px -24px;
188
- }
189
-
190
- .aam-icon-restore span{
191
- background-position: -96px 0px;
192
- }
193
-
194
- .aam-icon-restore:hover span{
195
- background-position: -96px -24px;
196
- }
197
-
198
  .aam-medium-loader span{
199
  background-image: url('images/common/medium-loader.gif');
200
  background-position: 0 0 !important;
201
  }
202
 
203
- .aam-icon-manage span{
204
- background-position: 0 0;
205
- }
206
-
207
- .aam-icon-manage:hover span{
208
- background-position: 0 -16px;
209
- }
210
-
211
- .aam-icon-delete span{
212
- background-position: -16px 0;
213
- }
214
-
215
- .aam-icon-delete:hover span{
216
- background-position: -16px -16px;
217
- }
218
-
219
- .aam-icon-pen span{
220
- background-position: -32px 0;
221
- }
222
-
223
- .aam-icon-pen:hover span{
224
- background-position: -32px -16px;
225
- }
226
-
227
- .aam-icon-edit-user span{
228
- background-position: -48px 0;
229
- }
230
-
231
- .aam-icon-edit-user:hover span{
232
- background-position: -48px -16px;
233
- }
234
-
235
- .aam-icon-block span{
236
- background-position: -64px 0;
237
- }
238
-
239
- .aam-icon-block:hover span{
240
- background-position: -64px -16px;
241
- }
242
-
243
- .aam-icon-default span{
244
- background-position: -80px 0;
245
- }
246
-
247
- .aam-icon-default:hover span{
248
- background-position: -80px -16px;
249
- }
250
-
251
- .aam-icon-trash span{
252
- background-position: -96px 0;
253
- }
254
-
255
- .aam-icon-trash:hover span{
256
- background-position: -96px -16px;
257
- }
258
-
259
- .aam-icon-select span{
260
- background-position: -112px 0;
261
- }
262
-
263
- .aam-icon-select:hover span{
264
- background-position: -112px -16px;
265
- }
266
-
267
  .aam-list-top-actions{
268
  float: right;
269
  display: inline-table;
@@ -394,104 +198,6 @@ a.aam-icon{
394
  }
395
 
396
  /** CONTROL PANEL STYLES */
397
- .cpanel-major{
398
- display: table;
399
- width: 100%;
400
- margin-bottom: 5px;
401
- padding-bottom: 5px;
402
- border-bottom: 1px solid #CCCCCC;
403
- }
404
-
405
- .cpanel-major .cpanel-item{
406
- height: 64px;
407
- width: 50%;
408
- display: table-cell;
409
- text-align: center;
410
- vertical-align: bottom;
411
- text-decoration: none;
412
- text-transform: uppercase;
413
- font-size: 10px;
414
- font-weight: bold;
415
- color: #333333;
416
- background-repeat: no-repeat;
417
- background-position: center top;
418
- }
419
-
420
- .cpanel-major .cpanel-item-disabled{
421
- opacity: 0.8;
422
- cursor: none;
423
- pointer-events: none;
424
- text-decoration: line-through;
425
- }
426
-
427
- .cpanel-minor{
428
- display: table;
429
- width: 100%;
430
- margin-top: 10px;
431
- }
432
-
433
- .cpanel-minor .cpanel-item{
434
- height: 40px;
435
- width: 25%;
436
- display: table-cell;
437
- text-align: center;
438
- vertical-align: bottom;
439
- text-decoration: none;
440
- text-transform: uppercase;
441
- font-size: 9px;
442
- font-weight: bold;
443
- color: #333333;
444
- background-repeat: no-repeat;
445
- background-position: center top;
446
- }
447
-
448
- .cpanel-item-restore{
449
- background-image: url('images/cpanel/restore.png');
450
- }
451
-
452
- .cpanel-item-restore:hover{
453
- background-image: url('images/cpanel/restore-active.png');
454
- }
455
-
456
- .cpanel-item-save{
457
- background-image: url('images/cpanel/save.png');
458
- }
459
-
460
- .cpanel-item-save:hover{
461
- background-image: url('images/cpanel/save-active.png');
462
- }
463
-
464
- .cpanel-item-help{
465
- background-image: url('images/cpanel/help-forum.png');
466
- }
467
-
468
- .cpanel-item-help:hover{
469
- background-image: url('images/cpanel/help-forum-active.png');
470
- }
471
-
472
- .cpanel-item-twitter{
473
- background-image: url('images/cpanel/twitter.png');
474
- }
475
-
476
- .cpanel-item-twitter:hover{
477
- background-image: url('images/cpanel/twitter-active.png');
478
- }
479
-
480
- .cpanel-item-message{
481
- background-image: url('images/cpanel/message.png');
482
- }
483
-
484
- .cpanel-item-message:hover{
485
- background-image: url('images/cpanel/message-active.png');
486
- }
487
-
488
- .cpanel-item-star{
489
- background-image: url('images/cpanel/star.png');
490
- }
491
-
492
- .cpanel-item-star:hover{
493
- background-image: url('images/cpanel/star-active.png');
494
- }
495
 
496
  #major-publishing-actions{
497
  margin-top: 5px;
@@ -721,12 +427,12 @@ a.aam-icon{
721
  background-image: url('images/metabox/link-active.png');
722
  }
723
 
724
- .metabox-top-actions .aam-icon-add{
725
  margin-left: 10px;
726
  display: inline-block;
727
  }
728
 
729
- .metabox-top-actions .aam-icon-refresh{
730
  float: right;
731
  display: inline-block;
732
  }
@@ -1147,22 +853,4 @@ a.aam-lock-big{
1147
 
1148
  .event-specifier{
1149
  display:none;
1150
- }
1151
-
1152
- .aam-warning{
1153
- width: 100%;
1154
- height: 40px;
1155
- display: table-row;
1156
- background: transparent url('images/warning.png') no-repeat 2px center;
1157
- -moz-box-sizing: border-box;
1158
- -webkit-box-sizing: border-box;
1159
- box-sizing: border-box;
1160
- margin-top: 1px;
1161
- }
1162
-
1163
- .aam-warning span{
1164
- display: table-cell;
1165
- vertical-align: middle;
1166
- padding-left: 30px;
1167
- font-size: 0.9em;
1168
  }
5
  * ======================================================================
6
  */
7
 
 
 
 
 
 
 
 
 
 
8
 
9
  /** GLOBAL AAM STYLES */
10
  #aam_form{
11
  position: relative;
12
  }
13
 
 
 
 
 
 
 
 
 
14
  .aam-asterix{
15
  display: inline-block;
16
  font-size: 0.9em;
63
  margin: 10px 0px;
64
  }
65
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  .aam-medium-loader span{
67
  background-image: url('images/common/medium-loader.gif');
68
  background-position: 0 0 !important;
69
  }
70
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71
  .aam-list-top-actions{
72
  float: right;
73
  display: inline-table;
198
  }
199
 
200
  /** CONTROL PANEL STYLES */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
201
 
202
  #major-publishing-actions{
203
  margin-top: 5px;
427
  background-image: url('images/metabox/link-active.png');
428
  }
429
 
430
+ .metabox-top-actions .aam-icon-medium-add{
431
  margin-left: 10px;
432
  display: inline-block;
433
  }
434
 
435
+ .metabox-top-actions .aam-icon-medium-refresh{
436
  float: right;
437
  display: inline-block;
438
  }
853
 
854
  .event-specifier{
855
  display:none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
856
  }
media/css/common.css ADDED
@@ -0,0 +1,353 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * ======================================================================
3
+ * LICENSE: This file is subject to the terms and conditions defined in *
4
+ * file 'license.txt', which is part of this source code package. *
5
+ * ======================================================================
6
+ */
7
+ .aam-beta-version{
8
+ margin: 15px 10px;
9
+ border: 1px solid #FF8888;
10
+ border-radius: 4px;
11
+ padding: 4px;
12
+ text-align: center;
13
+ font-weight: bold;
14
+ font-size: 1.1em;
15
+ }
16
+
17
+ .aam-hidden{
18
+ display: none;
19
+ }
20
+
21
+ .aam-dialog{
22
+ display: none;
23
+ }
24
+
25
+ .wrap a{
26
+ outline: 0;
27
+ }
28
+
29
+ .aam-tooltip {
30
+ display:none;
31
+ position:absolute;
32
+ border:1px solid #CCCCCC;
33
+ background-color: #F5F5F5;
34
+ border-radius: 4px;
35
+ box-shadow: 0 0 5px #AAAAAA;
36
+ padding: 5px 10px;
37
+ z-index: 9999;
38
+ color: #333333;
39
+ font-size: 1em;
40
+ max-width: 300px;
41
+ left:0px;
42
+ top: 0px;
43
+ font-weight: bold;
44
+ font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
45
+ }
46
+
47
+ .aam-icon{
48
+ text-indent: -9999px;
49
+ text-align: center;
50
+ background-repeat: no-repeat;
51
+ }
52
+
53
+ a.aam-icon{
54
+ outline: none;
55
+ }
56
+
57
+ .aam-icon span {
58
+ content: "";
59
+ display: block;
60
+ background-repeat: no-repeat;
61
+ opacity: 1;
62
+ -webkit-transition: opacity 0.5s;
63
+ -moz-transition: opacity 0.5s;
64
+ -o-transition: opacity 0.5s;
65
+ }
66
+
67
+ .aam-icon span:hover{
68
+ opacity: 1;
69
+ }
70
+
71
+ .aam-icon-large span {
72
+ background-image: url('images/common/large-iconset.png');
73
+ width: 48px;
74
+ height: 48px;
75
+ margin-left: calc(50% - 24px);
76
+ margin-left: -moz-calc(50% - 24px);
77
+ }
78
+
79
+ .aam-icon-medium span {
80
+ background-image: url('images/common/medium-iconset.png');
81
+ width: 24px;
82
+ height: 24px;
83
+ margin-left: calc(50% - 12px);
84
+ margin-left: -moz-calc(50% - 12px);
85
+ }
86
+
87
+ .aam-icon-small span {
88
+ background-image: url('images/common/small-iconset.png');
89
+ width: 16px;
90
+ height: 16px;
91
+ margin-left: calc(50% - 8px);
92
+ margin-left: -moz-calc(50% - 8px);
93
+ }
94
+
95
+ .aam-icon-large-active{
96
+ background-position-y: -48px !important;
97
+ }
98
+
99
+ .aam-icon-medium-active{
100
+ background-position-y: -24px !important;
101
+ }
102
+
103
+ .aam-icon-small-active{
104
+ background-position-y: -16px !important;
105
+ }
106
+
107
+ .aam-icon-large-save span{
108
+ background-position: 0 0;
109
+ }
110
+
111
+ .aam-icon-large-save:hover span{
112
+ background-position: 0 -48px;
113
+ }
114
+
115
+ .aam-icon-large-roleback span{
116
+ background-position: -48px 0;
117
+ }
118
+
119
+ .aam-icon-large-roleback:hover span{
120
+ background-position: -48px -48px;
121
+ }
122
+
123
+ .aam-icon-large-twitter span{
124
+ background-position: -96px 0;
125
+ }
126
+
127
+ .aam-icon-large-twitter:hover span{
128
+ background-position: -96px -48px;
129
+ }
130
+
131
+ .aam-icon-large-message span{
132
+ background-position: -144px 0;
133
+ }
134
+
135
+ .aam-icon-large-message:hover span{
136
+ background-position: -144px -48px;
137
+ }
138
+
139
+ .aam-icon-large-link span{
140
+ background-position: -192px 0;
141
+ }
142
+
143
+ .aam-icon-large-link:hover span{
144
+ background-position: -192px -48px;
145
+ }
146
+
147
+ .aam-icon-medium-add span{
148
+ background-position: 0 0;
149
+ }
150
+
151
+ .aam-icon-medium-add:hover span{
152
+ background-position: 0 -24px;
153
+ }
154
+
155
+ .aam-icon-medium-refresh span{
156
+ background-position: -24px 0px;
157
+ }
158
+
159
+ .aam-icon-medium-refresh:hover span{
160
+ background-position: -24px -24px;
161
+ }
162
+
163
+ .aam-icon-medium-filter span{
164
+ background-position: -48px 0px;
165
+ }
166
+
167
+ .aam-icon-medium-filter:hover span{
168
+ background-position: -48px -24px;
169
+ }
170
+
171
+ .aam-icon-medium-copy span{
172
+ background-position: -72px 0px;
173
+ }
174
+
175
+ .aam-icon-medium-copy:hover span{
176
+ background-position: -72px -24px;
177
+ }
178
+
179
+ .aam-icon-medium-roleback span{
180
+ background-position: -96px 0px;
181
+ }
182
+
183
+ .aam-icon-medium-roleback:hover span{
184
+ background-position: -96px -24px;
185
+ }
186
+
187
+ .aam-icon-medium-twitter span{
188
+ background-position: -120px 0;
189
+ }
190
+
191
+ .aam-icon-medium-twitter:hover span{
192
+ background-position: -120px -24px;
193
+ }
194
+
195
+ .aam-icon-medium-help span{
196
+ background-position: -144px 0;
197
+ }
198
+
199
+ .aam-icon-medium-help:hover span{
200
+ background-position: -144px -24px;
201
+ }
202
+
203
+ .aam-icon-medium-message span{
204
+ background-position: -168px 0;
205
+ }
206
+
207
+ .aam-icon-medium-message:hover span{
208
+ background-position: -168px -24px;
209
+ }
210
+
211
+ .aam-icon-medium-star span{
212
+ background-position: -192px 0;
213
+ }
214
+
215
+ .aam-icon-medium-star:hover span{
216
+ background-position: -192px -24px;
217
+ }
218
+
219
+ .aam-icon-small-manage span{
220
+ background-position: 0 0;
221
+ }
222
+
223
+ .aam-icon-small-manage:hover span{
224
+ background-position: 0 -16px;
225
+ }
226
+
227
+ .aam-icon-small-delete span{
228
+ background-position: -16px 0;
229
+ }
230
+
231
+ .aam-icon-small-delete:hover span{
232
+ background-position: -16px -16px;
233
+ }
234
+
235
+ .aam-icon-small-pen span{
236
+ background-position: -32px 0;
237
+ }
238
+
239
+ .aam-icon-small-pen:hover span{
240
+ background-position: -32px -16px;
241
+ }
242
+
243
+ .aam-icon-small-edit-user span{
244
+ background-position: -48px 0;
245
+ }
246
+
247
+ .aam-icon-small-edit-user:hover span{
248
+ background-position: -48px -16px;
249
+ }
250
+
251
+ .aam-icon-small-block span{
252
+ background-position: -64px 0;
253
+ }
254
+
255
+ .aam-icon-small-block:hover span{
256
+ background-position: -64px -16px;
257
+ }
258
+
259
+ .aam-icon-small-roleback span{
260
+ background-position: -80px 0;
261
+ }
262
+
263
+ .aam-icon-small-roleback:hover span{
264
+ background-position: -80px -16px;
265
+ }
266
+
267
+ .aam-icon-small-trash span{
268
+ background-position: -96px 0;
269
+ }
270
+
271
+ .aam-icon-small-trash:hover span{
272
+ background-position: -96px -16px;
273
+ }
274
+
275
+ .aam-icon-small-select span{
276
+ background-position: -112px 0;
277
+ }
278
+
279
+ .aam-icon-small-select:hover span{
280
+ background-position: -112px -16px;
281
+ }
282
+
283
+ .large-icons-row{
284
+ display: table;
285
+ width: 100%;
286
+ margin-bottom: 5px;
287
+ padding-bottom: 5px;
288
+ border-bottom: 1px solid #CCCCCC;
289
+ }
290
+
291
+ .large-icons-row .aam-icon{
292
+ display: table-cell;
293
+ text-align: center;
294
+ vertical-align: bottom;
295
+ text-decoration: none;
296
+ text-transform: uppercase;
297
+ font-size: 10px;
298
+ font-weight: bold;
299
+ color: #333333;
300
+ }
301
+
302
+ .large-icons-row a.disabled span{
303
+ opacity: 0.8;
304
+ cursor: none;
305
+ pointer-events: none;
306
+ text-decoration: line-through;
307
+ }
308
+
309
+ .medium-icons-row{
310
+ display: inline-table;
311
+ width: 100%;
312
+ margin-top: 10px;
313
+ }
314
+
315
+ .medium-icons-row .aam-icon{
316
+ display: table-cell;
317
+ text-indent: 0;
318
+ font-size: 9px;
319
+ font-weight: bold;
320
+ color: #333333;
321
+ }
322
+
323
+ .medium-icons-row a.aam-icon{
324
+ text-decoration: none;
325
+ }
326
+
327
+ .aam-list-row-actions{
328
+ width: 100%;
329
+ display: inline-table;
330
+ text-align: center;
331
+ }
332
+
333
+ .aam-list-row-actions .aam-icon{
334
+ display: table-cell;
335
+ }
336
+
337
+ .aam-warning{
338
+ width: 100%;
339
+ height: 40px;
340
+ display: table-row;
341
+ background: transparent url('images/common/warning.png') no-repeat 2px center;
342
+ -moz-box-sizing: border-box;
343
+ -webkit-box-sizing: border-box;
344
+ box-sizing: border-box;
345
+ margin-top: 1px;
346
+ }
347
+
348
+ .aam-warning span{
349
+ display: table-cell;
350
+ vertical-align: middle;
351
+ padding-left: 30px;
352
+ font-size: 0.9em;
353
+ }
media/css/configpress.css CHANGED
@@ -1,106 +1,4 @@
1
- .cpanel-major{
2
- display: table;
3
- width: 100%;
4
- margin-bottom: 5px;
5
- padding-bottom: 5px;
6
- border-bottom: 1px solid #CCCCCC;
7
- }
8
-
9
- .cpanel-major .cpanel-item{
10
- height: 64px;
11
- width: 50%;
12
- display: table-cell;
13
- text-align: center;
14
- vertical-align: bottom;
15
- text-decoration: none;
16
- text-transform: uppercase;
17
- font-size: 10px;
18
- font-weight: bold;
19
- color: #333333;
20
- background-repeat: no-repeat;
21
- background-position: center top;
22
- }
23
-
24
- .cpanel-minor{
25
- display: table;
26
- width: 100%;
27
- margin-top: 10px;
28
- }
29
-
30
- .cpanel-minor .cpanel-item{
31
- height: 40px;
32
- width: 25%;
33
- display: table-cell;
34
- text-align: center;
35
- vertical-align: bottom;
36
- text-decoration: none;
37
- text-transform: uppercase;
38
- font-size: 9px;
39
- font-weight: bold;
40
- color: #333333;
41
- background-repeat: no-repeat;
42
- background-position: center top;
43
- }
44
-
45
- .cpanel-item-save{
46
- background-image: url('images/cpanel/save.png');
47
- }
48
-
49
- .cpanel-item-save:hover{
50
- background-image: url('images/cpanel/save-active.png');
51
- }
52
-
53
- .cpanel-item-help{
54
- background-image: url('images/cpanel/help-forum.png');
55
- }
56
-
57
- .cpanel-item-help:hover{
58
- background-image: url('images/cpanel/help-forum-active.png');
59
- }
60
-
61
- .cpanel-item-twitter{
62
- background-image: url('images/cpanel/twitter.png');
63
- }
64
-
65
- .cpanel-item-twitter:hover{
66
- background-image: url('images/cpanel/twitter-active.png');
67
- }
68
-
69
- .cpanel-item-message{
70
- background-image: url('images/cpanel/message.png');
71
- }
72
-
73
- .cpanel-item-message:hover{
74
- background-image: url('images/cpanel/message-active.png');
75
- }
76
-
77
- .cpanel-item-star{
78
- background-image: url('images/cpanel/star.png');
79
- }
80
-
81
- .cpanel-item-star:hover{
82
- background-image: url('images/cpanel/star-active.png');
83
- }
84
-
85
  #major-publishing-actions{
86
  margin-top: 5px;
87
  border-top: 1px solid #D5D5D5;
88
- }
89
-
90
- .aam-warning{
91
- width: 100%;
92
- height: 40px;
93
- display: table-row;
94
- background: transparent url('images/warning.png') no-repeat 2px center;
95
- -moz-box-sizing: border-box;
96
- -webkit-box-sizing: border-box;
97
- box-sizing: border-box;
98
- margin-top: 1px;
99
- }
100
-
101
- .aam-warning span{
102
- display: table-cell;
103
- vertical-align: middle;
104
- padding-left: 30px;
105
- font-size: 0.9em;
106
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  #major-publishing-actions{
2
  margin-top: 5px;
3
  border-top: 1px solid #D5D5D5;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  }
media/css/extension.css CHANGED
@@ -1,8 +1,3 @@
1
- .cpanel{
2
- display: table;
3
- width: 100%;
4
- }
5
-
6
  .extension-name{
7
  font-weight: bold;
8
  font-family: Tahoma, Geneva, sans-serif;
@@ -31,25 +26,6 @@
31
  color: #212121;
32
  }
33
 
34
- .cpanel-item{
35
- height: 64px;
36
- min-width: 48px;
37
- display: table-cell;
38
- text-align: center;
39
- vertical-align: bottom;
40
- text-decoration: none;
41
- text-transform: uppercase;
42
- font-size: 10px;
43
- font-weight: bold;
44
- color: #333333;
45
- background-repeat: no-repeat;
46
- background-position: center top;
47
- }
48
-
49
- a.cpanel-item{
50
- outline: 0;
51
- }
52
-
53
  .cpanel-item-twitter{
54
  background-image: url('images/extension/twitter.png');
55
  }
@@ -135,28 +111,6 @@ a.extension-action{
135
  background-image: url('images/extension/download-active.png');
136
  }
137
 
138
- .aam-tooltip {
139
- display:none;
140
- position:absolute;
141
- border:1px solid #CCCCCC;
142
- background-color: #F5F5F5;
143
- border-radius: 4px;
144
- box-shadow: 0 0 5px #AAAAAA;
145
- padding: 5px 10px;
146
- z-index: 9999;
147
- color: #333333;
148
- font-size: 1em;
149
- max-width: 300px;
150
- left:0px;
151
- top: 0px;
152
- font-weight: bold;
153
- font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
154
- }
155
-
156
- .aam-dialog{
157
- display: none;
158
- }
159
-
160
  .dialog-content{
161
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
162
  }
@@ -192,24 +146,6 @@ input.license-input{
192
  opacity: 0.8;
193
  }
194
 
195
- .aam-warning{
196
- width: 100%;
197
- height: 40px;
198
- display: table-row;
199
- background: transparent url('images/warning.png') no-repeat 2px center;
200
- -moz-box-sizing: border-box;
201
- -webkit-box-sizing: border-box;
202
- box-sizing: border-box;
203
- margin-top: 1px;
204
- }
205
-
206
- .aam-warning span{
207
- display: table-cell;
208
- vertical-align: middle;
209
- padding-left: 30px;
210
- font-size: 0.9em;
211
- }
212
-
213
  .extension-error-list{
214
  margin-top: 5px;
215
  display: none;
 
 
 
 
 
1
  .extension-name{
2
  font-weight: bold;
3
  font-family: Tahoma, Geneva, sans-serif;
26
  color: #212121;
27
  }
28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  .cpanel-item-twitter{
30
  background-image: url('images/extension/twitter.png');
31
  }
111
  background-image: url('images/extension/download-active.png');
112
  }
113
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
114
  .dialog-content{
115
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
116
  }
146
  opacity: 0.8;
147
  }
148
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
149
  .extension-error-list{
150
  margin-top: 5px;
151
  display: none;
media/css/images/common/add.png DELETED
Binary file
media/css/images/common/large-iconset.png ADDED
Binary file
media/css/images/common/medium-iconset.png CHANGED
Binary file
media/css/images/{warning.png → common/warning.png} RENAMED
File without changes
media/css/images/cpanel/help-forum-active.png DELETED
Binary file
media/css/images/cpanel/help-forum.png DELETED
Binary file
media/css/images/cpanel/message-active.png DELETED
Binary file
media/css/images/cpanel/message.png DELETED
Binary file
media/css/images/cpanel/restore-active.png DELETED
Binary file
media/css/images/cpanel/restore.png DELETED
Binary file
media/css/images/cpanel/save-active.png DELETED
Binary file
media/css/images/cpanel/save.png DELETED
Binary file
media/css/images/cpanel/star-active.png DELETED
Binary file
media/css/images/cpanel/star.png DELETED
Binary file
media/css/images/cpanel/twitter-active.png DELETED
Binary file
media/css/images/cpanel/twitter.png DELETED
Binary file
media/css/images/extension/link-active.png DELETED
Binary file
media/css/images/extension/link.png DELETED
Binary file
media/css/images/extension/message-active.png DELETED
Binary file
media/css/images/extension/message.png DELETED
Binary file
media/css/images/extension/twitter-active.png DELETED
Binary file
media/css/images/extension/twitter.png DELETED
Binary file
media/js/aam.js CHANGED
@@ -283,7 +283,7 @@ AAM.prototype.compileAjaxPackage = function(action, include_subject) {
283
  * @access public
284
  */
285
  AAM.prototype.disableRoleback = function(){
286
- jQuery('#aam_roleback').addClass('cpanel-item-disabled');
287
  };
288
 
289
  /**
@@ -294,7 +294,7 @@ AAM.prototype.disableRoleback = function(){
294
  * @access public
295
  */
296
  AAM.prototype.enableRoleback = function(){
297
- jQuery('#aam_roleback').removeClass('cpanel-item-disabled');
298
  };
299
 
300
  /**
@@ -307,7 +307,7 @@ AAM.prototype.enableRoleback = function(){
307
  AAM.prototype.initControlPanel = function() {
308
  var _this = this;
309
  //Role Back feature
310
- jQuery('#aam_roleback').bind('click', function(event) {
311
  event.preventDefault();
312
  if (!jQuery(this).hasClass('cpanel-item-disabled')){
313
  var buttons = {};
@@ -345,9 +345,10 @@ AAM.prototype.initControlPanel = function() {
345
  });
346
  }
347
  });
 
348
 
349
  //Save the AAM settings
350
- jQuery('#aam_save').bind('click', function(event) {
351
  event.preventDefault();
352
  _this.showMetaboxLoader('#control_panel');
353
 
@@ -406,22 +407,44 @@ AAM.prototype.initControlPanel = function() {
406
  }
407
  });
408
  });
409
- //Send Email to Us
410
- jQuery('#aam_message').bind('click', function(event) {
411
- event.preventDefault();
412
- var buttons = {};
413
- buttons[aamLocal.labels['Send E-mail']] = function() {
414
- location.href = 'mailto:support@wpaam.com';
415
- jQuery("#message_dialog").dialog("close");
416
- };
417
- jQuery("#message_dialog").dialog({
418
- resizable: false,
419
- height: 'auto',
420
- width: '20%',
421
- modal: true,
422
- buttons: buttons
423
- });
424
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
425
  //Init Tooltip
426
  this.initTooltip('#control_panel');
427
  };
@@ -1515,7 +1538,7 @@ AAM.prototype.initCapabilityTab = function() {
1515
  //add Restore Default Capability button
1516
  var restore = _this.createIcon(
1517
  'medium',
1518
- 'restore',
1519
  aamLocal.labels['Restore Default Capabilities']
1520
  ).bind('click', function(event) {
1521
  event.preventDefault();
@@ -2478,7 +2501,7 @@ AAM.prototype.initPostTab = function() {
2478
  if (parseInt(aData[6]) === 1) {
2479
  jQuery('.aam-list-row-actions', nRow).append(_this.createIcon(
2480
  'small',
2481
- 'default',
2482
  aamLocal.labels['Restore Default Access']
2483
  ).bind('click', function(event) {
2484
  event.preventDefault();
@@ -2905,7 +2928,7 @@ AAM.prototype.initPostTree = function() {
2905
  */
2906
  AAM.prototype.createIcon = function(size, qualifier, tooltip){
2907
  var icon = jQuery('<a/>', {
2908
- class: 'aam-icon aam-icon-' + size + ' aam-icon-' + qualifier,
2909
  href: '#'
2910
  });
2911
  //add tooltip if defined
@@ -2977,8 +3000,10 @@ AAM.prototype.activateIcon = function(element, size) {
2977
  AAM.prototype.deactivateIcon = function(element) {
2978
  if (jQuery(element).hasClass('aam-icon-small-active')){
2979
  jQuery(element).removeClass('aam-icon-small-active');
2980
- }else if (jQuery(element).hasClass('aam-icon-medium-active')){
2981
  jQuery(element).removeClass('aam-icon-medium-active');
 
 
2982
  }
2983
  };
2984
 
283
  * @access public
284
  */
285
  AAM.prototype.disableRoleback = function(){
286
+ jQuery('#aam_roleback').addClass('disabled');
287
  };
288
 
289
  /**
294
  * @access public
295
  */
296
  AAM.prototype.enableRoleback = function(){
297
+ jQuery('#aam_roleback').removeClass('disabled');
298
  };
299
 
300
  /**
307
  AAM.prototype.initControlPanel = function() {
308
  var _this = this;
309
  //Role Back feature
310
+ var roleback = this.createIcon('large', 'roleback').append('Roleback').bind('click', function(event) {
311
  event.preventDefault();
312
  if (!jQuery(this).hasClass('cpanel-item-disabled')){
313
  var buttons = {};
345
  });
346
  }
347
  });
348
+ jQuery('#cpanel_major').append(roleback);
349
 
350
  //Save the AAM settings
351
+ var save = this.createIcon('large', 'save').append('Save').bind('click', function(event) {
352
  event.preventDefault();
353
  _this.showMetaboxLoader('#control_panel');
354
 
407
  }
408
  });
409
  });
410
+ jQuery('#cpanel_major').append(save);
411
+
412
+ //create minor actions
413
+ jQuery('#cpanel_minor').append(
414
+ this.createIcon('medium', 'twitter', 'Follow Us').attr({
415
+ href: 'https://twitter.com/wpaam',
416
+ target: '_blank'
417
+ }).append('Twitter')
418
+ );
419
+ jQuery('#cpanel_minor').append(
420
+ this.createIcon('medium', 'help', 'Support').attr({
421
+ href: 'http://wpaam.com/support',
422
+ target: '_blank'
423
+ }).append('Support')
424
+ );
425
+ jQuery('#cpanel_minor').append(
426
+ this.createIcon('medium', 'message', 'Message').append('Support').bind('click', function(event) {
427
+ event.preventDefault();
428
+ var buttons = {};
429
+ buttons[aamLocal.labels['Send E-mail']] = function() {
430
+ location.href = 'mailto:support@wpaam.com';
431
+ jQuery("#message_dialog").dialog("close");
432
+ };
433
+ jQuery("#message_dialog").dialog({
434
+ resizable: false,
435
+ height: 'auto',
436
+ width: '20%',
437
+ modal: true,
438
+ buttons: buttons
439
+ });
440
+ }));
441
+ jQuery('#cpanel_minor').append(
442
+ this.createIcon('medium', 'star', 'Rate Us').attr({
443
+ href: 'http://wordpress.org/support/view/plugin-reviews/advanced-access-manager',
444
+ target: '_blank'
445
+ }).append('Rate')
446
+ );
447
+
448
  //Init Tooltip
449
  this.initTooltip('#control_panel');
450
  };
1538
  //add Restore Default Capability button
1539
  var restore = _this.createIcon(
1540
  'medium',
1541
+ 'roleback',
1542
  aamLocal.labels['Restore Default Capabilities']
1543
  ).bind('click', function(event) {
1544
  event.preventDefault();
2501
  if (parseInt(aData[6]) === 1) {
2502
  jQuery('.aam-list-row-actions', nRow).append(_this.createIcon(
2503
  'small',
2504
+ 'roleback',
2505
  aamLocal.labels['Restore Default Access']
2506
  ).bind('click', function(event) {
2507
  event.preventDefault();
2928
  */
2929
  AAM.prototype.createIcon = function(size, qualifier, tooltip){
2930
  var icon = jQuery('<a/>', {
2931
+ class: 'aam-icon aam-icon-' + size + ' aam-icon-' + size + '-' + qualifier,
2932
  href: '#'
2933
  });
2934
  //add tooltip if defined
3000
  AAM.prototype.deactivateIcon = function(element) {
3001
  if (jQuery(element).hasClass('aam-icon-small-active')){
3002
  jQuery(element).removeClass('aam-icon-small-active');
3003
+ } else if (jQuery(element).hasClass('aam-icon-medium-active')){
3004
  jQuery(element).removeClass('aam-icon-medium-active');
3005
+ } else if (jQuery(element).hasClass('aam-icon-minor-active')){
3006
+ jQuery(element).removeClass('aam-icon-minor-active');
3007
  }
3008
  };
3009
 
readme.txt CHANGED
@@ -1,65 +1,67 @@
1
  === Advanced Access Manager ===
2
  Contributors: vasyl_m
3
- Tags: access manager, access, access control, comments, capability, widget, filter menu, role manager, user access, user control, user
4
  Requires at least: 3.4.2
5
- Tested up to: 3.9
6
- Stable tag: 2.6
7
 
8
- The enhanced easy-to-use tool for access control to your backend and frontend.
 
9
 
10
  == Description ==
11
 
12
- Are you looking for free and powerful plugin for WordPress Access Control?
 
 
 
13
 
14
- Nowadays AAM is one of the most popular access control plugins. It is easy-to-use but
15
- at the same time very powerful tool that gives you a flexible control over your either
16
- single WordPress site or Multisite Network. With AAM you are allowed to configure access
17
- to different parts of your website for any Role or individual User.
18
 
19
- **Please Notice!**
20
- If you have any issues with AAM or you have any questions related to it, we offer
21
- free and fast support. You can either send us an email or leave a message on WordPress
22
- Forum. We always ready to help you and to improve your experience with AAM.
23
 
24
- In Current version you are allowed to do next:
 
 
 
25
 
26
- **Control Access to Admin Menu (including submenu).**
27
- As example you can restrict access for Role Editor to Menu "Pages" or does not allow
28
- individual User to manage Post's Categories.
 
 
 
 
29
 
30
- **Filter Widgets & Metaboxes.**
31
- Filter the list of metaboxes that User can see during Post/Page editing. At the same
32
- time you can filter the list of Dashboard and Frontend widgets.
 
 
33
 
34
- **Filter Post or Page content**
35
- You can filter Post's or Page's content based on currently logged in user or visitor.
 
 
 
 
36
 
37
- **Manage Role's or User's Capabilities.**
38
- AAM, with simple interface, allows you to grand or remove capabilities from Role or User.
39
- You can also create new capabilities or remove existing.
40
 
41
- **Control Access to Posts, Pages, CPTs or Terms.**
42
- You can restrict access to individual page or post for any user or role as well as
43
- restrict access to entire Term and all posts inside it. You can also restrict
44
- page commenting for individual pages or exclude them from Frontend menu. We are
45
- extending the list of possible restrictions with each new version.
46
 
47
- **Create custom actions for system events.**
48
- As example your system can trigger email to you if some user published Post/Page or
49
- modified content. You are also allowed to develop your own custom action for event.
50
 
51
- **Track User Activities.**
52
- With AAM you can track user activities within your website. So you can easily find out
53
- when user was logged in or modified some Post/Page. There are many activities that can
54
- be tracked. We constantly adding more and more.
55
 
56
- **Manage Role List.**
57
- AAM allows you to create new Roles or Delete existing.
58
-
59
- There are a lot of small and hidden features included in AAM that we are not listing
60
- here but you can find more about them on our [Forum](http://wpaam.com/forum).
61
-
62
- The AAM support also these languages:
63
 
64
  * English
65
  * German (by Kolja www.Reggae-Party.de)
@@ -74,7 +76,6 @@ The AAM support also these languages:
74
 
75
  1. Upload `advanced-access-manager` folder to the `/wp-content/plugins/` directory
76
  2. Activate the plugin through the 'Plugins' menu in WordPress
77
- 3. Find Access Manager under AWM Group Menu
78
 
79
  == Frequently Asked Questions ==
80
 
@@ -96,6 +97,13 @@ the list of additional metaboxes can be picked by AAM.
96
 
97
  == Changelog ==
98
 
 
 
 
 
 
 
 
99
  = 2.6 =
100
  * Fixed bug with user inheritance
101
  * Fixed bug with user restore default settings
1
  === Advanced Access Manager ===
2
  Contributors: vasyl_m
3
+ Tags: security, login, access manager, access, access control, capability, role, user, post filter, category
4
  Requires at least: 3.4.2
5
+ Tested up to: 3.9.1
6
+ Stable tag: 2.7
7
 
8
+ The powerful and easy-to-use tool to improve security and define access to your
9
+ posts, pages and backend areas for single blog or multisite network.
10
 
11
  == Description ==
12
 
13
+ ''Advanced Access Manager'' (aka ''AAM'') is known nowadays as one of the best
14
+ access control and security enhancement tool. It is easy-to-use and at the same
15
+ time very powerful plugin that gives you the flexible control over your single
16
+ blog or ''multisite network''.
17
 
18
+ With ''AAM'' you can control access to different areas of your website like posts,
19
+ pages, categories, widgets or menus. The access can be defined for any user, role
20
+ or visitor.
 
21
 
22
+ Below is the list of highlighted features that has been implemented and proved in
23
+ current ''AAM'' version:
 
 
24
 
25
+ ''Secure Admin Login''.
26
+ Control the login process to your website. Define the number or possible login
27
+ attempts, trace the failed login request's geographical location, lockout IP
28
+ addresses for potential hacker attacks.
29
 
30
+ ''Control Access to Posts, Pages or Categories''.
31
+ Restrict access to your posts, pages, custom post types of categories for any
32
+ user, role or visitor. Define whether the viewer can ''see'', ''read'' or ''comment''
33
+ on any post or page. For more extended list of possible options consider to get
34
+ the [AAM Plus Package](http://wpaam.com/aam-extensions/aam-plus-package/). To
35
+ learn more about this feature check our
36
+ [Posts and Pages Tutorial](http://wpaam.com/tutorials/posts-pages-general-overview/).
37
 
38
+ ''Control Access to Media Files''.
39
+ Define your custom access to media files for any user, role or visitor. The feature
40
+ works without any extra configurations to your server .htaccess file. Find more
41
+ information about this topic in our
42
+ [Tutorial](http://wpaam.com/tutorials/control-access-to-media-files/).
43
 
44
+ ''Manage Roles and Capabilities''.
45
+ Manage the list of roles and capabilities. This feature has been designed and tested
46
+ by hundreds of experienced WordPress user and developers. It gives you possibility
47
+ to create, update or delete any role or capability. For security reasons, this
48
+ feature is limited by default but can be easily activated. Read more about it in
49
+ our [AAM Super Admin Tutorial](http://wpaam.com/tutorials/aam-super-admin/).
50
 
51
+ ''Track User Activity''.
52
+ Track logged in user activities like when user was logged in or logged out. Explore
53
+ more tracking options with [AAM Activities](http://wpaam.com/aam-extensions/aam-activities/).
54
 
55
+ ''Filter Backend Menu''.
56
+ Control access to backend menu (including submenus). For more information check
57
+ [How to Manage Admin Menu](http://wpaam.com/tutorials/how-to-manage-admin-menu/).
 
 
58
 
59
+ ''Filter Metaboxes and Widgets''.
60
+ Filter available metaboxes or widgets for any user, role or visitor.
 
61
 
62
+ And many, many more...
 
 
 
63
 
64
+ The ''AAM'' has multi-language UI:
 
 
 
 
 
 
65
 
66
  * English
67
  * German (by Kolja www.Reggae-Party.de)
76
 
77
  1. Upload `advanced-access-manager` folder to the `/wp-content/plugins/` directory
78
  2. Activate the plugin through the 'Plugins' menu in WordPress
 
79
 
80
  == Frequently Asked Questions ==
81
 
97
 
98
  == Changelog ==
99
 
100
+ = 2.7 =
101
+ * Fixed bug with subject managing check
102
+ * Fixed bug with update hook
103
+ * Fixed issue with extension activation hook
104
+ * Added AAM Security Feature. First iteration
105
+ * Improved CSS
106
+
107
  = 2.6 =
108
  * Fixed bug with user inheritance
109
  * Fixed bug with user restore default settings
screenshot-6.png DELETED
Binary file