Version Notes
1.0.2
== Bug Fix ==
Download this release
Release Info
| Developer | miniOrange inc. |
| Extension | miniOrange_2factor |
| Version | 1.0.2 |
| Comparing to | |
| See all releases | |
Code changes from version 1.0.1 to 1.0.2
- app/code/community/MiniOrange/2factor/Controllers/IndexController.php +0 -42
- app/code/community/{MiniOrange → miniOrange}/2factor/Block/mo2fConfig.php +0 -4
- app/code/community/{MiniOrange → miniOrange}/2factor/Controllers/Adminhtml/IndexController.php +61 -21
- app/code/community/{MiniOrange → miniOrange}/2factor/Controllers/Adminhtml/Login/miniOrangeController.php +0 -0
- app/code/community/{MiniOrange → miniOrange}/2factor/Helper/Data.php +0 -0
- app/code/community/{MiniOrange → miniOrange}/2factor/Helper/mo2fUtility.php +57 -2
- app/code/community/{MiniOrange → miniOrange}/2factor/Model/Observer.php +1 -1
- app/code/community/{MiniOrange → miniOrange}/2factor/Model/Words.php +0 -0
- app/code/community/{MiniOrange → miniOrange}/2factor/etc/adminhtml.xml +0 -0
- app/code/community/{MiniOrange → miniOrange}/2factor/etc/config.xml +4 -12
- app/code/community/{MiniOrange → miniOrange}/2factor/sql/MiniOrange_2factor_setup/mysql4-install-0.0.1.php +0 -0
- app/design/adminhtml/default/default/template/miniorange_2factor/mo2fConfig.phtml +21 -24
- package.xml +41 -41
app/code/community/MiniOrange/2factor/Controllers/IndexController.php
DELETED
|
@@ -1,42 +0,0 @@
|
|
| 1 |
-
<?php
|
| 2 |
-
|
| 3 |
-
class MiniOrange_2factor_IndexController extends Mage_Core_Controller_Front_Action
|
| 4 |
-
{
|
| 5 |
-
/*public function indexAction(){
|
| 6 |
-
$this->loadLayout();
|
| 7 |
-
$this->renderLayout();
|
| 8 |
-
}*/
|
| 9 |
-
|
| 10 |
-
/*public function checkemailAction(){
|
| 11 |
-
$params = $this->getRequest()->getParams();
|
| 12 |
-
$customer = Mage::helper('MiniOrange_2factor/customersetup');
|
| 13 |
-
$content = json_decode($customer->check_customer($params['email']), true);
|
| 14 |
-
if( strcasecmp( $content['status'], 'CUSTOMER_NOT_FOUND') == 0 ){
|
| 15 |
-
$content = json_decode($customer->send_otp_token($email), true); //send otp for verification
|
| 16 |
-
if(strcasecmp($content['status'], 'SUCCESS') == 0) {
|
| 17 |
-
Mage::getSingleton('core/session')->setMySessionVariable($content['txId']);
|
| 18 |
-
//save
|
| 19 |
-
}
|
| 20 |
-
}
|
| 21 |
-
$redirect = Mage::helper('core/url')->getHomeUrl().'customer/account/login#loginScreen';
|
| 22 |
-
$this->_redirectUrl($redirect);
|
| 23 |
-
}
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
protected function _customerExists($email){
|
| 27 |
-
//called to check if customer already exists
|
| 28 |
-
$websiteId = Mage::app()->getWebsite()->getId();
|
| 29 |
-
$customer = Mage::getModel('customer/customer');
|
| 30 |
-
if ($websiteId) {
|
| 31 |
-
$customer->setWebsiteId($websiteId);
|
| 32 |
-
}
|
| 33 |
-
$customer->loadByEmail($email);
|
| 34 |
-
if ($customer->getId()) {
|
| 35 |
-
return $customer;
|
| 36 |
-
}
|
| 37 |
-
return false;
|
| 38 |
-
}*/
|
| 39 |
-
|
| 40 |
-
}
|
| 41 |
-
|
| 42 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/{MiniOrange → miniOrange}/2factor/Block/mo2fConfig.php
RENAMED
|
@@ -88,10 +88,6 @@ class MiniOrange_2factor_Block_mo2fConfig extends Mage_Core_Block_Template{
|
|
| 88 |
return $customer->is_curl_installed();
|
| 89 |
}
|
| 90 |
|
| 91 |
-
public function getForgotPassUrl(){
|
| 92 |
-
$url = $this->getHostURl();
|
| 93 |
-
return $url.'/moas/idp/userforgotpassword' ;
|
| 94 |
-
}
|
| 95 |
|
| 96 |
|
| 97 |
}
|
| 88 |
return $customer->is_curl_installed();
|
| 89 |
}
|
| 90 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 91 |
|
| 92 |
|
| 93 |
}
|
app/code/community/{MiniOrange → miniOrange}/2factor/Controllers/Adminhtml/IndexController.php
RENAMED
|
@@ -12,6 +12,7 @@ class MiniOrange_2factor_Adminhtml_IndexController extends Mage_Adminhtml_Contro
|
|
| 12 |
Mage::getSingleton('core/session')->unsSuccessMessage();
|
| 13 |
Mage::getSingleton('admin/session')->unsshowLoginSettings();
|
| 14 |
Mage::getSingleton('admin/session')->unsOTPsent();
|
|
|
|
| 15 |
}
|
| 16 |
|
| 17 |
|
|
@@ -20,6 +21,7 @@ class MiniOrange_2factor_Adminhtml_IndexController extends Mage_Adminhtml_Contro
|
|
| 20 |
$customer = Mage::helper('MiniOrange_2factor/mo2fUtility');
|
| 21 |
if($customer->is_curl_installed()){
|
| 22 |
$email = $params['email'];
|
|
|
|
| 23 |
$password = $params['password'];
|
| 24 |
$phone = $params['phone'];
|
| 25 |
$confirmPassword = $params['confirmPassword'];
|
|
@@ -85,6 +87,7 @@ class MiniOrange_2factor_Adminhtml_IndexController extends Mage_Adminhtml_Contro
|
|
| 85 |
}
|
| 86 |
else{
|
| 87 |
$this->displayMessage('cURL is not enabled. Please <a id="cURL" href="#cURLfaq">click here</a> to see how to enable cURL.',"ERROR");
|
|
|
|
| 88 |
}
|
| 89 |
}
|
| 90 |
|
|
@@ -130,6 +133,7 @@ class MiniOrange_2factor_Adminhtml_IndexController extends Mage_Adminhtml_Contro
|
|
| 130 |
}
|
| 131 |
else{
|
| 132 |
$this->displayMessage('cURL is not enabled. Please <a id="cURL" href="#cURLfaq">click here</a> to see how to enable cURL.',"ERROR");
|
|
|
|
| 133 |
}
|
| 134 |
}
|
| 135 |
|
|
@@ -138,39 +142,53 @@ class MiniOrange_2factor_Adminhtml_IndexController extends Mage_Adminhtml_Contro
|
|
| 138 |
$customer = Mage::helper('MiniOrange_2factor/mo2fUtility');
|
| 139 |
if($customer->is_curl_installed()){
|
| 140 |
$email = $params['loginemail'];
|
|
|
|
| 141 |
$password = $params['loginpassword'];
|
|
|
|
| 142 |
$admin = Mage::getSingleton('admin/session')->getUser();
|
| 143 |
$id = $admin->getUserId();
|
| 144 |
-
$
|
| 145 |
-
|
| 146 |
-
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
$
|
| 151 |
-
|
| 152 |
-
|
| 153 |
-
|
| 154 |
-
|
| 155 |
-
$
|
|
|
|
|
|
|
| 156 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 157 |
}
|
| 158 |
-
|
| 159 |
-
|
| 160 |
-
|
| 161 |
-
|
| 162 |
-
|
| 163 |
-
|
|
|
|
|
|
|
|
|
|
| 164 |
$this->redirect("miniorange_2factor/adminhtml_index/index");
|
| 165 |
}
|
| 166 |
else{
|
| 167 |
-
$this->saveConfig('miniorange_2factor_login',
|
| 168 |
-
$this->displayMessage('Invalid Credentials',"ERROR");
|
| 169 |
$this->redirect("miniorange_2factor/adminhtml_index/index");
|
| 170 |
}
|
| 171 |
}
|
| 172 |
else{
|
| 173 |
$this->displayMessage('cURL is not enabled. Please <a id="cURL" href="#cURLfaq">click here</a> to see how to enable cURL.',"ERROR");
|
|
|
|
| 174 |
}
|
| 175 |
}
|
| 176 |
|
|
@@ -202,6 +220,7 @@ class MiniOrange_2factor_Adminhtml_IndexController extends Mage_Adminhtml_Contro
|
|
| 202 |
}
|
| 203 |
else{
|
| 204 |
$this->displayMessage('cURL is not enabled. Please <a id="cURL" href="#cURLfaq">click here</a> to see how to enable cURL.',"ERROR");
|
|
|
|
| 205 |
}
|
| 206 |
}
|
| 207 |
|
|
@@ -240,6 +259,7 @@ class MiniOrange_2factor_Adminhtml_IndexController extends Mage_Adminhtml_Contro
|
|
| 240 |
}
|
| 241 |
else{
|
| 242 |
$this->displayMessage('cURL is not enabled. Please <a id="cURL" href="#cURLfaq">click here</a> to see how to enable cURL.',"ERROR");
|
|
|
|
| 243 |
}
|
| 244 |
}
|
| 245 |
|
|
@@ -254,9 +274,11 @@ class MiniOrange_2factor_Adminhtml_IndexController extends Mage_Adminhtml_Contro
|
|
| 254 |
}
|
| 255 |
else{
|
| 256 |
$this->displayMessage('cURL is not enabled. Please <a id="cURL" href="#cURLfaq">click here</a> to see how to enable cURL.',"ERROR");
|
|
|
|
| 257 |
}
|
| 258 |
}
|
| 259 |
|
|
|
|
| 260 |
public function registrationSuccessAction(){
|
| 261 |
$customer = Mage::helper('MiniOrange_2factor/mo2fUtility');
|
| 262 |
if($customer->is_curl_installed()){
|
|
@@ -271,6 +293,7 @@ class MiniOrange_2factor_Adminhtml_IndexController extends Mage_Adminhtml_Contro
|
|
| 271 |
}
|
| 272 |
else{
|
| 273 |
$this->displayMessage('cURL is not enabled. Please <a id="cURL" href="#cURLfaq">click here</a> to see how to enable cURL.',"ERROR");
|
|
|
|
| 274 |
}
|
| 275 |
}
|
| 276 |
|
|
@@ -294,6 +317,7 @@ class MiniOrange_2factor_Adminhtml_IndexController extends Mage_Adminhtml_Contro
|
|
| 294 |
}
|
| 295 |
else{
|
| 296 |
$this->displayMessage('cURL is not enabled. Please <a id="cURL" href="#cURLfaq">click here</a> to see how to enable cURL.',"ERROR");
|
|
|
|
| 297 |
}
|
| 298 |
}
|
| 299 |
|
|
@@ -319,6 +343,7 @@ class MiniOrange_2factor_Adminhtml_IndexController extends Mage_Adminhtml_Contro
|
|
| 319 |
}
|
| 320 |
else{
|
| 321 |
$this->displayMessage('cURL is not enabled. Please <a id="cURL" href="#cURLfaq">click here</a> to see how to enable cURL.',"ERROR");
|
|
|
|
| 322 |
}
|
| 323 |
}
|
| 324 |
|
|
@@ -397,6 +422,7 @@ class MiniOrange_2factor_Adminhtml_IndexController extends Mage_Adminhtml_Contro
|
|
| 397 |
$this->displayMessage('Registration Complete. Please Configure your mobile',"SUCCESS");
|
| 398 |
} else {
|
| 399 |
$this->displayMessage('An error occurred while creating customer',"ERROR");
|
|
|
|
| 400 |
}
|
| 401 |
}else{
|
| 402 |
$collection = Mage::getModel('admin/user')->getCollection();
|
|
@@ -420,6 +446,7 @@ class MiniOrange_2factor_Adminhtml_IndexController extends Mage_Adminhtml_Contro
|
|
| 420 |
}
|
| 421 |
else{
|
| 422 |
$this->displayMessage('cURL is not enabled. Please <a id="cURL" href="#cURLfaq">click here</a> to see how to enable cURL.',"ERROR");
|
|
|
|
| 423 |
}
|
| 424 |
}
|
| 425 |
|
|
@@ -440,10 +467,23 @@ class MiniOrange_2factor_Adminhtml_IndexController extends Mage_Adminhtml_Contro
|
|
| 440 |
}
|
| 441 |
else{
|
| 442 |
$this->displayMessage('cURL is not enabled. Please <a id="cURL" href="#cURLfaq">click here</a> to see how to enable cURL.',"ERROR");
|
|
|
|
| 443 |
}
|
| 444 |
}
|
| 445 |
|
| 446 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 447 |
|
| 448 |
|
| 449 |
}
|
| 12 |
Mage::getSingleton('core/session')->unsSuccessMessage();
|
| 13 |
Mage::getSingleton('admin/session')->unsshowLoginSettings();
|
| 14 |
Mage::getSingleton('admin/session')->unsOTPsent();
|
| 15 |
+
Mage::getSingleton('admin/session')->unsEnteredEmail();
|
| 16 |
}
|
| 17 |
|
| 18 |
|
| 21 |
$customer = Mage::helper('MiniOrange_2factor/mo2fUtility');
|
| 22 |
if($customer->is_curl_installed()){
|
| 23 |
$email = $params['email'];
|
| 24 |
+
Mage::getSingleton('admin/session')->setEnteredEmail($email);
|
| 25 |
$password = $params['password'];
|
| 26 |
$phone = $params['phone'];
|
| 27 |
$confirmPassword = $params['confirmPassword'];
|
| 87 |
}
|
| 88 |
else{
|
| 89 |
$this->displayMessage('cURL is not enabled. Please <a id="cURL" href="#cURLfaq">click here</a> to see how to enable cURL.',"ERROR");
|
| 90 |
+
$this->redirect("miniorange_2factor/adminhtml_index/index");
|
| 91 |
}
|
| 92 |
}
|
| 93 |
|
| 133 |
}
|
| 134 |
else{
|
| 135 |
$this->displayMessage('cURL is not enabled. Please <a id="cURL" href="#cURLfaq">click here</a> to see how to enable cURL.',"ERROR");
|
| 136 |
+
$this->redirect("miniorange_2factor/adminhtml_index/index");
|
| 137 |
}
|
| 138 |
}
|
| 139 |
|
| 142 |
$customer = Mage::helper('MiniOrange_2factor/mo2fUtility');
|
| 143 |
if($customer->is_curl_installed()){
|
| 144 |
$email = $params['loginemail'];
|
| 145 |
+
Mage::getSingleton('admin/session')->setEnteredEmail($email);
|
| 146 |
$password = $params['loginpassword'];
|
| 147 |
+
$submit = $params['submit'];
|
| 148 |
$admin = Mage::getSingleton('admin/session')->getUser();
|
| 149 |
$id = $admin->getUserId();
|
| 150 |
+
if(strcasecmp($submit,"Submit") == 0){
|
| 151 |
+
$content = $customer->get_customer_key($email,$password);
|
| 152 |
+
$customerKey = json_decode($content, true);
|
| 153 |
+
if(json_last_error() == JSON_ERROR_NONE) {
|
| 154 |
+
$this->saveConfig('miniorange_2factor_email',$email,$id);
|
| 155 |
+
$collection = Mage::getModel('admin/user')->getCollection();
|
| 156 |
+
foreach($collection as $item){
|
| 157 |
+
$ids=$item->getData('user_id');
|
| 158 |
+
$this->saveConfig('miniorange_2factor_customer_key',$customerKey['id'],$ids);
|
| 159 |
+
$this->saveConfig('miniorange_2factor_api_key',$customerKey['apiKey'],$ids);
|
| 160 |
+
$this->saveConfig('miniorange_2factor_token',$customerKey['token'],$ids);
|
| 161 |
+
if($ids!=$id){
|
| 162 |
+
$this->saveConfig('miniorange_2factor_validated',0,$ids);
|
| 163 |
+
}
|
| 164 |
}
|
| 165 |
+
$this->saveConfig('miniorange_2factor_pass',"",$id);
|
| 166 |
+
$this->saveConfig('miniorange_2factor_show_otp',0,$id);
|
| 167 |
+
$this->saveConfig('miniorange_2factor_show_configure',1,$id);
|
| 168 |
+
$this->saveConfig('miniorange_2factor_validated',1,$id);
|
| 169 |
+
$this->saveConfig('miniorange_2factor_login',0,$id);
|
| 170 |
+
$this->displayMessage('Registration Successful. Please Configure your mobile below',"SUCCESS");
|
| 171 |
+
$this->redirect("miniorange_2factor/adminhtml_index/index");
|
| 172 |
}
|
| 173 |
+
else{
|
| 174 |
+
$this->saveConfig('miniorange_2factor_login',1,$id);
|
| 175 |
+
$this->displayMessage('Invalid Credentials',"ERROR");
|
| 176 |
+
$this->redirect("miniorange_2factor/adminhtml_index/index");
|
| 177 |
+
}
|
| 178 |
+
}
|
| 179 |
+
else if(strcasecmp($submit,"Forgot Password?") == 0){
|
| 180 |
+
$this->forgotPass($email);
|
| 181 |
+
$this->saveConfig('miniorange_2factor_login',1,$id);
|
| 182 |
$this->redirect("miniorange_2factor/adminhtml_index/index");
|
| 183 |
}
|
| 184 |
else{
|
| 185 |
+
$this->saveConfig('miniorange_2factor_login',0,$id);
|
|
|
|
| 186 |
$this->redirect("miniorange_2factor/adminhtml_index/index");
|
| 187 |
}
|
| 188 |
}
|
| 189 |
else{
|
| 190 |
$this->displayMessage('cURL is not enabled. Please <a id="cURL" href="#cURLfaq">click here</a> to see how to enable cURL.',"ERROR");
|
| 191 |
+
$this->redirect("miniorange_2factor/adminhtml_index/index");
|
| 192 |
}
|
| 193 |
}
|
| 194 |
|
| 220 |
}
|
| 221 |
else{
|
| 222 |
$this->displayMessage('cURL is not enabled. Please <a id="cURL" href="#cURLfaq">click here</a> to see how to enable cURL.',"ERROR");
|
| 223 |
+
$this->redirect("miniorange_2factor/adminhtml_index/index");
|
| 224 |
}
|
| 225 |
}
|
| 226 |
|
| 259 |
}
|
| 260 |
else{
|
| 261 |
$this->displayMessage('cURL is not enabled. Please <a id="cURL" href="#cURLfaq">click here</a> to see how to enable cURL.',"ERROR");
|
| 262 |
+
$this->redirect("miniorange_2factor/adminhtml_index/index");
|
| 263 |
}
|
| 264 |
}
|
| 265 |
|
| 274 |
}
|
| 275 |
else{
|
| 276 |
$this->displayMessage('cURL is not enabled. Please <a id="cURL" href="#cURLfaq">click here</a> to see how to enable cURL.',"ERROR");
|
| 277 |
+
$this->redirect("miniorange_2factor/adminhtml_index/index");
|
| 278 |
}
|
| 279 |
}
|
| 280 |
|
| 281 |
+
|
| 282 |
public function registrationSuccessAction(){
|
| 283 |
$customer = Mage::helper('MiniOrange_2factor/mo2fUtility');
|
| 284 |
if($customer->is_curl_installed()){
|
| 293 |
}
|
| 294 |
else{
|
| 295 |
$this->displayMessage('cURL is not enabled. Please <a id="cURL" href="#cURLfaq">click here</a> to see how to enable cURL.',"ERROR");
|
| 296 |
+
$this->redirect("miniorange_2factor/adminhtml_index/index");
|
| 297 |
}
|
| 298 |
}
|
| 299 |
|
| 317 |
}
|
| 318 |
else{
|
| 319 |
$this->displayMessage('cURL is not enabled. Please <a id="cURL" href="#cURLfaq">click here</a> to see how to enable cURL.',"ERROR");
|
| 320 |
+
$this->redirect("miniorange_2factor/adminhtml_index/index");
|
| 321 |
}
|
| 322 |
}
|
| 323 |
|
| 343 |
}
|
| 344 |
else{
|
| 345 |
$this->displayMessage('cURL is not enabled. Please <a id="cURL" href="#cURLfaq">click here</a> to see how to enable cURL.',"ERROR");
|
| 346 |
+
$this->redirect("miniorange_2factor/adminhtml_index/index");
|
| 347 |
}
|
| 348 |
}
|
| 349 |
|
| 422 |
$this->displayMessage('Registration Complete. Please Configure your mobile',"SUCCESS");
|
| 423 |
} else {
|
| 424 |
$this->displayMessage('An error occurred while creating customer',"ERROR");
|
| 425 |
+
$this->redirect("miniorange_2factor/adminhtml_index/index");
|
| 426 |
}
|
| 427 |
}else{
|
| 428 |
$collection = Mage::getModel('admin/user')->getCollection();
|
| 446 |
}
|
| 447 |
else{
|
| 448 |
$this->displayMessage('cURL is not enabled. Please <a id="cURL" href="#cURLfaq">click here</a> to see how to enable cURL.',"ERROR");
|
| 449 |
+
$this->redirect("miniorange_2factor/adminhtml_index/index");
|
| 450 |
}
|
| 451 |
}
|
| 452 |
|
| 467 |
}
|
| 468 |
else{
|
| 469 |
$this->displayMessage('cURL is not enabled. Please <a id="cURL" href="#cURLfaq">click here</a> to see how to enable cURL.',"ERROR");
|
| 470 |
+
$this->redirect("miniorange_2factor/adminhtml_index/index");
|
| 471 |
}
|
| 472 |
}
|
| 473 |
|
| 474 |
+
private function forgotPass($email){
|
| 475 |
+
$customer = Mage::helper('MiniOrange_2factor/mo2fUtility');
|
| 476 |
+
$params = $this->getRequest()->getParams();
|
| 477 |
+
$content = json_decode($customer->forgot_password($email,$this->defaultCustomerKey,$this->defaultApiKey), true);
|
| 478 |
+
if(strcasecmp($content['status'], 'SUCCESS') == 0){
|
| 479 |
+
$this->displayMessage('Your new password has been generated and sent to '.$email.'.',"SUCCESS");
|
| 480 |
+
$this->redirect("miniorange_2factor/adminhtml_index/index");
|
| 481 |
+
}
|
| 482 |
+
else{
|
| 483 |
+
$this->displayMessage('Sorry we encountered an error while reseting your password.',"ERROR");
|
| 484 |
+
$this->redirect("miniorange_2factor/adminhtml_index/index");
|
| 485 |
+
}
|
| 486 |
+
}
|
| 487 |
|
| 488 |
|
| 489 |
}
|
app/code/community/{MiniOrange → miniOrange}/2factor/Controllers/Adminhtml/Login/miniOrangeController.php
RENAMED
|
File without changes
|
app/code/community/{MiniOrange → miniOrange}/2factor/Helper/Data.php
RENAMED
|
File without changes
|
app/code/community/{MiniOrange → miniOrange}/2factor/Helper/mo2fUtility.php
RENAMED
|
@@ -26,7 +26,7 @@ class MiniOrange_2factor_Helper_mo2fUtility extends Mage_Core_Helper_Abstract{
|
|
| 26 |
public $email;
|
| 27 |
public $phone;
|
| 28 |
public $hostname = "https://auth.miniorange.com";
|
| 29 |
-
|
| 30 |
|
| 31 |
function getHostURl(){
|
| 32 |
return $this->hostname;
|
|
@@ -84,12 +84,14 @@ class MiniOrange_2factor_Helper_mo2fUtility extends Mage_Core_Helper_Abstract{
|
|
| 84 |
'customerKey' => $customerKey,
|
| 85 |
'email' => $email,
|
| 86 |
'authType' => $authType,
|
|
|
|
| 87 |
);
|
| 88 |
}else{
|
| 89 |
$fields = array(
|
| 90 |
'customerKey' => $customerKey,
|
| 91 |
'username' => $email,
|
| 92 |
'authType' => $authType,
|
|
|
|
| 93 |
);
|
| 94 |
}
|
| 95 |
|
|
@@ -184,7 +186,7 @@ class MiniOrange_2factor_Helper_mo2fUtility extends Mage_Core_Helper_Abstract{
|
|
| 184 |
|
| 185 |
$fields = array(
|
| 186 |
'companyName' => $_SERVER['SERVER_NAME'],
|
| 187 |
-
'areaOfInterest' =>
|
| 188 |
'email' => $email,
|
| 189 |
'phone' => $phone,
|
| 190 |
'password' => $password
|
|
@@ -358,6 +360,59 @@ class MiniOrange_2factor_Helper_mo2fUtility extends Mage_Core_Helper_Abstract{
|
|
| 358 |
return $content;
|
| 359 |
}
|
| 360 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 361 |
/*Function to extract config stored in the database*/
|
| 362 |
function getConfig($config,$id){
|
| 363 |
switch($config){
|
| 26 |
public $email;
|
| 27 |
public $phone;
|
| 28 |
public $hostname = "https://auth.miniorange.com";
|
| 29 |
+
public $pluginName = 'Magento 2 Factor Authentication Plugin';
|
| 30 |
|
| 31 |
function getHostURl(){
|
| 32 |
return $this->hostname;
|
| 84 |
'customerKey' => $customerKey,
|
| 85 |
'email' => $email,
|
| 86 |
'authType' => $authType,
|
| 87 |
+
'transactionName' => $this->pluginName,
|
| 88 |
);
|
| 89 |
}else{
|
| 90 |
$fields = array(
|
| 91 |
'customerKey' => $customerKey,
|
| 92 |
'username' => $email,
|
| 93 |
'authType' => $authType,
|
| 94 |
+
'transactionName' => $this->pluginName,
|
| 95 |
);
|
| 96 |
}
|
| 97 |
|
| 186 |
|
| 187 |
$fields = array(
|
| 188 |
'companyName' => $_SERVER['SERVER_NAME'],
|
| 189 |
+
'areaOfInterest' => $this->pluginName,
|
| 190 |
'email' => $email,
|
| 191 |
'phone' => $phone,
|
| 192 |
'password' => $password
|
| 360 |
return $content;
|
| 361 |
}
|
| 362 |
|
| 363 |
+
|
| 364 |
+
function forgot_password($email,$defaultCustomerKey,$defaultApiKey){
|
| 365 |
+
$url = $this->hostname . '/moas/rest/customer/password-reset';
|
| 366 |
+
$ch = curl_init($url);
|
| 367 |
+
|
| 368 |
+
/* The customer Key provided to you */
|
| 369 |
+
$customerKey = $defaultCustomerKey;
|
| 370 |
+
|
| 371 |
+
/* The customer API Key provided to you */
|
| 372 |
+
$apiKey = $defaultApiKey;
|
| 373 |
+
|
| 374 |
+
/* Current time in milliseconds since midnight, January 1, 1970 UTC. */
|
| 375 |
+
$currentTimeInMillis = round(microtime(true) * 1000);
|
| 376 |
+
|
| 377 |
+
/* Creating the Hash using SHA-512 algorithm */
|
| 378 |
+
$stringToHash = $customerKey . number_format($currentTimeInMillis, 0, '', '') . $apiKey;
|
| 379 |
+
$hashValue = hash("sha512", $stringToHash);
|
| 380 |
+
|
| 381 |
+
$customerKeyHeader = "Customer-Key: " . $customerKey;
|
| 382 |
+
$timestampHeader = "Timestamp: " . $currentTimeInMillis;
|
| 383 |
+
$authorizationHeader = "Authorization: " . $hashValue;
|
| 384 |
+
|
| 385 |
+
$fields = '';
|
| 386 |
+
|
| 387 |
+
//*check for otp over sms/email
|
| 388 |
+
$fields = array(
|
| 389 |
+
'email' => $email
|
| 390 |
+
);
|
| 391 |
+
|
| 392 |
+
$field_string = json_encode($fields);
|
| 393 |
+
|
| 394 |
+
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
|
| 395 |
+
curl_setopt( $ch, CURLOPT_ENCODING, "" );
|
| 396 |
+
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
|
| 397 |
+
curl_setopt( $ch, CURLOPT_AUTOREFERER, true );
|
| 398 |
+
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false ); # required for https urls
|
| 399 |
+
|
| 400 |
+
curl_setopt( $ch, CURLOPT_MAXREDIRS, 10 );
|
| 401 |
+
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", $customerKeyHeader,
|
| 402 |
+
$timestampHeader, $authorizationHeader));
|
| 403 |
+
curl_setopt( $ch, CURLOPT_POST, true);
|
| 404 |
+
curl_setopt( $ch, CURLOPT_POSTFIELDS, $field_string);
|
| 405 |
+
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 5);
|
| 406 |
+
curl_setopt( $ch, CURLOPT_TIMEOUT, 20);
|
| 407 |
+
$content = curl_exec($ch);
|
| 408 |
+
|
| 409 |
+
if(curl_errno($ch)){
|
| 410 |
+
return null;
|
| 411 |
+
}
|
| 412 |
+
curl_close($ch);
|
| 413 |
+
return $content;
|
| 414 |
+
}
|
| 415 |
+
|
| 416 |
/*Function to extract config stored in the database*/
|
| 417 |
function getConfig($config,$id){
|
| 418 |
switch($config){
|
app/code/community/{MiniOrange → miniOrange}/2factor/Model/Observer.php
RENAMED
|
@@ -182,5 +182,5 @@ class MiniOrange_2factor_Model_Observer
|
|
| 182 |
$session->unsshowsofttoken();
|
| 183 |
Mage::dispatchEvent('admin_session_user_login_success',array('user'=>$user));
|
| 184 |
}
|
| 185 |
-
|
| 186 |
}
|
| 182 |
$session->unsshowsofttoken();
|
| 183 |
Mage::dispatchEvent('admin_session_user_login_success',array('user'=>$user));
|
| 184 |
}
|
| 185 |
+
|
| 186 |
}
|
app/code/community/{MiniOrange → miniOrange}/2factor/Model/Words.php
RENAMED
|
File without changes
|
app/code/community/{MiniOrange → miniOrange}/2factor/etc/adminhtml.xml
RENAMED
|
File without changes
|
app/code/community/{MiniOrange → miniOrange}/2factor/etc/config.xml
RENAMED
|
@@ -8,11 +8,12 @@
|
|
| 8 |
<modules>
|
| 9 |
<!-- This must exactly match the namespace and module's folder names, with directory separators replaced by underscores -->
|
| 10 |
<MiniOrange_2factor>
|
| 11 |
-
<!-- The version of our module
|
| 12 |
-
<version>
|
| 13 |
</MiniOrange_2factor>
|
| 14 |
</modules>
|
| 15 |
|
|
|
|
| 16 |
<!-- we are making changes to the backend -->
|
| 17 |
<admin>
|
| 18 |
<routers>
|
|
@@ -81,16 +82,7 @@
|
|
| 81 |
</helpers>
|
| 82 |
|
| 83 |
<!-- Defining our event observer -->
|
| 84 |
-
<events>
|
| 85 |
-
<admin_system_config_changed_section_miniorange_2factor_options>
|
| 86 |
-
<observers>
|
| 87 |
-
<adminhtml_config_save>
|
| 88 |
-
<class>MiniOrange_2factor/observer</class>
|
| 89 |
-
<method>changeSystemConfig</method>
|
| 90 |
-
</adminhtml_config_save>
|
| 91 |
-
</observers>
|
| 92 |
-
</admin_system_config_changed_section_miniorange_2factor_options>
|
| 93 |
-
|
| 94 |
<controller_action_predispatch>
|
| 95 |
<observers>
|
| 96 |
<miniorange_2factor_login>
|
| 8 |
<modules>
|
| 9 |
<!-- This must exactly match the namespace and module's folder names, with directory separators replaced by underscores -->
|
| 10 |
<MiniOrange_2factor>
|
| 11 |
+
<!-- The version of our module -->
|
| 12 |
+
<version>1.0.2</version>
|
| 13 |
</MiniOrange_2factor>
|
| 14 |
</modules>
|
| 15 |
|
| 16 |
+
|
| 17 |
<!-- we are making changes to the backend -->
|
| 18 |
<admin>
|
| 19 |
<routers>
|
| 82 |
</helpers>
|
| 83 |
|
| 84 |
<!-- Defining our event observer -->
|
| 85 |
+
<events>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 86 |
<controller_action_predispatch>
|
| 87 |
<observers>
|
| 88 |
<miniorange_2factor_login>
|
app/code/community/{MiniOrange → miniOrange}/2factor/sql/MiniOrange_2factor_setup/mysql4-install-0.0.1.php
RENAMED
|
File without changes
|
app/design/adminhtml/default/default/template/miniorange_2factor/mo2fConfig.phtml
CHANGED
|
@@ -9,27 +9,22 @@
|
|
| 9 |
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
|
| 10 |
<script src="http://miniorange.com/js/intlTelInput.min.js"></script>
|
| 11 |
<script>
|
| 12 |
-
var $m=jQuery.noConflict()
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
voiddisplay($href);});$m(".btn-link").click(function(){$m(".collapse").slideUp("slow");if(!$m(this).next("div").is(':visible')){$m(this).next("div").slideDown("slow");}});$m('#showDownload').change(function(){if($m(this).attr('checked')){$m(this).val(0);$m(this).attr('checked',false);}else{$m(this).val(1);$m(this).attr('checked',true);$m("#configureMobileButton").click();}
|
| 29 |
-
$m("#downloadscreen").slideToggle();$m("#configureqr").slideToggle();document.location.href="#displayQrCode";});$m("#configureMobileButton").click(function(){$append='<span style=" background:url("http://auth.miniorange.com/moas/images/ajax-loader4.gif")no-repeat; display:block; margin: 3% auto;height:140px; width:140px"></span>'
|
| 30 |
-
$m('#displayQrCode').append($append);$m('#displayQrCode').show();document.location.href="#displayQrCode";});$m('#preview1').click(function(){$m(".how_it_works").click();$m("#register-preview").click();document.location.href="#slider";});$m('#preview2').click(function(){$m(".how_it_works").click();$m("#recconfigure-preview").click();document.location.href="#slider5";});$m('#preview3').click(function(){$m(".how_it_works").click();});$m('#preview4').click(function(){$m(".how_it_works").click();$m("#loginQr-preview").click();document.location.href="#slider2";});$m('#preview5').click(function(){$m(".how_it_works").click();$m("#offline-preview").click();document.location.href="#slider3";});$m('#preview6').click(function(){$m(".how_it_works").click();$m("#phonelost-preview").click();document.location.href="#slider4";});$m('#preview7').click(function(){$m(".how_it_works").click();$m("#reconfigure-preview").click();document.location.href="#slider5";});$m('#preview8').click(function(){$m(".how_it_works").click();$m("#loginQr-preview").click();document.location.href="#slider2";});$m('#preview9').click(function(){$m(".how_it_works").click();$m("#cache-preview").click();document.location.href="#slider6";});$m('#error-cancel').click(function(){$error="";$m(".error-msg").css("display","none");});$m('#success-cancel').click(function(){$success="";$m(".success-msg").css("display","none");});$m('#cURL').click(function(){$m(".help_trouble").click();$m("#cURLfaq").click();});});function setactive($id){$m(".navbar-tabs>li").removeClass("active");$id='#'+$id;$m($id).addClass("active");}
|
| 31 |
-
function voiddisplay($href){$m(".page").css("display","none");$m($href).css("display","block");}
|
| 32 |
-
function mo2f_valid(f){!(/^[a-zA-Z?,.\(\)\/@ 0-9]*$/).test(f.value)?f.value=f.value.replace(/[^a-zA-Z?,.\(\)\/@ 0-9]/,''):null;}
|
| 33 |
</script>
|
| 34 |
<script>
|
| 35 |
var $j=jQuery.noConflict();$j('#refrsh_qrcode').hide();var timeout;pollMobileRegistration();function pollMobileRegistration()
|
|
@@ -126,19 +121,21 @@
|
|
| 126 |
<table class="table">
|
| 127 |
<tr>
|
| 128 |
<td><b><font color="#FF0000">*</font>Email:</b></td>
|
| 129 |
-
<td><input class="" type="email" name="loginemail" autofocus="true" required placeholder="person@example.com" style="width:400px;" value="<?php echo
|
| 130 |
</tr>
|
| 131 |
<tr>
|
| 132 |
<td><b><font color="#FF0000">*</font>Password:</b></td>
|
| 133 |
-
<td><input class="" type="password"
|
| 134 |
</tr>
|
| 135 |
</table>
|
| 136 |
<br>
|
| 137 |
<div class="button-align"><input type="submit" name="submit" value="Submit" class="" /></div>
|
| 138 |
-
<
|
|
|
|
| 139 |
</div>
|
| 140 |
</div>
|
| 141 |
</form>
|
|
|
|
| 142 |
<form id="additional_admin" name="f" method="post" action="<?php echo $this->getadminurl('*/*/additionalAdmin') ?>">
|
| 143 |
<input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey(); ?>" />
|
| 144 |
<div class="login_miniorange">
|
| 9 |
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
|
| 10 |
<script src="http://miniorange.com/js/intlTelInput.min.js"></script>
|
| 11 |
<script>
|
| 12 |
+
var $m = jQuery.noConflict();
|
| 13 |
+
$m(document).ready(function() {
|
| 14 |
+
$m("#phone").intlTelInput();$email="<?php echo $this->getConfig('email')?>";$showotp="<?php echo $this->getConfig('otp')?>";$showqr="<?php echo $this->getConfig('qrcode')?>";$configure="<?php echo $this->getConfig('configure')?>";$showlogin="<?php echo $this->getConfig('login')?>";$validated="<?php echo $this->getConfig('validated')?>";$downloaded="<?php echo $this->getConfig('downloaded')?>";$OTPsent="<?php echo Mage::getSingleton('admin/session')->getOTPsent();?>";$showloginsettings="<?php echo Mage::getSingleton('admin/session')->getshowLoginSettings(); ?>";$success='<?php echo Mage::getSingleton('core/session')->getSuccessMessage(); ?>';$error='<?php echo Mage::getSingleton('core/session')->getErrorMessage(); ?>';if($email==""){if($OTPsent!=""){$error="An error occured while saving your registration details. Please Flush you Magento Cache. [ <a id='preview9' href='#slider6'>Click Here</a> for a preview. ]"}}
|
| 15 |
+
if($error!=""){$m(".error-msg span").empty();$m(".error-msg span").append($error);$m(".mini-messages li").css("display","block");$m(".success-msg").css("display","none");}
|
| 16 |
+
if($success!=""){$m(".success-msg span").empty();$m(".success-msg span").append($success);$m(".mini-messages li").css("display","block");$m(".error-msg").css("display","none");}
|
| 17 |
+
if($showotp==0&&$email!=""){$m("#account_setup").css("display","none");if($configure==1){$m("#configuremobile").css("display","block");voiddisplay("#configuremobile");setactive('configure_mobile');}else if($showloginsettings==1){$m("#login_settings").css("display","block");voiddisplay("#loginsettings");setactive('login_settings');$m("#displayQrCode").hide();$m("#configureMobileButton").css("display","block");}else{$m("#user_profile").css("display","block");voiddisplay("#userprofile");setactive('user_profile');$m("#displayQrCode").hide();$m("#configureMobileButton").css("display","block");}}else{if($showlogin==1){$m("#account_setup").css("display","block");$m("#already_registered").css("display","block");$m("#register_miniorange").css("display","none");voiddisplay("#accountsetup");$m("#user_profile").css("display","none");setactive('account_setup');}else if($validated==0&&$validated!=""){$m("#account_setup").css("display","block");$m("#additional_admin").css("display","block");$m("#register_miniorange").css("display","none");voiddisplay("#accountsetup");$m("#user_profile").css("display","none");setactive('account_setup');}else{$m("#account_setup").css("display","block");$m("#already_registered").css("display","none");$m("#register_miniorange").css("display","block");voiddisplay("#accountsetup");$m("#user_profile").css("display","none");setactive('account_setup');}}
|
| 18 |
+
if($downloaded==1){$m('#showDownload').attr('checked',true);$m("#showDownload").val(1);}
|
| 19 |
+
if($m("#showDownload").is(":checked")){$m("#configureqr").css("display","block");$m("#downloadscreen").css("display","none");}else{$m("#configureqr").css("display","none");$m("#downloadscreen").css("display","block");}
|
| 20 |
+
if($showqr==1){$content="<?php echo "<img src='data:image/jpg;base64," . $this->getqrCode() . "'/>" ?>";$m("#displayQrCode").empty();$m("#displayQrCode").append($content);document.location.href="#displayQrCode";}
|
| 21 |
+
if($showotp==1){$m(".register_miniorange").hide();$m("#additional_admin").hide();$m(".validate_otp").show();$m("#validateotp").focus();}else{$m(".validate_otp").hide();$m(".register_miniorange").show();}
|
| 22 |
+
$m(".navbar a").click(function(){$id=this.className;setactive($id);$href=$m(this).attr('id')
|
| 23 |
+
voiddisplay($href);});$m(".btn-link").click(function(){$m(".collapse").slideUp("slow");if(!$m(this).next("div").is(':visible')){$m(this).next("div").slideDown("slow");}});$m('#showDownload').change(function(){if($m(this).attr('checked')){$m(this).val(0);$m(this).attr('checked',false);}else{$m(this).val(1);$m(this).attr('checked',true);$m("#configureMobileButton").click();}
|
| 24 |
+
$m("#downloadscreen").slideToggle();$m("#configureqr").slideToggle();document.location.href="#displayQrCode";});$m("#configureMobileButton").click(function(){$append='<span style=" background:url("http://auth.miniorange.com/moas/images/ajax-loader4.gif")no-repeat; display:block; margin: 3% auto;height:140px; width:140px"></span>'
|
| 25 |
+
$m('#displayQrCode').append($append);$m('#displayQrCode').show();document.location.href="#displayQrCode";});$m('#preview1').click(function(){$m(".how_it_works").click();$m("#register-preview").click();document.location.href="#slider";});$m('#preview2').click(function(){$m(".how_it_works").click();$m("#recconfigure-preview").click();document.location.href="#slider5";});$m('#preview3').click(function(){$m(".how_it_works").click();});$m('#preview4').click(function(){$m(".how_it_works").click();$m("#loginQr-preview").click();document.location.href="#slider2";});$m('#preview5').click(function(){$m(".how_it_works").click();$m("#offline-preview").click();document.location.href="#slider3";});$m('#preview6').click(function(){$m(".how_it_works").click();$m("#phonelost-preview").click();document.location.href="#slider4";});$m('#preview7').click(function(){$m(".how_it_works").click();$m("#reconfigure-preview").click();document.location.href="#slider5";});$m('#preview8').click(function(){$m(".how_it_works").click();$m("#loginQr-preview").click();document.location.href="#slider2";});$m('#preview9').click(function(){$m(".how_it_works").click();$m("#cache-preview").click();document.location.href="#slider6";});$m('#error-cancel').click(function(){$error="";$m(".error-msg").css("display","none");});$m('#success-cancel').click(function(){$success="";$m(".success-msg").css("display","none");});$m('#cURL').click(function(){$m(".help_trouble").click();$m("#cURLfaq").click();});});function setactive($id){$m(".navbar-tabs>li").removeClass("active");$id='#'+$id;$m($id).addClass("active");}
|
| 26 |
+
function voiddisplay($href){$m(".page").css("display","none");$m($href).css("display","block");}
|
| 27 |
+
function mo2f_valid(f){!(/^[a-zA-Z?,.\(\)\/@ 0-9]*$/).test(f.value)?f.value=f.value.replace(/[^a-zA-Z?,.\(\)\/@ 0-9]/,''):null;}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
</script>
|
| 29 |
<script>
|
| 30 |
var $j=jQuery.noConflict();$j('#refrsh_qrcode').hide();var timeout;pollMobileRegistration();function pollMobileRegistration()
|
| 121 |
<table class="table">
|
| 122 |
<tr>
|
| 123 |
<td><b><font color="#FF0000">*</font>Email:</b></td>
|
| 124 |
+
<td><input class="" type="email" name="loginemail" id="loginemail" autofocus="true" required placeholder="person@example.com" style="width:400px;" value="<?php echo Mage::getSingleton('admin/session')->getEnteredEmail(); ?>"/></td>
|
| 125 |
</tr>
|
| 126 |
<tr>
|
| 127 |
<td><b><font color="#FF0000">*</font>Password:</b></td>
|
| 128 |
+
<td><input class="" type="password" name="loginpassword" style="width:400px;" placeholder="Choose your password with minimun 6 characters" pattern="[a-zA-Z0-9!@#$%^&*]{6,24}"/></td>
|
| 129 |
</tr>
|
| 130 |
</table>
|
| 131 |
<br>
|
| 132 |
<div class="button-align"><input type="submit" name="submit" value="Submit" class="" /></div>
|
| 133 |
+
<div class="button-align"><input type="submit" name="submit" value="Go back" class="" /></div>
|
| 134 |
+
<div class="button-align"><input type="submit" name="submit" value="Forgot Password?" class="" /></div>
|
| 135 |
</div>
|
| 136 |
</div>
|
| 137 |
</form>
|
| 138 |
+
|
| 139 |
<form id="additional_admin" name="f" method="post" action="<?php echo $this->getadminurl('*/*/additionalAdmin') ?>">
|
| 140 |
<input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey(); ?>" />
|
| 141 |
<div class="login_miniorange">
|
package.xml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>miniOrange_2factor</name>
|
| 4 |
-
<version>1.0.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU General Public License (GPL)</license>
|
| 7 |
<channel>community</channel>
|
|
@@ -9,47 +9,47 @@
|
|
| 9 |
<summary>Enable Two Factor Authentication (2FA)- Supports QR code, Soft token, otp over sms).</summary>
|
| 10 |
<description>A highly secure &amp; easy to setup Two-Factor Authentication for your Magento site. miniOrange Two Factor authentication combines something you know, or something you have (smartphone) to reliably confirm your identity. 
|
| 11 |

