From 6779ccbe72362f19d5ae538d90e8e0b12b9d414c Mon Sep 17 00:00:00 2001 From: RainLoop Team Date: Sat, 7 Dec 2013 03:10:50 +0400 Subject: [PATCH] Add black list plugin --- plugins/black-list/LICENSE | 20 ++++++++++++++++ plugins/black-list/README | 1 + plugins/black-list/VERSION | 1 + plugins/black-list/index.php | 44 ++++++++++++++++++++++++++++++++++++ 4 files changed, 66 insertions(+) create mode 100644 plugins/black-list/LICENSE create mode 100644 plugins/black-list/README create mode 100644 plugins/black-list/VERSION create mode 100644 plugins/black-list/index.php diff --git a/plugins/black-list/LICENSE b/plugins/black-list/LICENSE new file mode 100644 index 000000000..271342337 --- /dev/null +++ b/plugins/black-list/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2013 RainLoop Team + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/plugins/black-list/README b/plugins/black-list/README new file mode 100644 index 000000000..86ca74eb9 --- /dev/null +++ b/plugins/black-list/README @@ -0,0 +1 @@ +Simple black list plugin \ No newline at end of file diff --git a/plugins/black-list/VERSION b/plugins/black-list/VERSION new file mode 100644 index 000000000..9f8e9b69a --- /dev/null +++ b/plugins/black-list/VERSION @@ -0,0 +1 @@ +1.0 \ No newline at end of file diff --git a/plugins/black-list/index.php b/plugins/black-list/index.php new file mode 100644 index 000000000..c4f18bb6d --- /dev/null +++ b/plugins/black-list/index.php @@ -0,0 +1,44 @@ +addHook('filter.login-credentials', 'FilterLoginCredentials'); + } + + /** + * @param string $sEmail + * @param string $sLogin + * @param string $sPassword + * + * @throws \RainLoop\Exceptions\ClientException + */ + public function FilterLoginCredentials(&$sEmail, &$sLogin, &$sPassword) + { + if (\RainLoop\Plugins\Helper::ValidateWildcardValues($sEmail, + $this->Config()->Get('plugin', 'black_list', ''))) + { + throw new \RainLoop\Exceptions\ClientException( + $this->Config()->Get('plugin', 'auth_error', true) ? + \RainLoop\Notifications::AuthError : \RainLoop\Notifications::AccountNotAllowed); + } + } + + /** + * @return array + */ + public function configMapping() + { + return array( + \RainLoop\Plugins\Property::NewInstance('auth_error')->SetLabel('Auth Error') + ->SetType(\RainLoop\Enumerations\PluginPropertyType::BOOL) + ->SetDescription('Throw an authentication error instead of an access error.') + ->SetDefaultValue(true), + \RainLoop\Plugins\Property::NewInstance('black_list')->SetLabel('Black List') + ->SetType(\RainLoop\Enumerations\PluginPropertyType::STRING_TEXT) + ->SetDescription('Emails black list , space as delimiter, wildcard supported.') + ->SetDefaultValue('*@domain1.com user@domain2.com') + ); + } +}