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>
|