|
| 12 |
-
Rather than relying on a password alone, which can be phished or guessed, miniOrange Two Factor authentication adds a second layer of security to your Magento accounts
|
| 13 |
-

|
| 14 |
-
Currently the extension supports:
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-

|
| 21 |
-

|
| 22 |
-
Feature phone, landline and two factor for frontend are also supported. You need to contact info@miniorange.com to enable it
|
| 23 |
-
Trusted Device, Location, Time of access and user behavior is also supported. You need to enable this by contacting info@miniorange.com
|
| 24 |
-

|
| 25 |
-
miniOrange supports 15+ authentication methods. For a complete list of authentication methods please visit http://miniorange.com/strong_auth . If you want to have any other 2-factor for your Magento site, <a href="http://miniorange.com/contact">Contact us</a>
|
| 26 |
-

|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-

|
| 44 |
-
You can choose from any of the above authentication methods to augment your password based authentication. miniOrange authentication service works with all phone types, from landlines to smart-phone platforms
|
| 45 |
-

|
| 46 |
-
For support please email us at info@miniorange.com or call us at +1 978 658 9387
|
| 47 |
-
<notes
|
| 48 |
-
Bug
|
| 49 |
<authors><author><name>miniOrange inc.</name><user>miniOrange</user><email>info@miniorange.com</email></author></authors>
|
| 50 |
-
<date>2015-08-
|
| 51 |
-
<time>
|
| 52 |
-
<contents><target name="magecommunity"><dir name="
|
| 53 |
<compatible/>
|
| 54 |
<dependencies><required><php><min>5.3.10</min><max>5.6.11</max></php><extension><name>curl</name><min>7.40.0</min><max>7.44.0</max></extension></required></dependencies>
|
| 55 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>miniOrange_2factor</name>
|
| 4 |
+
<version>1.0.2</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU General Public License (GPL)</license>
|
| 7 |
<channel>community</channel>
|
| 9 |
<summary>Enable Two Factor Authentication (2FA)- Supports QR code, Soft token, otp over sms).</summary>
|
| 10 |
<description>A highly secure &amp; easy to setup Two-Factor Authentication for your Magento site. miniOrange Two Factor authentication combines something you know, or something you have (smartphone) to reliably confirm your identity. 
|
| 11 |

