Version Description
- Declare methods as public or private and use PHP5 constructors.
- Show user's IP address beside "Allow IP Addresses" admin setting.
- Add CHANGELOG.md and README.md
Download this release
Release Info
| Developer | husobj |
| Plugin | |
| Version | 2.0.3 |
| Comparing to | |
| See all releases | |
Code changes from version 2.0.2 to 2.0.3
- CHANGELOG.md +192 -0
- README.md +125 -0
- admin/admin.php +21 -21
- languages/password-protected.pot +25 -23
- password-protected.php +34 -34
- readme.txt +25 -14
CHANGELOG.md
ADDED
|
@@ -0,0 +1,192 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Change Log
|
| 2 |
+
All notable changes to this project will be documented in this file.
|
| 3 |
+
This project adheres to [Semantic Versioning](http://semver.org/).
|
| 4 |
+
|
| 5 |
+
## [Unreleased]
|
| 6 |
+
|
| 7 |
+
## [2.0.3] - 2015-03-23
|
| 8 |
+
|
| 9 |
+
### Added
|
| 10 |
+
- Show user's IP address beside "Allow IP Addresses" admin setting.
|
| 11 |
+
- Add CHANGELOG.md and README.md
|
| 12 |
+
|
| 13 |
+
### Changed
|
| 14 |
+
- Declare methods as public or private and use PHP5 constructors.
|
| 15 |
+
|
| 16 |
+
## [2.0.2] - 2015-10-29
|
| 17 |
+
|
| 18 |
+
### Added
|
| 19 |
+
- Check allowed IP addresses are valid when saving.
|
| 20 |
+
|
| 21 |
+
### Changed
|
| 22 |
+
- Only redirect to [allowed domain names](https://codex.wordpress.org/Plugin_API/Filter_Reference/allowed_redirect_hosts) when logging out.
|
| 23 |
+
|
| 24 |
+
## [2.0.1] - 2015-07-24
|
| 25 |
+
|
| 26 |
+
### Changed
|
| 27 |
+
- Split logout functionality into separate function.
|
| 28 |
+
|
| 29 |
+
### Security
|
| 30 |
+
- Use a more complex password hash for cookie key. Props Marcin Bury, [Securitum](http://securitum.pl).
|
| 31 |
+
|
| 32 |
+
## [2.0] - 2015-03-26
|
| 33 |
+
|
| 34 |
+
### Added
|
| 35 |
+
- Added [password_protected_logout_link](https://github.com/benhuson/password-protected/wiki/password_protected_logout_link-Shortcode) shortcode.
|
| 36 |
+
- Load 'password-protected-login.css' in theme folder if it exists.
|
| 37 |
+
- Added [password_protected_stylesheet_file](https://github.com/benhuson/password-protected/wiki/password_protected_stylesheet_file) filter to specify alternate stylesheet location.
|
| 38 |
+
- Added is_user_logged_in(), login_url(), logout_url() and logout_link() methods.
|
| 39 |
+
- Added Basque, Czech, Greek, Lithuanian and Norwegian translations.
|
| 40 |
+
|
| 41 |
+
### Changed
|
| 42 |
+
- Better handling of login/out redirects when protection is not active on home page.
|
| 43 |
+
|
| 44 |
+
## [1.9] - 2014-12-17
|
| 45 |
+
|
| 46 |
+
### Fixed
|
| 47 |
+
- Fixed "Allow Users" functionality with is_user_logged_in(). Props PatRaven.
|
| 48 |
+
|
| 49 |
+
### Added
|
| 50 |
+
- Added option for allowed IP addresses which can bypass the password protection.
|
| 51 |
+
- Added 'password_protected_is_active' filter.
|
| 52 |
+
|
| 53 |
+
## [1.8] - 2014-10-07
|
| 54 |
+
|
| 55 |
+
### Added
|
| 56 |
+
- Support for adding "password-protected-login.php" in theme directory.
|
| 57 |
+
- Allow filtering of the 'redirect to' URL via the 'password_protected_login_redirect_url' filter.
|
| 58 |
+
- Added 'password_protected_login_messages' action to output errors and messages in template.
|
| 59 |
+
- Updated translations.
|
| 60 |
+
|
| 61 |
+
### Changed
|
| 62 |
+
- Use current_time( 'timestamp' ) instead of time() to take into account site timezone.
|
| 63 |
+
- Check login earlier in the template_redirect action.
|
| 64 |
+
|
| 65 |
+
## [1.7.2] - 2014-06-05
|
| 66 |
+
|
| 67 |
+
### Fixed
|
| 68 |
+
- Fix always allow access to robots.txt.
|
| 69 |
+
|
| 70 |
+
### Added
|
| 71 |
+
- Added 'password_protected_login_redirect' filter.
|
| 72 |
+
- Updated translations.
|
| 73 |
+
|
| 74 |
+
## [1.7.1] - 2014-03-17
|
| 75 |
+
|
| 76 |
+
### Fixed
|
| 77 |
+
- Fix login template compatibility for WordPress 3.9
|
| 78 |
+
|
| 79 |
+
## [1.7] - 2014-02-27
|
| 80 |
+
|
| 81 |
+
### Fixed
|
| 82 |
+
- Remove JavaScript that disables admin RSS checkbox.
|
| 83 |
+
|
| 84 |
+
### Added
|
| 85 |
+
- Added 'password_protected_theme_file' filter to allow custom login templates.
|
| 86 |
+
- It's now really easy to contribute to the translation of this plugin via our [Transifex page](https://www.transifex.com/projects/p/password-protected/resource/password-protected/).
|
| 87 |
+
- Add option to allow logged in users.
|
| 88 |
+
|
| 89 |
+
## [1.6.2] - 2014-01-10
|
| 90 |
+
|
| 91 |
+
### Changed
|
| 92 |
+
- Set login page not to index if privacy setting is on.
|
| 93 |
+
- Allow redirection to a different URL when logging out using 'redirect_to' query and full URL.
|
| 94 |
+
|
| 95 |
+
## [1.6.1] - 2013-11-13
|
| 96 |
+
|
| 97 |
+
### Added
|
| 98 |
+
- Language updates by wp-translations.org (Arabic, Dutch, French, Persian, Russian).
|
| 99 |
+
|
| 100 |
+
## [1.6] - 2013-07-04
|
| 101 |
+
|
| 102 |
+
### Fixed
|
| 103 |
+
- Robots.txt is now always accessible.
|
| 104 |
+
|
| 105 |
+
### Added
|
| 106 |
+
- Added support for Uber Login Logo plugin.
|
| 107 |
+
|
| 108 |
+
## [1.5] - 2013-02-21
|
| 109 |
+
|
| 110 |
+
### Added
|
| 111 |
+
- Added note about WP Engine compatibility to readme.txt
|
| 112 |
+
|
| 113 |
+
### Changed
|
| 114 |
+
- Requires WordPress 3.1+
|
| 115 |
+
- Settings now have their own page.
|
| 116 |
+
|
| 117 |
+
### Security
|
| 118 |
+
- Fixed an open redirect vulnerability. Props Chris Campbell.
|
| 119 |
+
|
| 120 |
+
## [1.4] - 2013-02-10
|
| 121 |
+
|
| 122 |
+
### Added
|
| 123 |
+
- Add option to allow administrators to use the site without logging in.
|
| 124 |
+
- Use DONOTCACHEPAGE to try to prevent some caching issues.
|
| 125 |
+
- Added a contextual help tab for WordPress 3.3+.
|
| 126 |
+
|
| 127 |
+
### Changed
|
| 128 |
+
- Updated login screen styling for WordPress 3.5 compatibility.
|
| 129 |
+
- Options are now on the 'Reading' settings page in WordPress 3.5
|
| 130 |
+
|
| 131 |
+
## [1.3] - 2012-10-01
|
| 132 |
+
|
| 133 |
+
### Added
|
| 134 |
+
- Added checkbox to allow access to feeds when protection is enabled.
|
| 135 |
+
- Prepare for WordPress 3.5 Settings API changes.
|
| 136 |
+
- Added 'password_protected_before_login_form' and 'password_protected_after_login_form' actions.
|
| 137 |
+
- Added 'password_protected_process_login' filter to make it possible to extend login functionality.
|
| 138 |
+
- Now possible to use 'pre_update_option_password_protected_password' filter to use password before it is encrypted and saved.
|
| 139 |
+
- Ready for [translations](http://codex.wordpress.org/I18n_for_WordPress_Developers).
|
| 140 |
+
|
| 141 |
+
## [1.2.2] - 2012-07-30
|
| 142 |
+
|
| 143 |
+
### Added
|
| 144 |
+
- Show login error messages.
|
| 145 |
+
|
| 146 |
+
### Security
|
| 147 |
+
- Escape 'redirect_to' attribute. Props A. Alagha.
|
| 148 |
+
|
| 149 |
+
## [1.2.1] - 2012-05-25
|
| 150 |
+
|
| 151 |
+
### Added
|
| 152 |
+
- Added a "How to log out?" FAQ.
|
| 153 |
+
|
| 154 |
+
### Changed
|
| 155 |
+
- Only disable feeds when protection is active.
|
| 156 |
+
|
| 157 |
+
## [1.2] - 2012-04-14
|
| 158 |
+
|
| 159 |
+
### Changed
|
| 160 |
+
- Use cookies instead of sessions.
|
| 161 |
+
|
| 162 |
+
## [1.1] - 2012-02-12
|
| 163 |
+
|
| 164 |
+
### Security
|
| 165 |
+
- Encrypt passwords in database.
|
| 166 |
+
|
| 167 |
+
## [1.0] - 2012-02-01
|
| 168 |
+
|
| 169 |
+
### Added
|
| 170 |
+
- First Release. If you spot any bugs or issues please [log them here](https://github.com/benhuson/password-protected/issues).
|
| 171 |
+
|
| 172 |
+
[Unreleased]: https://github.com/benhuson/password-protected/compare/2.0.3...HEAD
|
| 173 |
+
[2.0.3]: https://github.com/benhuson/password-protected/compare/2.0.2...2.0.3
|
| 174 |
+
[2.0.2]: https://github.com/benhuson/password-protected/compare/2.0.1...2.0.2
|
| 175 |
+
[2.0.1]: https://github.com/benhuson/password-protected/compare/2.0...2.0.1
|
| 176 |
+
[2.0]: https://github.com/benhuson/password-protected/compare/1.9...2.0
|
| 177 |
+
[1.9]: https://github.com/benhuson/password-protected/compare/1.8...1.9
|
| 178 |
+
[1.8]: https://github.com/benhuson/password-protected/compare/1.7.2...1.8
|
| 179 |
+
[1.7.2]: https://github.com/benhuson/password-protected/compare/1.7.1...1.7.2
|
| 180 |
+
[1.7.1]: https://github.com/benhuson/password-protected/compare/1.7...1.7.1
|
| 181 |
+
[1.7]: https://github.com/benhuson/password-protected/compare/1.6.2...1.7
|
| 182 |
+
[1.6.2]: https://github.com/benhuson/password-protected/compare/1.6.1...1.6.2
|
| 183 |
+
[1.6.1]: https://github.com/benhuson/password-protected/compare/1.6...1.6.1
|
| 184 |
+
[1.6]: https://github.com/benhuson/password-protected/compare/1.5...1.6
|
| 185 |
+
[1.5]: https://github.com/benhuson/password-protected/compare/1.4...1.5
|
| 186 |
+
[1.4]: https://github.com/benhuson/password-protected/compare/1.3...1.4
|
| 187 |
+
[1.3]: https://github.com/benhuson/password-protected/compare/1.2.2...1.3
|
| 188 |
+
[1.2.2]: https://github.com/benhuson/password-protected/compare/1.2.1...1.2.2
|
| 189 |
+
[1.2.1]: https://github.com/benhuson/password-protected/compare/1.2...1.2.1
|
| 190 |
+
[1.2]: https://github.com/benhuson/password-protected/compare/1.1...0.7.11.2
|
| 191 |
+
[1.1]: https://github.com/benhuson/password-protected/compare/1.0...1.1
|
| 192 |
+
[1.0]: https://github.com/benhuson/password-protected/tree/1.0
|
README.md
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Password Protected
|
| 2 |
+
==================
|
| 3 |
+
|
| 4 |
+
A very simple way to quickly password protect your WordPress site with a single password.
|
| 5 |
+
|
| 6 |
+
This plugin only protects your WordPress content. It **does not protect and images or uploaded files** so if you enter and exact URL to in image file it will still be accessible.
|
| 7 |
+
|
| 8 |
+
Features include:
|
| 9 |
+
|
| 10 |
+
- Password protect your WordPress site with a single password.
|
| 11 |
+
- Option to allow access to feeds.
|
| 12 |
+
- Option to allow administrators access without entering password.
|
| 13 |
+
- Works with Mark Jaquith's [Login Logo](http://wordpress.org/extend/plugins/login-logo/) plugin.
|
| 14 |
+
- Works with the [Uber Login Logo](http://wordpress.org/plugins/uber-login-logo/) plugin.
|
| 15 |
+
|
| 16 |
+
> Please note, this plugin does not currently work with WP Engine hosting due to their page caching implementation.
|
| 17 |
+
|
| 18 |
+
Translations
|
| 19 |
+
------------
|
| 20 |
+
|
| 21 |
+
If you would like to translate this plugin you can easily contribute via our [Transifex page](https://www.transifex.com/projects/p/password-protected/resource/password-protected/) - just signup for a free account.
|
| 22 |
+
More instructions can be found at [wp-translations.org](http://wp-translations.org/translators-wp-translations/)
|
| 23 |
+
|
| 24 |
+
Installation
|
| 25 |
+
------------
|
| 26 |
+
|
| 27 |
+
To install and configure this plugin...
|
| 28 |
+
|
| 29 |
+
1. Upload or install the plugin through your WordPress admin.
|
| 30 |
+
1. Activate the plugin via the 'Plugins' admin menu.
|
| 31 |
+
1. Configure the password options in the Password Protected settings.
|
| 32 |
+
|
| 33 |
+
Upgrading
|
| 34 |
+
---------
|
| 35 |
+
|
| 36 |
+
If you are upgrading manually via FTP rather that through the WordPress automatic upgrade link, please de-activate and re-activate the plugin to ensure the plugin upgrades correctly.
|
| 37 |
+
|
| 38 |
+
Frequently Asked Questions
|
| 39 |
+
--------------------------
|
| 40 |
+
|
| 41 |
+
__How can I change the Wordpress logo to a different image?__
|
| 42 |
+
Install and configure the [Login Logo](http://wordpress.org/extend/plugins/login-logo/) plugin by Mark Jaquith or the [Uber Login Logo](http://wordpress.org/plugins/uber-login-logo/) plugin. This will change the logo on your password entry page AND also your admin login page.
|
| 43 |
+
|
| 44 |
+
__How can I enable feeds while the site is password protected?__
|
| 45 |
+
In the settings, check the 'Allow Feeds' checkbox.
|
| 46 |
+
|
| 47 |
+
__Can I prevent administrators having to enter password?__
|
| 48 |
+
In the settings, check the 'Allow Administrators' checkbox.
|
| 49 |
+
|
| 50 |
+
__I cannot preview my changes in the Theme Customizer__
|
| 51 |
+
You must be an administrator (have the manage_options capability) and in the Password Protected settings, check the 'Allow Administrators' checkbox.
|
| 52 |
+
|
| 53 |
+
__How can I log out?__
|
| 54 |
+
Just add a "password-protected=logout" query to your URL.
|
| 55 |
+
eg. http://www.example.com/?password-protected=logout
|
| 56 |
+
|
| 57 |
+
__How can I redirect to a different domain name when logging out?__
|
| 58 |
+
If passing a redirect URL using 'redirect_to' when logging out you need you may need to use the [allowed domain names](https://codex.wordpress.org/Plugin_API/Filter_Reference/allowed_redirect_hosts) filter to allow redirecting to an external domain.
|
| 59 |
+
|
| 60 |
+
__Where can I report bugs and issues?__
|
| 61 |
+
Please log issues and bugs on the plugin's [GitHub page](https://github.com/benhuson/password-protected/issues).
|
| 62 |
+
You can also submit suggested enhancements if you like.
|
| 63 |
+
|
| 64 |
+
__How can I contribute?__
|
| 65 |
+
If you can, please [fork the code](https://github.com/benhuson/password-protected) and submit a pull request via GitHub. If you're not comfortable using Git, then please just submit it to the issues link above.
|
| 66 |
+
|
| 67 |
+
__How can I translate this plugin?__
|
| 68 |
+
If you would like to translate this plugin you can easily contribute via our [Transifex page](https://www.transifex.com/projects/p/password-protected/resource/password-protected/) - just signup for a free account.
|
| 69 |
+
More instructions can be found at [wp-translations.org](http://wp-translations.org/translators-wp-translations/)
|
| 70 |
+
|
| 71 |
+
Upgrade Notice
|
| 72 |
+
--------------
|
| 73 |
+
|
| 74 |
+
### 2.0.3
|
| 75 |
+
Show user's IP address beside "Allow IP Addresses" admin setting. Declare methods as public or private and use PHP5 constructors.
|
| 76 |
+
|
| 77 |
+
### 2.0.2
|
| 78 |
+
Only redirect to [allowed domain names](https://codex.wordpress.org/Plugin_API/Filter_Reference/allowed_redirect_hosts) when logging out.
|
| 79 |
+
|
| 80 |
+
### 2.0.1
|
| 81 |
+
Security fix: Use a more complex password hash for cookie key.
|
| 82 |
+
|
| 83 |
+
### 2.0
|
| 84 |
+
Added 'password_protected_logout_link' shortcode and use 'password-protected-login.css' in theme folder if it exists.
|
| 85 |
+
|
| 86 |
+
### 1.9
|
| 87 |
+
Fixed "Allow Users" functionality and added option to allowed IP addresses which can bypass the password protection.
|
| 88 |
+
|
| 89 |
+
### 1.8
|
| 90 |
+
Support for adding "password-protected-login.php" in theme directory and allow filtering of the 'redirect to' URL via the 'password_protected_login_redirect_url' filter.
|
| 91 |
+
|
| 92 |
+
### 1.7.2
|
| 93 |
+
Added 'password_protected_login_redirect' filter.
|
| 94 |
+
|
| 95 |
+
### 1.7.1
|
| 96 |
+
Fix login template compatibility for WordPress 3.9
|
| 97 |
+
|
| 98 |
+
### 1.7
|
| 99 |
+
Added 'password_protected_theme_file' filter and option to allow logged in users. Contribute to the translation of this plugin via our [Transifex page](https://www.transifex.com/projects/p/password-protected/resource/password-protected/).
|
| 100 |
+
|
| 101 |
+
### 1.6.2
|
| 102 |
+
Allow redirection to a different URL when logging out.
|
| 103 |
+
|
| 104 |
+
### 1.6
|
| 105 |
+
Added support for Uber Login Logo plugin.
|
| 106 |
+
|
| 107 |
+
### 1.5
|
| 108 |
+
Fixes an open redirect vulnerability. Settings now have own page.
|
| 109 |
+
|
| 110 |
+
### 1.4
|
| 111 |
+
Administrators can use the site without logging in. WordPress 3.5 compatible.
|
| 112 |
+
|
| 113 |
+
### 1.3
|
| 114 |
+
Allow access to feeds. Ready for translation.
|
| 115 |
+
|
| 116 |
+
### 1.2
|
| 117 |
+
Use cookies instead of sessions.
|
| 118 |
+
|
| 119 |
+
### 1.1
|
| 120 |
+
Passwords saved encrypted.
|
| 121 |
+
|
| 122 |
+
Changelog
|
| 123 |
+
---------
|
| 124 |
+
|
| 125 |
+
View a list of all plugin changes in [CHANGELOG.md](https://github.com/benhuson/password-protected/blob/master/CHANGELOG.md).
|
admin/admin.php
CHANGED
|
@@ -8,7 +8,7 @@ class Password_Protected_Admin {
|
|
| 8 |
/**
|
| 9 |
* Constructor
|
| 10 |
*/
|
| 11 |
-
function
|
| 12 |
|
| 13 |
global $wp_version;
|
| 14 |
|
|
@@ -25,7 +25,7 @@ class Password_Protected_Admin {
|
|
| 25 |
/**
|
| 26 |
* Admin Menu
|
| 27 |
*/
|
| 28 |
-
function admin_menu() {
|
| 29 |
|
| 30 |
$this->settings_page_id = add_options_page( __( 'Password Protected', 'password-protected' ), __( 'Password Protected', 'password-protected' ), 'manage_options', 'password-protected', array( $this, 'settings_page' ) );
|
| 31 |
add_action( 'load-' . $this->settings_page_id, array( $this, 'add_help_tabs' ), 20 );
|
|
@@ -35,7 +35,7 @@ class Password_Protected_Admin {
|
|
| 35 |
/**
|
| 36 |
* Settings Page
|
| 37 |
*/
|
| 38 |
-
function settings_page() {
|
| 39 |
?>
|
| 40 |
|
| 41 |
<div class="wrap">
|
|
@@ -56,7 +56,7 @@ class Password_Protected_Admin {
|
|
| 56 |
/**
|
| 57 |
* Add Help Tabs
|
| 58 |
*/
|
| 59 |
-
function add_help_tabs() {
|
| 60 |
|
| 61 |
global $wp_version;
|
| 62 |
|
|
@@ -73,7 +73,7 @@ class Password_Protected_Admin {
|
|
| 73 |
*
|
| 74 |
* @param object $current_screen Screen object.
|
| 75 |
*/
|
| 76 |
-
function help_tabs( $current_screen ) {
|
| 77 |
|
| 78 |
$current_screen->add_help_tab( array(
|
| 79 |
'id' => 'PASSWORD_PROTECTED_SETTINGS',
|
|
@@ -88,7 +88,7 @@ class Password_Protected_Admin {
|
|
| 88 |
/**
|
| 89 |
* Settings API
|
| 90 |
*/
|
| 91 |
-
function password_protected_settings() {
|
| 92 |
|
| 93 |
add_settings_section(
|
| 94 |
'password_protected',
|
|
@@ -144,7 +144,7 @@ class Password_Protected_Admin {
|
|
| 144 |
* @param string $val Password.
|
| 145 |
* @return string Sanitized password.
|
| 146 |
*/
|
| 147 |
-
function sanitize_password_protected_password( $val ) {
|
| 148 |
|
| 149 |
$old_val = get_option( 'password_protected_password' );
|
| 150 |
|
|
@@ -174,7 +174,7 @@ class Password_Protected_Admin {
|
|
| 174 |
* @param string $val IP addresses.
|
| 175 |
* @return string Sanitized IP addresses.
|
| 176 |
*/
|
| 177 |
-
function sanitize_ip_addresses( $val ) {
|
| 178 |
|
| 179 |
$ip_addresses = explode( "\n", $val );
|
| 180 |
$ip_addresses = array_map( 'sanitize_text_field', $ip_addresses );
|
|
@@ -203,7 +203,7 @@ class Password_Protected_Admin {
|
|
| 203 |
/**
|
| 204 |
* Password Protected Section
|
| 205 |
*/
|
| 206 |
-
function password_protected_settings_section() {
|
| 207 |
|
| 208 |
echo '<p>' . __( 'Password protect your web site. Users will be asked to enter a password to view the site.', 'password-protected' ) . '<br />
|
| 209 |
' . __( 'For more information about Password Protected settings, view the "Help" tab at the top of this page.', 'password-protected' ) . '</p>';
|
|
@@ -213,7 +213,7 @@ class Password_Protected_Admin {
|
|
| 213 |
/**
|
| 214 |
* Password Protection Status Field
|
| 215 |
*/
|
| 216 |
-
function password_protected_status_field() {
|
| 217 |
|
| 218 |
echo '<label><input name="password_protected_status" id="password_protected_status" type="checkbox" value="1" ' . checked( 1, get_option( 'password_protected_status' ), false ) . ' /> ' . __( 'Enabled', 'password-protected' ) . '</label>';
|
| 219 |
|
|
@@ -222,7 +222,7 @@ class Password_Protected_Admin {
|
|
| 222 |
/**
|
| 223 |
* Password Protection Permissions Field
|
| 224 |
*/
|
| 225 |
-
function password_protected_permissions_field() {
|
| 226 |
|
| 227 |
echo '<label><input name="password_protected_administrators" id="password_protected_administrators" type="checkbox" value="1" ' . checked( 1, get_option( 'password_protected_administrators' ), false ) . ' /> ' . __( 'Allow Administrators', 'password-protected' ) . '</label>';
|
| 228 |
echo '<label><input name="password_protected_users" id="password_protected_users" type="checkbox" value="1" ' . checked( 1, get_option( 'password_protected_users' ), false ) . ' style="margin-left: 20px;" /> ' . __( 'Allow Logged In Users', 'password-protected' ) . '</label>';
|
|
@@ -233,7 +233,7 @@ class Password_Protected_Admin {
|
|
| 233 |
/**
|
| 234 |
* Password Field
|
| 235 |
*/
|
| 236 |
-
function password_protected_password_field() {
|
| 237 |
|
| 238 |
echo '<input type="password" name="password_protected_password[new]" id="password_protected_password_new" size="16" value="" autocomplete="off"> <span class="description">' . __( 'If you would like to change the password type a new one. Otherwise leave this blank.', 'password-protected' ) . '</span><br>
|
| 239 |
<input type="password" name="password_protected_password[confirm]" id="password_protected_password_confirm" size="16" value="" autocomplete="off"> <span class="description">' . __( 'Type your new password again.', 'password-protected' ) . '</span>';
|
|
@@ -243,10 +243,10 @@ class Password_Protected_Admin {
|
|
| 243 |
/**
|
| 244 |
* Allowed IP Addresses Field
|
| 245 |
*/
|
| 246 |
-
function password_protected_allowed_ip_addresses_field() {
|
| 247 |
|
| 248 |
echo '<textarea name="password_protected_allowed_ip_addresses" id="password_protected_allowed_ip_addresses" rows="3" class="large-text" />' . get_option( 'password_protected_allowed_ip_addresses' ) . '</textarea>';
|
| 249 |
-
echo '<p class="description">' .
|
| 250 |
|
| 251 |
}
|
| 252 |
|
|
@@ -261,7 +261,7 @@ class Password_Protected_Admin {
|
|
| 261 |
* @param string $oldvalue Old Value.
|
| 262 |
* @return string Filtered new value.
|
| 263 |
*/
|
| 264 |
-
function pre_update_option_password_protected_password( $newvalue, $oldvalue ) {
|
| 265 |
|
| 266 |
global $Password_Protected;
|
| 267 |
|
|
@@ -284,7 +284,7 @@ class Password_Protected_Admin {
|
|
| 284 |
* @param string $status Plugin status.
|
| 285 |
* @return array Plugin meta array.
|
| 286 |
*/
|
| 287 |
-
function plugin_row_meta( $plugin_meta, $plugin_file, $plugin_data, $status ) {
|
| 288 |
|
| 289 |
if ( 'password-protected/password-protected.php' == $plugin_file ) {
|
| 290 |
$plugin_meta[] = sprintf( '<a href="%s">%s</a>', __( 'http://github.com/benhuson/password-protected', 'password-protected' ), __( 'GitHub', 'password-protected' ) );
|
|
@@ -303,7 +303,7 @@ class Password_Protected_Admin {
|
|
| 303 |
* @param array $actions Plugin action links array.
|
| 304 |
* @return array Plugin action links array.
|
| 305 |
*/
|
| 306 |
-
function plugin_action_links( $actions ) {
|
| 307 |
|
| 308 |
$actions[] = sprintf( '<a href="%s">%s</a>', admin_url( 'options-general.php?page=password-protected' ), __( 'Settings', 'password-protected' ) );
|
| 309 |
return $actions;
|
|
@@ -314,7 +314,7 @@ class Password_Protected_Admin {
|
|
| 314 |
* Password Admin Notice
|
| 315 |
* Warns the user if they have enabled password protection but not entered a password
|
| 316 |
*/
|
| 317 |
-
function password_protected_admin_notices() {
|
| 318 |
|
| 319 |
global $Password_Protected;
|
| 320 |
|
|
@@ -358,7 +358,7 @@ class Password_Protected_Admin {
|
|
| 358 |
* @param string $string Error string.
|
| 359 |
* @return string HTML error.
|
| 360 |
*/
|
| 361 |
-
function admin_error_display( $string ) {
|
| 362 |
|
| 363 |
return '<div class="error"><p>' . $string . '</p></div>';
|
| 364 |
|
|
@@ -372,7 +372,7 @@ class Password_Protected_Admin {
|
|
| 372 |
* @param string|array $screen_id Admin screen ID(s).
|
| 373 |
* @return boolean
|
| 374 |
*/
|
| 375 |
-
function is_current_screen( $screen_id ) {
|
| 376 |
|
| 377 |
if ( function_exists( 'get_current_screen' ) ) {
|
| 378 |
$current_screen = get_current_screen();
|
|
@@ -394,7 +394,7 @@ class Password_Protected_Admin {
|
|
| 394 |
* @param string|array $screen_id Additional screen IDs to add to the returned array.
|
| 395 |
* @return array Screen IDs.
|
| 396 |
*/
|
| 397 |
-
function plugin_screen_ids( $screen_id = '' ) {
|
| 398 |
|
| 399 |
$screen_ids = array( 'options-' . $this->options_group, 'settings_page_' . $this->options_group );
|
| 400 |
|
| 8 |
/**
|
| 9 |
* Constructor
|
| 10 |
*/
|
| 11 |
+
public function __construct() {
|
| 12 |
|
| 13 |
global $wp_version;
|
| 14 |
|
| 25 |
/**
|
| 26 |
* Admin Menu
|
| 27 |
*/
|
| 28 |
+
public function admin_menu() {
|
| 29 |
|
| 30 |
$this->settings_page_id = add_options_page( __( 'Password Protected', 'password-protected' ), __( 'Password Protected', 'password-protected' ), 'manage_options', 'password-protected', array( $this, 'settings_page' ) );
|
| 31 |
add_action( 'load-' . $this->settings_page_id, array( $this, 'add_help_tabs' ), 20 );
|
| 35 |
/**
|
| 36 |
* Settings Page
|
| 37 |
*/
|
| 38 |
+
public function settings_page() {
|
| 39 |
?>
|
| 40 |
|
| 41 |
<div class="wrap">
|
| 56 |
/**
|
| 57 |
* Add Help Tabs
|
| 58 |
*/
|
| 59 |
+
public function add_help_tabs() {
|
| 60 |
|
| 61 |
global $wp_version;
|
| 62 |
|
| 73 |
*
|
| 74 |
* @param object $current_screen Screen object.
|
| 75 |
*/
|
| 76 |
+
public function help_tabs( $current_screen ) {
|
| 77 |
|
| 78 |
$current_screen->add_help_tab( array(
|
| 79 |
'id' => 'PASSWORD_PROTECTED_SETTINGS',
|
| 88 |
/**
|
| 89 |
* Settings API
|
| 90 |
*/
|
| 91 |
+
public function password_protected_settings() {
|
| 92 |
|
| 93 |
add_settings_section(
|
| 94 |
'password_protected',
|
| 144 |
* @param string $val Password.
|
| 145 |
* @return string Sanitized password.
|
| 146 |
*/
|
| 147 |
+
public function sanitize_password_protected_password( $val ) {
|
| 148 |
|
| 149 |
$old_val = get_option( 'password_protected_password' );
|
| 150 |
|
| 174 |
* @param string $val IP addresses.
|
| 175 |
* @return string Sanitized IP addresses.
|
| 176 |
*/
|
| 177 |
+
public function sanitize_ip_addresses( $val ) {
|
| 178 |
|
| 179 |
$ip_addresses = explode( "\n", $val );
|
| 180 |
$ip_addresses = array_map( 'sanitize_text_field', $ip_addresses );
|
| 203 |
/**
|
| 204 |
* Password Protected Section
|
| 205 |
*/
|
| 206 |
+
public function password_protected_settings_section() {
|
| 207 |
|
| 208 |
echo '<p>' . __( 'Password protect your web site. Users will be asked to enter a password to view the site.', 'password-protected' ) . '<br />
|
| 209 |
' . __( 'For more information about Password Protected settings, view the "Help" tab at the top of this page.', 'password-protected' ) . '</p>';
|
| 213 |
/**
|
| 214 |
* Password Protection Status Field
|
| 215 |
*/
|
| 216 |
+
public function password_protected_status_field() {
|
| 217 |
|
| 218 |
echo '<label><input name="password_protected_status" id="password_protected_status" type="checkbox" value="1" ' . checked( 1, get_option( 'password_protected_status' ), false ) . ' /> ' . __( 'Enabled', 'password-protected' ) . '</label>';
|
| 219 |
|
| 222 |
/**
|
| 223 |
* Password Protection Permissions Field
|
| 224 |
*/
|
| 225 |
+
public function password_protected_permissions_field() {
|
| 226 |
|
| 227 |
echo '<label><input name="password_protected_administrators" id="password_protected_administrators" type="checkbox" value="1" ' . checked( 1, get_option( 'password_protected_administrators' ), false ) . ' /> ' . __( 'Allow Administrators', 'password-protected' ) . '</label>';
|
| 228 |
echo '<label><input name="password_protected_users" id="password_protected_users" type="checkbox" value="1" ' . checked( 1, get_option( 'password_protected_users' ), false ) . ' style="margin-left: 20px;" /> ' . __( 'Allow Logged In Users', 'password-protected' ) . '</label>';
|
| 233 |
/**
|
| 234 |
* Password Field
|
| 235 |
*/
|
| 236 |
+
public function password_protected_password_field() {
|
| 237 |
|
| 238 |
echo '<input type="password" name="password_protected_password[new]" id="password_protected_password_new" size="16" value="" autocomplete="off"> <span class="description">' . __( 'If you would like to change the password type a new one. Otherwise leave this blank.', 'password-protected' ) . '</span><br>
|
| 239 |
<input type="password" name="password_protected_password[confirm]" id="password_protected_password_confirm" size="16" value="" autocomplete="off"> <span class="description">' . __( 'Type your new password again.', 'password-protected' ) . '</span>';
|
| 243 |
/**
|
| 244 |
* Allowed IP Addresses Field
|
| 245 |
*/
|
| 246 |
+
public function password_protected_allowed_ip_addresses_field() {
|
| 247 |
|
| 248 |
echo '<textarea name="password_protected_allowed_ip_addresses" id="password_protected_allowed_ip_addresses" rows="3" class="large-text" />' . get_option( 'password_protected_allowed_ip_addresses' ) . '</textarea>';
|
| 249 |
+
echo '<p class="description">' . esc_html__( 'Enter one IP address per line.', 'password-protected' ) . ' ' . esc_html( sprintf( __( 'Your IP is address %s.', 'password-protected' ), $_SERVER['REMOTE_ADDR'] ) ) . '</p>';
|
| 250 |
|
| 251 |
}
|
| 252 |
|
| 261 |
* @param string $oldvalue Old Value.
|
| 262 |
* @return string Filtered new value.
|
| 263 |
*/
|
| 264 |
+
public function pre_update_option_password_protected_password( $newvalue, $oldvalue ) {
|
| 265 |
|
| 266 |
global $Password_Protected;
|
| 267 |
|
| 284 |
* @param string $status Plugin status.
|
| 285 |
* @return array Plugin meta array.
|
| 286 |
*/
|
| 287 |
+
public function plugin_row_meta( $plugin_meta, $plugin_file, $plugin_data, $status ) {
|
| 288 |
|
| 289 |
if ( 'password-protected/password-protected.php' == $plugin_file ) {
|
| 290 |
$plugin_meta[] = sprintf( '<a href="%s">%s</a>', __( 'http://github.com/benhuson/password-protected', 'password-protected' ), __( 'GitHub', 'password-protected' ) );
|
| 303 |
* @param array $actions Plugin action links array.
|
| 304 |
* @return array Plugin action links array.
|
| 305 |
*/
|
| 306 |
+
public function plugin_action_links( $actions ) {
|
| 307 |
|
| 308 |
$actions[] = sprintf( '<a href="%s">%s</a>', admin_url( 'options-general.php?page=password-protected' ), __( 'Settings', 'password-protected' ) );
|
| 309 |
return $actions;
|
| 314 |
* Password Admin Notice
|
| 315 |
* Warns the user if they have enabled password protection but not entered a password
|
| 316 |
*/
|
| 317 |
+
public function password_protected_admin_notices() {
|
| 318 |
|
| 319 |
global $Password_Protected;
|
| 320 |
|
| 358 |
* @param string $string Error string.
|
| 359 |
* @return string HTML error.
|
| 360 |
*/
|
| 361 |
+
private function admin_error_display( $string ) {
|
| 362 |
|
| 363 |
return '<div class="error"><p>' . $string . '</p></div>';
|
| 364 |
|
| 372 |
* @param string|array $screen_id Admin screen ID(s).
|
| 373 |
* @return boolean
|
| 374 |
*/
|
| 375 |
+
public function is_current_screen( $screen_id ) {
|
| 376 |
|
| 377 |
if ( function_exists( 'get_current_screen' ) ) {
|
| 378 |
$current_screen = get_current_screen();
|
| 394 |
* @param string|array $screen_id Additional screen IDs to add to the returned array.
|
| 395 |
* @return array Screen IDs.
|
| 396 |
*/
|
| 397 |
+
public function plugin_screen_ids( $screen_id = '' ) {
|
| 398 |
|
| 399 |
$screen_ids = array( 'options-' . $this->options_group, 'settings_page_' . $this->options_group );
|
| 400 |
|
languages/password-protected.pot
CHANGED
|
@@ -1,10 +1,11 @@
|
|
| 1 |
# Copyright (C) 2013 Password Protected
|
| 2 |
# This file is distributed under the same license as the Password Protected package.
|
|
|
|
| 3 |
msgid ""
|
| 4 |
msgstr ""
|
| 5 |
"Project-Id-Version: Password Protected\n"
|
| 6 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/password-protected\n"
|
| 7 |
-
"POT-Creation-Date:
|
| 8 |
"PO-Revision-Date: 2015-05-14 23:15-0000\n"
|
| 9 |
"Last-Translator: Ben Huson <ben@thewhiteroom.net>\n"
|
| 10 |
"Language-Team: LANGUAGE\n"
|
|
@@ -12,9 +13,9 @@ msgstr ""
|
|
| 12 |
"MIME-Version: 1.0\n"
|
| 13 |
"Content-Type: text/plain; charset=UTF-8\n"
|
| 14 |
"Content-Transfer-Encoding: 8bit\n"
|
| 15 |
-
"X-Generator: Poedit 1.7
|
| 16 |
"X-Poedit-KeywordsList: __;_e;_ex;_x\n"
|
| 17 |
-
"X-Poedit-Basepath:
|
| 18 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
| 19 |
"X-Poedit-SearchPath-0: ..\n"
|
| 20 |
|
|
@@ -82,89 +83,90 @@ msgstr ""
|
|
| 82 |
msgid "New password saved."
|
| 83 |
msgstr ""
|
| 84 |
|
| 85 |
-
#: ../admin/admin.php:
|
| 86 |
msgid ""
|
| 87 |
"Password protect your web site. Users will be asked to enter a password to view "
|
| 88 |
"the site."
|
| 89 |
msgstr ""
|
| 90 |
|
| 91 |
-
#: ../admin/admin.php:
|
| 92 |
msgid ""
|
| 93 |
"For more information about Password Protected settings, view the \"Help\" tab at "
|
| 94 |
"the top of this page."
|
| 95 |
msgstr ""
|
| 96 |
|
| 97 |
-
#: ../admin/admin.php:
|
| 98 |
msgid "Enabled"
|
| 99 |
msgstr ""
|
| 100 |
|
| 101 |
-
#: ../admin/admin.php:
|
| 102 |
msgid "Allow Administrators"
|
| 103 |
msgstr ""
|
| 104 |
|
| 105 |
-
#: ../admin/admin.php:
|
| 106 |
msgid "Allow Logged In Users"
|
| 107 |
msgstr ""
|
| 108 |
|
| 109 |
-
#: ../admin/admin.php:
|
| 110 |
msgid "Allow RSS Feeds"
|
| 111 |
msgstr ""
|
| 112 |
|
| 113 |
-
#: ../admin/admin.php:
|
| 114 |
msgid ""
|
| 115 |
"If you would like to change the password type a new one. Otherwise leave this "
|
| 116 |
"blank."
|
| 117 |
msgstr ""
|
| 118 |
|
| 119 |
-
#: ../admin/admin.php:
|
| 120 |
msgid "Type your new password again."
|
| 121 |
msgstr ""
|
| 122 |
|
| 123 |
-
#: ../admin/admin.php:
|
| 124 |
-
|
|
|
|
| 125 |
msgstr ""
|
| 126 |
|
| 127 |
-
#: ../admin/admin.php:
|
| 128 |
msgid "http://github.com/benhuson/password-protected"
|
| 129 |
msgstr ""
|
| 130 |
|
| 131 |
-
#: ../admin/admin.php:
|
| 132 |
msgid "GitHub"
|
| 133 |
msgstr ""
|
| 134 |
|
| 135 |
-
#: ../admin/admin.php:
|
| 136 |
msgid ""
|
| 137 |
"https://www.transifex.com/projects/p/password-protected/resource/password-"
|
| 138 |
"protected/"
|
| 139 |
msgstr ""
|
| 140 |
|
| 141 |
-
#: ../admin/admin.php:
|
| 142 |
msgid "Translate"
|
| 143 |
msgstr ""
|
| 144 |
|
| 145 |
-
#: ../admin/admin.php:
|
| 146 |
msgid "Settings"
|
| 147 |
msgstr ""
|
| 148 |
|
| 149 |
-
#: ../admin/admin.php:
|
| 150 |
msgid ""
|
| 151 |
"You have enabled password protection but not yet set a password. Please set one "
|
| 152 |
"below."
|
| 153 |
msgstr ""
|
| 154 |
|
| 155 |
-
#: ../admin/admin.php:
|
| 156 |
msgid ""
|
| 157 |
"You have enabled password protection and allowed administrators and logged in "
|
| 158 |
"users - other users will still need to enter a password to view the site."
|
| 159 |
msgstr ""
|
| 160 |
|
| 161 |
-
#: ../admin/admin.php:
|
| 162 |
msgid ""
|
| 163 |
"You have enabled password protection and allowed administrators - other users "
|
| 164 |
"will still need to enter a password to view the site."
|
| 165 |
msgstr ""
|
| 166 |
|
| 167 |
-
#: ../admin/admin.php:
|
| 168 |
msgid ""
|
| 169 |
"You have enabled password protection and allowed logged in users - other users "
|
| 170 |
"will still need to enter a password to view the site."
|
|
@@ -185,7 +187,7 @@ msgstr ""
|
|
| 185 |
msgid "Logout"
|
| 186 |
msgstr ""
|
| 187 |
|
| 188 |
-
#: ../password-protected.php:
|
| 189 |
msgid ""
|
| 190 |
"The Password Protected plugin does not work with WP Engine hosting. Please "
|
| 191 |
"disable it."
|
| 1 |
# Copyright (C) 2013 Password Protected
|
| 2 |
# This file is distributed under the same license as the Password Protected package.
|
| 3 |
+
#, fuzzy
|
| 4 |
msgid ""
|
| 5 |
msgstr ""
|
| 6 |
"Project-Id-Version: Password Protected\n"
|
| 7 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/password-protected\n"
|
| 8 |
+
"POT-Creation-Date: 2016-03-23 00:25+0000\n"
|
| 9 |
"PO-Revision-Date: 2015-05-14 23:15-0000\n"
|
| 10 |
"Last-Translator: Ben Huson <ben@thewhiteroom.net>\n"
|
| 11 |
"Language-Team: LANGUAGE\n"
|
| 13 |
"MIME-Version: 1.0\n"
|
| 14 |
"Content-Type: text/plain; charset=UTF-8\n"
|
| 15 |
"Content-Transfer-Encoding: 8bit\n"
|
| 16 |
+
"X-Generator: Poedit 1.8.7\n"
|
| 17 |
"X-Poedit-KeywordsList: __;_e;_ex;_x\n"
|
| 18 |
+
"X-Poedit-Basepath: .\n"
|
| 19 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
| 20 |
"X-Poedit-SearchPath-0: ..\n"
|
| 21 |
|
| 83 |
msgid "New password saved."
|
| 84 |
msgstr ""
|
| 85 |
|
| 86 |
+
#: ../admin/admin.php:208
|
| 87 |
msgid ""
|
| 88 |
"Password protect your web site. Users will be asked to enter a password to view "
|
| 89 |
"the site."
|
| 90 |
msgstr ""
|
| 91 |
|
| 92 |
+
#: ../admin/admin.php:209
|
| 93 |
msgid ""
|
| 94 |
"For more information about Password Protected settings, view the \"Help\" tab at "
|
| 95 |
"the top of this page."
|
| 96 |
msgstr ""
|
| 97 |
|
| 98 |
+
#: ../admin/admin.php:218
|
| 99 |
msgid "Enabled"
|
| 100 |
msgstr ""
|
| 101 |
|
| 102 |
+
#: ../admin/admin.php:227
|
| 103 |
msgid "Allow Administrators"
|
| 104 |
msgstr ""
|
| 105 |
|
| 106 |
+
#: ../admin/admin.php:228
|
| 107 |
msgid "Allow Logged In Users"
|
| 108 |
msgstr ""
|
| 109 |
|
| 110 |
+
#: ../admin/admin.php:229
|
| 111 |
msgid "Allow RSS Feeds"
|
| 112 |
msgstr ""
|
| 113 |
|
| 114 |
+
#: ../admin/admin.php:238
|
| 115 |
msgid ""
|
| 116 |
"If you would like to change the password type a new one. Otherwise leave this "
|
| 117 |
"blank."
|
| 118 |
msgstr ""
|
| 119 |
|
| 120 |
+
#: ../admin/admin.php:239
|
| 121 |
msgid "Type your new password again."
|
| 122 |
msgstr ""
|
| 123 |
|
| 124 |
+
#: ../admin/admin.php:249
|
| 125 |
+
#, php-format
|
| 126 |
+
msgid "Your IP is address %s."
|
| 127 |
msgstr ""
|
| 128 |
|
| 129 |
+
#: ../admin/admin.php:290
|
| 130 |
msgid "http://github.com/benhuson/password-protected"
|
| 131 |
msgstr ""
|
| 132 |
|
| 133 |
+
#: ../admin/admin.php:290
|
| 134 |
msgid "GitHub"
|
| 135 |
msgstr ""
|
| 136 |
|
| 137 |
+
#: ../admin/admin.php:291
|
| 138 |
msgid ""
|
| 139 |
"https://www.transifex.com/projects/p/password-protected/resource/password-"
|
| 140 |
"protected/"
|
| 141 |
msgstr ""
|
| 142 |
|
| 143 |
+
#: ../admin/admin.php:291
|
| 144 |
msgid "Translate"
|
| 145 |
msgstr ""
|
| 146 |
|
| 147 |
+
#: ../admin/admin.php:308
|
| 148 |
msgid "Settings"
|
| 149 |
msgstr ""
|
| 150 |
|
| 151 |
+
#: ../admin/admin.php:336
|
| 152 |
msgid ""
|
| 153 |
"You have enabled password protection but not yet set a password. Please set one "
|
| 154 |
"below."
|
| 155 |
msgstr ""
|
| 156 |
|
| 157 |
+
#: ../admin/admin.php:341
|
| 158 |
msgid ""
|
| 159 |
"You have enabled password protection and allowed administrators and logged in "
|
| 160 |
"users - other users will still need to enter a password to view the site."
|
| 161 |
msgstr ""
|
| 162 |
|
| 163 |
+
#: ../admin/admin.php:343
|
| 164 |
msgid ""
|
| 165 |
"You have enabled password protection and allowed administrators - other users "
|
| 166 |
"will still need to enter a password to view the site."
|
| 167 |
msgstr ""
|
| 168 |
|
| 169 |
+
#: ../admin/admin.php:345
|
| 170 |
msgid ""
|
| 171 |
"You have enabled password protection and allowed logged in users - other users "
|
| 172 |
"will still need to enter a password to view the site."
|
| 187 |
msgid "Logout"
|
| 188 |
msgstr ""
|
| 189 |
|
| 190 |
+
#: ../password-protected.php:760
|
| 191 |
msgid ""
|
| 192 |
"The Password Protected plugin does not work with WP Engine hosting. Please "
|
| 193 |
"disable it."
|
password-protected.php
CHANGED
|
@@ -4,7 +4,7 @@
|
|
| 4 |
Plugin Name: Password Protected
|
| 5 |
Plugin URI: https://wordpress.org/plugins/password-protected/
|
| 6 |
Description: A very simple way to quickly password protect your WordPress site with a single password. Please note: This plugin does not restrict access to uploaded files and images and does not work on WP Engine or with some caching setups.
|
| 7 |
-
Version: 2.0.
|
| 8 |
Author: Ben Huson
|
| 9 |
Text Domain: password-protected
|
| 10 |
Author URI: http://github.com/benhuson/password-protected/
|
|
@@ -42,14 +42,14 @@ $Password_Protected = new Password_Protected();
|
|
| 42 |
|
| 43 |
class Password_Protected {
|
| 44 |
|
| 45 |
-
var $version = '2.0.
|
| 46 |
var $admin = null;
|
| 47 |
var $errors = null;
|
| 48 |
|
| 49 |
/**
|
| 50 |
* Constructor
|
| 51 |
*/
|
| 52 |
-
function
|
| 53 |
|
| 54 |
$this->errors = new WP_Error();
|
| 55 |
|
|
@@ -83,7 +83,7 @@ class Password_Protected {
|
|
| 83 |
/**
|
| 84 |
* I18n
|
| 85 |
*/
|
| 86 |
-
function load_plugin_textdomain() {
|
| 87 |
|
| 88 |
load_plugin_textdomain( 'password-protected', false, basename( dirname( __FILE__ ) ) . '/languages' );
|
| 89 |
|
|
@@ -92,7 +92,7 @@ class Password_Protected {
|
|
| 92 |
/**
|
| 93 |
* Disable Page Caching
|
| 94 |
*/
|
| 95 |
-
function disable_caching() {
|
| 96 |
|
| 97 |
if ( $this->is_active() && ! defined( 'DONOTCACHEPAGE' ) ) {
|
| 98 |
define( 'DONOTCACHEPAGE', true );
|
|
@@ -105,7 +105,7 @@ class Password_Protected {
|
|
| 105 |
*
|
| 106 |
* @return boolean Is password protection active?
|
| 107 |
*/
|
| 108 |
-
function is_active() {
|
| 109 |
|
| 110 |
global $wp_query;
|
| 111 |
|
|
@@ -135,7 +135,7 @@ class Password_Protected {
|
|
| 135 |
*
|
| 136 |
* @todo An option/filter to prevent disabling of feeds.
|
| 137 |
*/
|
| 138 |
-
function disable_feeds() {
|
| 139 |
|
| 140 |
if ( $this->is_active() ) {
|
| 141 |
add_action( 'do_feed', array( $this, 'disable_feed' ), 1 );
|
|
@@ -152,7 +152,7 @@ class Password_Protected {
|
|
| 152 |
*
|
| 153 |
* @todo Make Translatable
|
| 154 |
*/
|
| 155 |
-
function disable_feed() {
|
| 156 |
|
| 157 |
wp_die( sprintf( __( 'Feeds are not available for this site. Please visit the <a href="%s">website</a>.', 'password-protected' ), get_bloginfo( 'url' ) ) );
|
| 158 |
|
|
@@ -164,7 +164,7 @@ class Password_Protected {
|
|
| 164 |
* @param boolean $bool Allow feeds.
|
| 165 |
* @return boolean True/false.
|
| 166 |
*/
|
| 167 |
-
function allow_feeds( $bool ) {
|
| 168 |
|
| 169 |
if ( is_feed() && (bool) get_option( 'password_protected_feeds' ) ) {
|
| 170 |
return 0;
|
|
@@ -180,7 +180,7 @@ class Password_Protected {
|
|
| 180 |
* @param boolean $bool Allow administrators.
|
| 181 |
* @return boolean True/false.
|
| 182 |
*/
|
| 183 |
-
function allow_administrators( $bool ) {
|
| 184 |
|
| 185 |
if ( ! is_admin() && current_user_can( 'manage_options' ) && (bool) get_option( 'password_protected_administrators' ) ) {
|
| 186 |
return 0;
|
|
@@ -196,7 +196,7 @@ class Password_Protected {
|
|
| 196 |
* @param boolean $bool Allow administrators.
|
| 197 |
* @return boolean True/false.
|
| 198 |
*/
|
| 199 |
-
function allow_users( $bool ) {
|
| 200 |
|
| 201 |
if ( ! is_admin() && is_user_logged_in() && (bool) get_option( 'password_protected_users' ) ) {
|
| 202 |
return 0;
|
|
@@ -214,7 +214,7 @@ class Password_Protected {
|
|
| 214 |
* @param boolean $bool Allow IP addresses.
|
| 215 |
* @return boolean True/false.
|
| 216 |
*/
|
| 217 |
-
function allow_ip_addresses( $bool ) {
|
| 218 |
|
| 219 |
$ip_addresses = $this->get_allowed_ip_addresses();
|
| 220 |
|
|
@@ -231,7 +231,7 @@ class Password_Protected {
|
|
| 231 |
*
|
| 232 |
* @return array IP addresses.
|
| 233 |
*/
|
| 234 |
-
function get_allowed_ip_addresses() {
|
| 235 |
|
| 236 |
return explode( "\n", get_option( 'password_protected_allowed_ip_addresses' ) );
|
| 237 |
|
|
@@ -243,7 +243,7 @@ class Password_Protected {
|
|
| 243 |
* @param string $password Password.
|
| 244 |
* @return string Encrypted password.
|
| 245 |
*/
|
| 246 |
-
function encrypt_password( $password ) {
|
| 247 |
|
| 248 |
return md5( $password );
|
| 249 |
|
|
@@ -252,7 +252,7 @@ class Password_Protected {
|
|
| 252 |
/**
|
| 253 |
* Maybe Process Logout
|
| 254 |
*/
|
| 255 |
-
function maybe_process_logout() {
|
| 256 |
|
| 257 |
if ( isset( $_REQUEST['password-protected'] ) && $_REQUEST['password-protected'] == 'logout' ) {
|
| 258 |
|
|
@@ -274,7 +274,7 @@ class Password_Protected {
|
|
| 274 |
/**
|
| 275 |
* Maybe Process Login
|
| 276 |
*/
|
| 277 |
-
function maybe_process_login() {
|
| 278 |
|
| 279 |
if ( $this->is_active() && isset( $_REQUEST['password_protected_pwd'] ) ) {
|
| 280 |
$password_protected_pwd = $_REQUEST['password_protected_pwd'];
|
|
@@ -309,7 +309,7 @@ class Password_Protected {
|
|
| 309 |
*
|
| 310 |
* @return boolean
|
| 311 |
*/
|
| 312 |
-
function is_user_logged_in() {
|
| 313 |
|
| 314 |
return $this->is_active() && $this->validate_auth_cookie();
|
| 315 |
|
|
@@ -318,7 +318,7 @@ class Password_Protected {
|
|
| 318 |
/**
|
| 319 |
* Maybe Show Login
|
| 320 |
*/
|
| 321 |
-
function maybe_show_login() {
|
| 322 |
|
| 323 |
// Don't show login if not enabled
|
| 324 |
if ( ! $this->is_active() ) {
|
|
@@ -368,7 +368,7 @@ class Password_Protected {
|
|
| 368 |
*
|
| 369 |
* @return string Site ID.
|
| 370 |
*/
|
| 371 |
-
function get_site_id() {
|
| 372 |
|
| 373 |
global $blog_id;
|
| 374 |
return 'bid_' . apply_filters( 'password_protected_blog_id', $blog_id );
|
|
@@ -380,7 +380,7 @@ class Password_Protected {
|
|
| 380 |
*
|
| 381 |
* @return string Login URL.
|
| 382 |
*/
|
| 383 |
-
function login_url() {
|
| 384 |
|
| 385 |
return add_query_arg( 'password-protected', 'login', home_url( '/' ) );
|
| 386 |
|
|
@@ -389,7 +389,7 @@ class Password_Protected {
|
|
| 389 |
/**
|
| 390 |
* Logout
|
| 391 |
*/
|
| 392 |
-
function logout() {
|
| 393 |
|
| 394 |
$this->clear_auth_cookie();
|
| 395 |
do_action( 'password_protected_logout' );
|
|
@@ -402,7 +402,7 @@ class Password_Protected {
|
|
| 402 |
* @param string $redirect_to Optional. Redirect URL.
|
| 403 |
* @return string Logout URL.
|
| 404 |
*/
|
| 405 |
-
function logout_url( $redirect_to = '' ) {
|
| 406 |
|
| 407 |
$query = array(
|
| 408 |
'password-protected' => 'logout',
|
|
@@ -423,7 +423,7 @@ class Password_Protected {
|
|
| 423 |
* @param array $args Link args.
|
| 424 |
* @return string HTML link tag.
|
| 425 |
*/
|
| 426 |
-
function logout_link( $args = null ) {
|
| 427 |
|
| 428 |
// Only show if user is logged in
|
| 429 |
if ( ! $this->is_user_logged_in() ) {
|
|
@@ -449,7 +449,7 @@ class Password_Protected {
|
|
| 449 |
* @param array $args Link args.
|
| 450 |
* @return string HTML link tag.
|
| 451 |
*/
|
| 452 |
-
function logout_link_shortcode( $atts, $content = null ) {
|
| 453 |
|
| 454 |
$atts = shortcode_atts( array(
|
| 455 |
'redirect_to' => '',
|
|
@@ -465,7 +465,7 @@ class Password_Protected {
|
|
| 465 |
*
|
| 466 |
* @return string Hashed password.
|
| 467 |
*/
|
| 468 |
-
function get_hashed_password() {
|
| 469 |
|
| 470 |
return md5( get_option( 'password_protected_password' ) . wp_salt() );
|
| 471 |
|
|
@@ -478,7 +478,7 @@ class Password_Protected {
|
|
| 478 |
* @param string $scheme Cookie scheme.
|
| 479 |
* @return boolean Validation successful?
|
| 480 |
*/
|
| 481 |
-
function validate_auth_cookie( $cookie = '', $scheme = '' ) {
|
| 482 |
|
| 483 |
if ( ! $cookie_elements = $this->parse_auth_cookie( $cookie, $scheme ) ) {
|
| 484 |
do_action( 'password_protected_auth_cookie_malformed', $cookie, $scheme );
|
|
@@ -523,7 +523,7 @@ class Password_Protected {
|
|
| 523 |
* @param string $scheme Cookie scheme.
|
| 524 |
* @return string Cookie.
|
| 525 |
*/
|
| 526 |
-
function generate_auth_cookie( $expiration, $scheme = 'auth' ) {
|
| 527 |
|
| 528 |
$key = md5( $this->get_site_id() . $this->get_hashed_password() . '|' . $expiration );
|
| 529 |
$hash = hash_hmac( 'md5', $this->get_site_id() . '|' . $expiration, $key );
|
|
@@ -540,7 +540,7 @@ class Password_Protected {
|
|
| 540 |
* @param string $scheme Cookie scheme.
|
| 541 |
* @return string Cookie string.
|
| 542 |
*/
|
| 543 |
-
function parse_auth_cookie( $cookie = '', $scheme = '' ) {
|
| 544 |
|
| 545 |
if ( empty( $cookie ) ) {
|
| 546 |
$cookie_name = $this->cookie_name();
|
|
@@ -570,7 +570,7 @@ class Password_Protected {
|
|
| 570 |
* @param boolean $remember Remember logged in.
|
| 571 |
* @param string $secure Secure cookie.
|
| 572 |
*/
|
| 573 |
-
function set_auth_cookie( $remember = false, $secure = '') {
|
| 574 |
|
| 575 |
if ( $remember ) {
|
| 576 |
$expiration = $expire = current_time( 'timestamp' ) + apply_filters( 'password_protected_auth_cookie_expiration', 1209600, $remember );
|
|
@@ -596,7 +596,7 @@ class Password_Protected {
|
|
| 596 |
/**
|
| 597 |
* Clear Auth Cookie
|
| 598 |
*/
|
| 599 |
-
function clear_auth_cookie() {
|
| 600 |
|
| 601 |
setcookie( $this->cookie_name(), ' ', current_time( 'timestamp' ) - 31536000, COOKIEPATH, COOKIE_DOMAIN );
|
| 602 |
setcookie( $this->cookie_name(), ' ', current_time( 'timestamp' ) - 31536000, SITECOOKIEPATH, COOKIE_DOMAIN );
|
|
@@ -608,7 +608,7 @@ class Password_Protected {
|
|
| 608 |
*
|
| 609 |
* @return string Cookie name.
|
| 610 |
*/
|
| 611 |
-
function cookie_name() {
|
| 612 |
|
| 613 |
return $this->get_site_id() . '_password_protected_auth';
|
| 614 |
|
|
@@ -617,7 +617,7 @@ class Password_Protected {
|
|
| 617 |
/**
|
| 618 |
* Install
|
| 619 |
*/
|
| 620 |
-
function install() {
|
| 621 |
|
| 622 |
$old_version = get_option( 'password_protected_version' );
|
| 623 |
|
|
@@ -708,7 +708,7 @@ class Password_Protected {
|
|
| 708 |
* Possible to specify a different file in the theme folder via the
|
| 709 |
* 'password_protected_stylesheet_file' filter (allows for theme subfolders).
|
| 710 |
*/
|
| 711 |
-
function load_theme_stylesheet() {
|
| 712 |
|
| 713 |
$filename = apply_filters( 'password_protected_stylesheet_file', 'password-protected-login.css' );
|
| 714 |
|
|
@@ -736,7 +736,7 @@ class Password_Protected {
|
|
| 736 |
* If invalid will redirect to ...
|
| 737 |
* Based on the WordPress wp_safe_redirect() function.
|
| 738 |
*/
|
| 739 |
-
function safe_redirect( $location, $status = 302 ) {
|
| 740 |
|
| 741 |
$location = wp_sanitize_redirect( $location );
|
| 742 |
$location = wp_validate_redirect( $location, home_url() );
|
| 4 |
Plugin Name: Password Protected
|
| 5 |
Plugin URI: https://wordpress.org/plugins/password-protected/
|
| 6 |
Description: A very simple way to quickly password protect your WordPress site with a single password. Please note: This plugin does not restrict access to uploaded files and images and does not work on WP Engine or with some caching setups.
|
| 7 |
+
Version: 2.0.3
|
| 8 |
Author: Ben Huson
|
| 9 |
Text Domain: password-protected
|
| 10 |
Author URI: http://github.com/benhuson/password-protected/
|
| 42 |
|
| 43 |
class Password_Protected {
|
| 44 |
|
| 45 |
+
var $version = '2.0.3';
|
| 46 |
var $admin = null;
|
| 47 |
var $errors = null;
|
| 48 |
|
| 49 |
/**
|
| 50 |
* Constructor
|
| 51 |
*/
|
| 52 |
+
public function __construct() {
|
| 53 |
|
| 54 |
$this->errors = new WP_Error();
|
| 55 |
|
| 83 |
/**
|
| 84 |
* I18n
|
| 85 |
*/
|
| 86 |
+
public function load_plugin_textdomain() {
|
| 87 |
|
| 88 |
load_plugin_textdomain( 'password-protected', false, basename( dirname( __FILE__ ) ) . '/languages' );
|
| 89 |
|
| 92 |
/**
|
| 93 |
* Disable Page Caching
|
| 94 |
*/
|
| 95 |
+
public function disable_caching() {
|
| 96 |
|
| 97 |
if ( $this->is_active() && ! defined( 'DONOTCACHEPAGE' ) ) {
|
| 98 |
define( 'DONOTCACHEPAGE', true );
|
| 105 |
*
|
| 106 |
* @return boolean Is password protection active?
|
| 107 |
*/
|
| 108 |
+
public function is_active() {
|
| 109 |
|
| 110 |
global $wp_query;
|
| 111 |
|
| 135 |
*
|
| 136 |
* @todo An option/filter to prevent disabling of feeds.
|
| 137 |
*/
|
| 138 |
+
public function disable_feeds() {
|
| 139 |
|
| 140 |
if ( $this->is_active() ) {
|
| 141 |
add_action( 'do_feed', array( $this, 'disable_feed' ), 1 );
|
| 152 |
*
|
| 153 |
* @todo Make Translatable
|
| 154 |
*/
|
| 155 |
+
public function disable_feed() {
|
| 156 |
|
| 157 |
wp_die( sprintf( __( 'Feeds are not available for this site. Please visit the <a href="%s">website</a>.', 'password-protected' ), get_bloginfo( 'url' ) ) );
|
| 158 |
|
| 164 |
* @param boolean $bool Allow feeds.
|
| 165 |
* @return boolean True/false.
|
| 166 |
*/
|
| 167 |
+
public function allow_feeds( $bool ) {
|
| 168 |
|
| 169 |
if ( is_feed() && (bool) get_option( 'password_protected_feeds' ) ) {
|
| 170 |
return 0;
|
| 180 |
* @param boolean $bool Allow administrators.
|
| 181 |
* @return boolean True/false.
|
| 182 |
*/
|
| 183 |
+
public function allow_administrators( $bool ) {
|
| 184 |
|
| 185 |
if ( ! is_admin() && current_user_can( 'manage_options' ) && (bool) get_option( 'password_protected_administrators' ) ) {
|
| 186 |
return 0;
|
| 196 |
* @param boolean $bool Allow administrators.
|
| 197 |
* @return boolean True/false.
|
| 198 |
*/
|
| 199 |
+
public function allow_users( $bool ) {
|
| 200 |
|
| 201 |
if ( ! is_admin() && is_user_logged_in() && (bool) get_option( 'password_protected_users' ) ) {
|
| 202 |
return 0;
|
| 214 |
* @param boolean $bool Allow IP addresses.
|
| 215 |
* @return boolean True/false.
|
| 216 |
*/
|
| 217 |
+
public function allow_ip_addresses( $bool ) {
|
| 218 |
|
| 219 |
$ip_addresses = $this->get_allowed_ip_addresses();
|
| 220 |
|
| 231 |
*
|
| 232 |
* @return array IP addresses.
|
| 233 |
*/
|
| 234 |
+
public function get_allowed_ip_addresses() {
|
| 235 |
|
| 236 |
return explode( "\n", get_option( 'password_protected_allowed_ip_addresses' ) );
|
| 237 |
|
| 243 |
* @param string $password Password.
|
| 244 |
* @return string Encrypted password.
|
| 245 |
*/
|
| 246 |
+
public function encrypt_password( $password ) {
|
| 247 |
|
| 248 |
return md5( $password );
|
| 249 |
|
| 252 |
/**
|
| 253 |
* Maybe Process Logout
|
| 254 |
*/
|
| 255 |
+
public function maybe_process_logout() {
|
| 256 |
|
| 257 |
if ( isset( $_REQUEST['password-protected'] ) && $_REQUEST['password-protected'] == 'logout' ) {
|
| 258 |
|
| 274 |
/**
|
| 275 |
* Maybe Process Login
|
| 276 |
*/
|
| 277 |
+
public function maybe_process_login() {
|
| 278 |
|
| 279 |
if ( $this->is_active() && isset( $_REQUEST['password_protected_pwd'] ) ) {
|
| 280 |
$password_protected_pwd = $_REQUEST['password_protected_pwd'];
|
| 309 |
*
|
| 310 |
* @return boolean
|
| 311 |
*/
|
| 312 |
+
public function is_user_logged_in() {
|
| 313 |
|
| 314 |
return $this->is_active() && $this->validate_auth_cookie();
|
| 315 |
|
| 318 |
/**
|
| 319 |
* Maybe Show Login
|
| 320 |
*/
|
| 321 |
+
public function maybe_show_login() {
|
| 322 |
|
| 323 |
// Don't show login if not enabled
|
| 324 |
if ( ! $this->is_active() ) {
|
| 368 |
*
|
| 369 |
* @return string Site ID.
|
| 370 |
*/
|
| 371 |
+
public function get_site_id() {
|
| 372 |
|
| 373 |
global $blog_id;
|
| 374 |
return 'bid_' . apply_filters( 'password_protected_blog_id', $blog_id );
|
| 380 |
*
|
| 381 |
* @return string Login URL.
|
| 382 |
*/
|
| 383 |
+
public function login_url() {
|
| 384 |
|
| 385 |
return add_query_arg( 'password-protected', 'login', home_url( '/' ) );
|
| 386 |
|
| 389 |
/**
|
| 390 |
* Logout
|
| 391 |
*/
|
| 392 |
+
public function logout() {
|
| 393 |
|
| 394 |
$this->clear_auth_cookie();
|
| 395 |
do_action( 'password_protected_logout' );
|
| 402 |
* @param string $redirect_to Optional. Redirect URL.
|
| 403 |
* @return string Logout URL.
|
| 404 |
*/
|
| 405 |
+
public function logout_url( $redirect_to = '' ) {
|
| 406 |
|
| 407 |
$query = array(
|
| 408 |
'password-protected' => 'logout',
|
| 423 |
* @param array $args Link args.
|
| 424 |
* @return string HTML link tag.
|
| 425 |
*/
|
| 426 |
+
public function logout_link( $args = null ) {
|
| 427 |
|
| 428 |
// Only show if user is logged in
|
| 429 |
if ( ! $this->is_user_logged_in() ) {
|
| 449 |
* @param array $args Link args.
|
| 450 |
* @return string HTML link tag.
|
| 451 |
*/
|
| 452 |
+
public function logout_link_shortcode( $atts, $content = null ) {
|
| 453 |
|
| 454 |
$atts = shortcode_atts( array(
|
| 455 |
'redirect_to' => '',
|
| 465 |
*
|
| 466 |
* @return string Hashed password.
|
| 467 |
*/
|
| 468 |
+
public function get_hashed_password() {
|
| 469 |
|
| 470 |
return md5( get_option( 'password_protected_password' ) . wp_salt() );
|
| 471 |
|
| 478 |
* @param string $scheme Cookie scheme.
|
| 479 |
* @return boolean Validation successful?
|
| 480 |
*/
|
| 481 |
+
public function validate_auth_cookie( $cookie = '', $scheme = '' ) {
|
| 482 |
|
| 483 |
if ( ! $cookie_elements = $this->parse_auth_cookie( $cookie, $scheme ) ) {
|
| 484 |
do_action( 'password_protected_auth_cookie_malformed', $cookie, $scheme );
|
| 523 |
* @param string $scheme Cookie scheme.
|
| 524 |
* @return string Cookie.
|
| 525 |
*/
|
| 526 |
+
public function generate_auth_cookie( $expiration, $scheme = 'auth' ) {
|
| 527 |
|
| 528 |
$key = md5( $this->get_site_id() . $this->get_hashed_password() . '|' . $expiration );
|
| 529 |
$hash = hash_hmac( 'md5', $this->get_site_id() . '|' . $expiration, $key );
|
| 540 |
* @param string $scheme Cookie scheme.
|
| 541 |
* @return string Cookie string.
|
| 542 |
*/
|
| 543 |
+
public function parse_auth_cookie( $cookie = '', $scheme = '' ) {
|
| 544 |
|
| 545 |
if ( empty( $cookie ) ) {
|
| 546 |
$cookie_name = $this->cookie_name();
|
| 570 |
* @param boolean $remember Remember logged in.
|
| 571 |
* @param string $secure Secure cookie.
|
| 572 |
*/
|
| 573 |
+
public function set_auth_cookie( $remember = false, $secure = '') {
|
| 574 |
|
| 575 |
if ( $remember ) {
|
| 576 |
$expiration = $expire = current_time( 'timestamp' ) + apply_filters( 'password_protected_auth_cookie_expiration', 1209600, $remember );
|
| 596 |
/**
|
| 597 |
* Clear Auth Cookie
|
| 598 |
*/
|
| 599 |
+
public function clear_auth_cookie() {
|
| 600 |
|
| 601 |
setcookie( $this->cookie_name(), ' ', current_time( 'timestamp' ) - 31536000, COOKIEPATH, COOKIE_DOMAIN );
|
| 602 |
setcookie( $this->cookie_name(), ' ', current_time( 'timestamp' ) - 31536000, SITECOOKIEPATH, COOKIE_DOMAIN );
|
| 608 |
*
|
| 609 |
* @return string Cookie name.
|
| 610 |
*/
|
| 611 |
+
public function cookie_name() {
|
| 612 |
|
| 613 |
return $this->get_site_id() . '_password_protected_auth';
|
| 614 |
|
| 617 |
/**
|
| 618 |
* Install
|
| 619 |
*/
|
| 620 |
+
public function install() {
|
| 621 |
|
| 622 |
$old_version = get_option( 'password_protected_version' );
|
| 623 |
|
| 708 |
* Possible to specify a different file in the theme folder via the
|
| 709 |
* 'password_protected_stylesheet_file' filter (allows for theme subfolders).
|
| 710 |
*/
|
| 711 |
+
public function load_theme_stylesheet() {
|
| 712 |
|
| 713 |
$filename = apply_filters( 'password_protected_stylesheet_file', 'password-protected-login.css' );
|
| 714 |
|
| 736 |
* If invalid will redirect to ...
|
| 737 |
* Based on the WordPress wp_safe_redirect() function.
|
| 738 |
*/
|
| 739 |
+
public function safe_redirect( $location, $status = 302 ) {
|
| 740 |
|
| 741 |
$location = wp_sanitize_redirect( $location );
|
| 742 |
$location = wp_validate_redirect( $location, home_url() );
|
readme.txt
CHANGED
|
@@ -1,9 +1,10 @@
|
|
| 1 |
=== Password Protected ===
|
| 2 |
Contributors: husobj
|
|
|
|
| 3 |
Tags: password, protect, password protect, login
|
| 4 |
Requires at least: 3.5
|
| 5 |
-
Tested up to: 4.
|
| 6 |
-
Stable tag: 2.0.
|
| 7 |
License: GPLv2 or later
|
| 8 |
|
| 9 |
A very simple way to quickly password protect your WordPress site with a single password.
|
|
@@ -80,21 +81,28 @@ More instructions can be found at [wp-translations.org](http://wp-translations.o
|
|
| 80 |
|
| 81 |
== Changelog ==
|
| 82 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 83 |
= 2.0.2 =
|
| 84 |
-
* Only redirect to [allowed domain names](https://codex.wordpress.org/Plugin_API/Filter_Reference/allowed_redirect_hosts) when logging out.
|
| 85 |
* Check allowed IP addresses are valid when saving.
|
|
|
|
| 86 |
|
| 87 |
= 2.0.1 =
|
| 88 |
-
* Security fix: Use a more complex password hash for cookie key. Props Marcin Bury, [Securitum](http://securitum.pl).
|
| 89 |
* Split logout functionality into separate function.
|
|
|
|
| 90 |
|
| 91 |
= 2.0 =
|
| 92 |
* Added [password_protected_logout_link](https://github.com/benhuson/password-protected/wiki/password_protected_logout_link-Shortcode) shortcode.
|
| 93 |
* Load 'password-protected-login.css' in theme folder if it exists.
|
| 94 |
* Added [password_protected_stylesheet_file](https://github.com/benhuson/password-protected/wiki/password_protected_stylesheet_file) filter to specify alternate stylesheet location.
|
| 95 |
* Added is_user_logged_in(), login_url(), logout_url() and logout_link() methods.
|
| 96 |
-
* Better handling of login/out redirects when protection is not active on home page.
|
| 97 |
* Added Basque, Czech, Greek, Lithuanian and Norwegian translations.
|
|
|
|
| 98 |
|
| 99 |
= 1.9 =
|
| 100 |
* Fixed "Allow Users" functionality with is_user_logged_in(). Props PatRaven.
|
|
@@ -105,23 +113,23 @@ More instructions can be found at [wp-translations.org](http://wp-translations.o
|
|
| 105 |
* Support for adding "password-protected-login.php" in theme directory.
|
| 106 |
* Allow filtering of the 'redirect to' URL via the 'password_protected_login_redirect_url' filter.
|
| 107 |
* Added 'password_protected_login_messages' action to output errors and messages in template.
|
|
|
|
| 108 |
* Use current_time( 'timestamp' ) instead of time() to take into account site timezone.
|
| 109 |
* Check login earlier in the template_redirect action.
|
| 110 |
-
* Updated translations.
|
| 111 |
|
| 112 |
= 1.7.2 =
|
| 113 |
-
* Added 'password_protected_login_redirect' filter.
|
| 114 |
* Fix always allow access to robots.txt.
|
|
|
|
| 115 |
* Updated translations.
|
| 116 |
|
| 117 |
= 1.7.1 =
|
| 118 |
* Fix login template compatibility for WordPress 3.9
|
| 119 |
|
| 120 |
= 1.7 =
|
|
|
|
| 121 |
* Added 'password_protected_theme_file' filter to allow custom login templates.
|
| 122 |
* It's now really easy to contribute to the translation of this plugin via our [Transifex page](https://www.transifex.com/projects/p/password-protected/resource/password-protected/).
|
| 123 |
* Add option to allow logged in users.
|
| 124 |
-
* Remove JavaScript that disables admin RSS checkbox.
|
| 125 |
|
| 126 |
= 1.6.2 =
|
| 127 |
* Set login page not to index if privacy setting is on.
|
|
@@ -135,17 +143,17 @@ More instructions can be found at [wp-translations.org](http://wp-translations.o
|
|
| 135 |
* Added support for Uber Login Logo plugin.
|
| 136 |
|
| 137 |
= 1.5 =
|
|
|
|
| 138 |
* Requires WordPress 3.1+
|
| 139 |
* Settings now have their own page.
|
| 140 |
* Fixed an open redirect vulnerability. Props Chris Campbell.
|
| 141 |
-
* Added note about WP Engine compatibility to readme.txt
|
| 142 |
|
| 143 |
= 1.4 =
|
| 144 |
* Add option to allow administrators to use the site without logging in.
|
| 145 |
* Use DONOTCACHEPAGE to try to prevent some caching issues.
|
|
|
|
| 146 |
* Updated login screen styling for WordPress 3.5 compatibility.
|
| 147 |
* Options are now on the 'Reading' settings page in WordPress 3.5
|
| 148 |
-
* Added a contextual help tab for WordPress 3.3+.
|
| 149 |
|
| 150 |
= 1.3 =
|
| 151 |
* Added checkbox to allow access to feeds when protection is enabled.
|
|
@@ -156,24 +164,27 @@ More instructions can be found at [wp-translations.org](http://wp-translations.o
|
|
| 156 |
* Ready for [translations](http://codex.wordpress.org/I18n_for_WordPress_Developers).
|
| 157 |
|
| 158 |
= 1.2.2 =
|
| 159 |
-
* Escape 'redirect_to' attribute. Props A. Alagha.
|
| 160 |
* Show login error messages.
|
|
|
|
| 161 |
|
| 162 |
= 1.2.1 =
|
| 163 |
-
* Only disable feeds when protection is active.
|
| 164 |
* Added a "How to log out?" FAQ.
|
|
|
|
| 165 |
|
| 166 |
= 1.2 =
|
| 167 |
* Use cookies instead of sessions.
|
| 168 |
-
= 1.1 =
|
| 169 |
|
|
|
|
| 170 |
* Encrypt passwords in database.
|
| 171 |
-
= 1.0 =
|
| 172 |
|
|
|
|
| 173 |
* First Release. If you spot any bugs or issues please [log them here](https://github.com/benhuson/password-protected/issues).
|
| 174 |
|
| 175 |
== Upgrade Notice ==
|
| 176 |
|
|
|
|
|
|
|
|
|
|
| 177 |
= 2.0.2 =
|
| 178 |
Only redirect to [allowed domain names](https://codex.wordpress.org/Plugin_API/Filter_Reference/allowed_redirect_hosts) when logging out.
|
| 179 |
|
| 1 |
=== Password Protected ===
|
| 2 |
Contributors: husobj
|
| 3 |
+
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=DXRJDNCMK9U3N
|
| 4 |
Tags: password, protect, password protect, login
|
| 5 |
Requires at least: 3.5
|
| 6 |
+
Tested up to: 4.4.2
|
| 7 |
+
Stable tag: 2.0.3
|
| 8 |
License: GPLv2 or later
|
| 9 |
|
| 10 |
A very simple way to quickly password protect your WordPress site with a single password.
|
| 81 |
|
| 82 |
== Changelog ==
|
| 83 |
|
| 84 |
+
= Unreleased =
|
| 85 |
+
|
| 86 |
+
= 2.0.3 =
|
| 87 |
+
* Declare methods as public or private and use PHP5 constructors.
|
| 88 |
+
* Show user's IP address beside "Allow IP Addresses" admin setting.
|
| 89 |
+
* Add CHANGELOG.md and README.md
|
| 90 |
+
|
| 91 |
= 2.0.2 =
|
|
|
|
| 92 |
* Check allowed IP addresses are valid when saving.
|
| 93 |
+
* Only redirect to [allowed domain names](https://codex.wordpress.org/Plugin_API/Filter_Reference/allowed_redirect_hosts) when logging out.
|
| 94 |
|
| 95 |
= 2.0.1 =
|
|
|
|
| 96 |
* Split logout functionality into separate function.
|
| 97 |
+
* Security fix: Use a more complex password hash for cookie key. Props Marcin Bury, [Securitum](http://securitum.pl).
|
| 98 |
|
| 99 |
= 2.0 =
|
| 100 |
* Added [password_protected_logout_link](https://github.com/benhuson/password-protected/wiki/password_protected_logout_link-Shortcode) shortcode.
|
| 101 |
* Load 'password-protected-login.css' in theme folder if it exists.
|
| 102 |
* Added [password_protected_stylesheet_file](https://github.com/benhuson/password-protected/wiki/password_protected_stylesheet_file) filter to specify alternate stylesheet location.
|
| 103 |
* Added is_user_logged_in(), login_url(), logout_url() and logout_link() methods.
|
|
|
|
| 104 |
* Added Basque, Czech, Greek, Lithuanian and Norwegian translations.
|
| 105 |
+
* Better handling of login/out redirects when protection is not active on home page.
|
| 106 |
|
| 107 |
= 1.9 =
|
| 108 |
* Fixed "Allow Users" functionality with is_user_logged_in(). Props PatRaven.
|
| 113 |
* Support for adding "password-protected-login.php" in theme directory.
|
| 114 |
* Allow filtering of the 'redirect to' URL via the 'password_protected_login_redirect_url' filter.
|
| 115 |
* Added 'password_protected_login_messages' action to output errors and messages in template.
|
| 116 |
+
* Updated translations.
|
| 117 |
* Use current_time( 'timestamp' ) instead of time() to take into account site timezone.
|
| 118 |
* Check login earlier in the template_redirect action.
|
|
|
|
| 119 |
|
| 120 |
= 1.7.2 =
|
|
|
|
| 121 |
* Fix always allow access to robots.txt.
|
| 122 |
+
* Added 'password_protected_login_redirect' filter.
|
| 123 |
* Updated translations.
|
| 124 |
|
| 125 |
= 1.7.1 =
|
| 126 |
* Fix login template compatibility for WordPress 3.9
|
| 127 |
|
| 128 |
= 1.7 =
|
| 129 |
+
* Remove JavaScript that disables admin RSS checkbox.
|
| 130 |
* Added 'password_protected_theme_file' filter to allow custom login templates.
|
| 131 |
* It's now really easy to contribute to the translation of this plugin via our [Transifex page](https://www.transifex.com/projects/p/password-protected/resource/password-protected/).
|
| 132 |
* Add option to allow logged in users.
|
|
|
|
| 133 |
|
| 134 |
= 1.6.2 =
|
| 135 |
* Set login page not to index if privacy setting is on.
|
| 143 |
* Added support for Uber Login Logo plugin.
|
| 144 |
|
| 145 |
= 1.5 =
|
| 146 |
+
* Added note about WP Engine compatibility to readme.txt
|
| 147 |
* Requires WordPress 3.1+
|
| 148 |
* Settings now have their own page.
|
| 149 |
* Fixed an open redirect vulnerability. Props Chris Campbell.
|
|
|
|
| 150 |
|
| 151 |
= 1.4 =
|
| 152 |
* Add option to allow administrators to use the site without logging in.
|
| 153 |
* Use DONOTCACHEPAGE to try to prevent some caching issues.
|
| 154 |
+
* Added a contextual help tab for WordPress 3.3+.
|
| 155 |
* Updated login screen styling for WordPress 3.5 compatibility.
|
| 156 |
* Options are now on the 'Reading' settings page in WordPress 3.5
|
|
|
|
| 157 |
|
| 158 |
= 1.3 =
|
| 159 |
* Added checkbox to allow access to feeds when protection is enabled.
|
| 164 |
* Ready for [translations](http://codex.wordpress.org/I18n_for_WordPress_Developers).
|
| 165 |
|
| 166 |
= 1.2.2 =
|
|
|
|
| 167 |
* Show login error messages.
|
| 168 |
+
* Escape 'redirect_to' attribute. Props A. Alagha.
|
| 169 |
|
| 170 |
= 1.2.1 =
|
|
|
|
| 171 |
* Added a "How to log out?" FAQ.
|
| 172 |
+
* Only disable feeds when protection is active.
|
| 173 |
|
| 174 |
= 1.2 =
|
| 175 |
* Use cookies instead of sessions.
|
|
|
|
| 176 |
|
| 177 |
+
= 1.1 =
|
| 178 |
* Encrypt passwords in database.
|
|
|
|
| 179 |
|
| 180 |
+
= 1.0 =
|
| 181 |
* First Release. If you spot any bugs or issues please [log them here](https://github.com/benhuson/password-protected/issues).
|
| 182 |
|
| 183 |
== Upgrade Notice ==
|
| 184 |
|
| 185 |
+
= 2.0.3 =
|
| 186 |
+
Show user's IP address beside "Allow IP Addresses" admin setting. Declare methods as public or private and use PHP5 constructors.
|
| 187 |
+
|
| 188 |
= 2.0.2 =
|
| 189 |
Only redirect to [allowed domain names](https://codex.wordpress.org/Plugin_API/Filter_Reference/allowed_redirect_hosts) when logging out.
|
| 190 |
|