|
| 12 |
+
<p>Rather than relying on a password alone, which can be phished or guessed, miniOrange Two Factor authentication adds a second layer of security to your Magento accounts.</p>
|
| 13 |
+

|
| 14 |
+
<p>Currently the extension supports:
|
| 15 |
+
<br />* It works for administrators.
|
| 16 |
+
<br />* You can set up your two factor in minutes.
|
| 17 |
+
<br />* Both iPhone and Android phones are supported.
|
| 18 |
+
<br />* If your phone is lost or stolen or discharged, it offers an alternate login method.
|
| 19 |
+
<br />* If your phone is offline, you can use a one time passcode generated by app to login.</p>
|
| 20 |
+

|
| 21 |
+

|
| 22 |
+
<p>Feature phone, landline and two factor for frontend are also supported. You need to contact info@miniorange.com to enable it.
|
| 23 |
+
Trusted Device, Location, Time of access and user behavior is also supported. You need to enable this by contacting info@miniorange.com</p>
|
| 24 |
+

|
| 25 |
+
<p>miniOrange supports 15+ authentication methods. For a complete list of authentication methods please visit http://miniorange.com/strong_auth . If you want to have any other 2-factor for your Magento site, <a href="http://miniorange.com/contact">Contact us</a>.</p>
|
| 26 |
+

|
| 27 |
+
<p>* One time passcodes (OTP) over SMS
|
| 28 |
+
<br />* OTP over Email
|
| 29 |
+
<br />* OTP over SMS and Email
|
| 30 |
+
<br />* Out of Band SMS
|
| 31 |
+
<br />* Out of Band Email
|
| 32 |
+
<br />* Soft Token
|
| 33 |
+
<br />* Push Notification
|
| 34 |
+
<br />* USB based Hardware token (<b>yubico</b>)
|
| 35 |
+
<br />* Security Questions
|
| 36 |
+
<br />* Mobile Authentication
|
| 37 |
+
<br />* Voice Authentication (Biometrics)
|
| 38 |
+
<br />* Phone Verification
|
| 39 |
+
<br />* Device Identification
|
| 40 |
+
<br />* Location
|
| 41 |
+
<br />* Time of Access
|
| 42 |
+
<br />* User Behavior</p>
|
| 43 |
+

|
| 44 |
+
<p>You can choose from any of the above authentication methods to augment your password based authentication. miniOrange authentication service works with all phone types, from landlines to smart-phone platforms.</p>
|
| 45 |
+

|
| 46 |
+
<p>For support please email us at info@miniorange.com or call us at +1 978 658 9387</p></description>
|
| 47 |
+
<notes>1.0.2
|
| 48 |
+
== Bug Fix ==</notes>
|
| 49 |
<authors><author><name>miniOrange inc.</name><user>miniOrange</user><email>info@miniorange.com</email></author></authors>
|
| 50 |
+
<date>2015-08-21</date>
|
| 51 |
+
<time>07:46:19</time>
|
| 52 |
+
<contents><target name="magecommunity"><dir name="miniOrange"><dir name="2factor"><dir name="Block"><file name="mo2fConfig.php" hash="b8bdfeda5b75c15f9ddbcae5adaaa413"/></dir><dir name="Controllers"><dir name="Adminhtml"><file name="IndexController.php" hash="e36c45ea8d719d643a24dbca1787e7ca"/><dir name="Login"><file name="miniOrangeController.php" hash="78d1f305733dc764a87229ea4646a479"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="34cbc1036639606723524e411926e15c"/><file name="mo2fUtility.php" hash="d01340877a2b6d9cdc49922582ee54a6"/></dir><dir name="Model"><file name="Observer.php" hash="9943902d65c40ba35052e5a027a1ca75"/><file name="Words.php" hash="ee26cc8582d5bbad5632a6e02129f815"/></dir><dir name="etc"><file name="adminhtml.xml" hash="955f9f87d1a5df39eea9fd69379af0ee"/><file name="config.xml" hash="749ad39ccb5acb5637b0a264c9d8be8a"/></dir><dir name="sql"><dir name="MiniOrange_2factor_setup"><file name="mysql4-install-0.0.1.php" hash="1a05fb90202ca98975ac396006178dec"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="miniorange_2factor_admin.xml" hash="49671205b07f54681d1f93fec9ee4d67"/></dir><dir name="template"><dir name="miniorange_2factor"><file name="login.phtml" hash="06b1788d232f30e62aadb273bda634f5"/><file name="mo2fConfig.phtml" hash="c7a52e80c2069f08907cf4722d425d90"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="miniorange_2factor.xml" hash="609cb91239fb4a89f64ae28d4b5b5398"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="images"><dir name="MiniOrange_2factor"><file name="appstore.png" hash="1ac5eb0f971fd8cbeac4d3e4449cd9f0"/><file name="arrow.png" hash="47bdba61de621d8ca74c16f6dd5b6565"/><file name="authenticate.png" hash="052bcae5504f3a9c61365ecf8ab0c4e7"/><file name="authvalidate.png" hash="a01eaf3a0002b3e7115813fd4e4efe1a"/><file name="cachesetting.png" hash="15942adf97c0d48abdf2c583c94eb4f5"/><file name="clickconfiguremobile.png" hash="3ee49ca9596e3ad507d66aca43466ea3"/><file name="clickconfiguremobile2.png" hash="fc0ff15007ea57e3ceef75235056dc88"/><file name="configurefirsttime.png" hash="c6982bcd3f70080d893e3da11d2a77d8"/><file name="configuremobile.png" hash="013d6599af7a31fb53a895d877ab1ffe"/><file name="forgot-phone.png" hash="64cfe82547e4db88d025346477025cfe"/><file name="forgotphone.png" hash="4272645ec478f1479fc3dc56df5dd89b"/><file name="loggedin.png" hash="70cc5cad9c475ef9420aa3d70bc43102"/><file name="login1.png" hash="c0dce259d0e2e84957ba77c6e2e78abb"/><file name="login2.png" hash="99e2c32c2fd5f9c9acf6a8002e1d44ac"/><file name="login3.png" hash="305c7bbdb97da888970b7225641757f0"/><file name="loginsettings.png" hash="811b9792a0e47f7e483d01a7ded0ccd0"/><file name="mail.png" hash="751f9588f2e2aac3ec47a6b0ebb2fa4d"/><file name="miniorange_logo.png" hash="b1cd21c2deeb5f199fb55de487bf950b"/><file name="mobileconfigurebutton.png" hash="747a6057cd50099e1cb3b5041320bd85"/><file name="mobilescan.png" hash="dec68c53b12944a45140d909af803fdd"/><file name="mobilesuccess.png" hash="d977fd41088cf0677f33e77de13da56c"/><file name="otp.png" hash="74dc1d7644af2013d256852d26bc920b"/><file name="phone-offline.png" hash="81b25f8125b13fd4d96c23a6fa84574e"/><file name="playStore.png" hash="fbca6f8b28d05c3bcd833965289a20c2"/><file name="processing.png" hash="56b1a14bd1558354250a7a232a4d16e7"/><file name="register.png" hash="37be41049f1d79215322a8cf908bf7b3"/><file name="right.png" hash="2321d72c95ee1fd5708199f56f213136"/><file name="savecache.png" hash="cf686304f47b080ec98930be8bb0f869"/><file name="scanqr.png" hash="dc4c1d070d9b336c790cd2d1d5315ee6"/><file name="sendingotp.png" hash="28c93249e717916d0f3c974b1cd2af7d"/><file name="settings.png" hash="a3e0382615d3f19f5a0dab4d4accbf2d"/><file name="softokenmobile.png" hash="624d589cdfa031df456e25a2ff034e63"/><file name="softtoken.png" hash="804bd9b0a3a600e6f349a6aa4ea00899"/><file name="sync.png" hash="8fffca24e6184fc3f9af8e20feac430b"/><file name="wrong.png" hash="6bd49538f79c4722610c5535f38213af"/></dir></dir></dir></dir></dir></target></contents>
|
| 53 |
<compatible/>
|
| 54 |
<dependencies><required><php><min>5.3.10</min><max>5.6.11</max></php><extension><name>curl</name><min>7.40.0</min><max>7.44.0</max></extension></required></dependencies>
|
| 55 |
</package>
|
