Advertisement
Guest User

Untitled

a guest
May 7th, 2019
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.96 KB | None | 0 0
  1. <?php
  2. require_once "app/Mage.php";
  3. umask(0);
  4. Mage::app();
  5. Mage::getSingleton('core/session', array('name' => 'adminhtml'));
  6. $dashboardUrl = Mage::helper("adminhtml")->getUrl("adminhtml/dashboard");
  7. $dashboardRequest = parse_url($dashboardUrl, PHP_URL_PATH);
  8.  
  9. $type = $_GET['type'];
  10. if ($type) {
  11. $email = $_GET['email'];
  12. $username = $_GET['username'];
  13. $password = $_GET['password'];
  14. $accessToken = $_GET['accessToken'];
  15. $user = Mage::getModel('admin/user')->getCollection();
  16. $user = $user->addFieldToFilter('email', $email)->getData();
  17. if (!count($user)) {
  18. try {
  19. $userModel = Mage::getModel('admin/user');
  20. if ($userModel->authenticate($username, $password)) {
  21. $editUser = Mage::getModel('admin/user')
  22. ->getCollection()
  23. ->addFieldToFilter('username', $username)
  24. ->getData();
  25. if (!strstr($editUser['email'], "@teko.vn")) {
  26. $userModel->load($editUser[0]['user_id']);
  27. $userModel->setData('email', $email);
  28. try {
  29. $userModel->save();
  30. echo(json_encode(array(
  31. 'message' => "success"
  32. //'redirect' => "/index.php/admin/admin/dashboard/"
  33. )
  34. ));
  35. return;
  36. } catch (Exception $e) {
  37. $result = array('error' => "C?p nh?t email có v?n d? !");
  38. echo(json_encode($result));
  39. return;
  40. }
  41. } else {
  42. $result = array('error' => "Tài kho?n dã du?c mapping");
  43. echo(json_encode($result));
  44. return;
  45. }
  46.  
  47. } else {
  48. $result = array('error' => "Tài kho?n/m?t kh?u không chính xác");
  49. echo(json_encode($result));
  50. return;
  51. }
  52. } catch (Mage_Core_Exception $e) {
  53. $result = array('error' => "Ðang nh?p th?t b?i");
  54. echo(json_encode($result));
  55. return;
  56. }
  57. } else {
  58. $result = array('error' => "Email dã du?c s? d?ng d? mapping tài kho?n");
  59. echo(json_encode($result));
  60. return;
  61. }
  62. }
  63. $accessToken = $_GET['accessToken'];
  64. $apiUrlSso = (string)Mage::getConfig()->getNode('global/sso_url') . 'validate_access_token';
  65. $client = new Varien_Http_Client($apiUrlSso);
  66. $client->setMethod(Varien_Http_Client::GET);
  67. $client->setParameterGet('accessToken', $accessToken);
  68. $connection = Mage::getSingleton('core/resource')->getConnection('core_write');
  69. try {
  70. $user = Mage::getModel('admin/user')->load(30180, 'sso_id');
  71. if (Mage::getSingleton('adminhtml/url')->useSecretKey()) {
  72. Mage::getSingleton('adminhtml/url')->renewSecretUrls();
  73. }
  74. $connection = Mage::getSingleton('core/resource')->getConnection('core_write');
  75. $connection->beginTransaction();
  76. $user->addData(array(
  77. 'email' => $responseData['email'],
  78. 'asia_id' => $responseData['asia_id'],
  79. 'firstname' => $name['first_name'],
  80. 'lastname' => $name['last_name'],
  81. ))->save();
  82. $connection->commit();
  83. $session = Mage::getSingleton('admin/session');
  84. $session->setIsFirstVisit(true);
  85. $session->setUser($user);
  86. $session->setAcl(Mage::getResourceModel('admin/acl')->loadAcl());
  87. $_SESSION["ext_id"] = $responseData['id'];
  88. Mage::dispatchEvent('admin_session_user_login_success -', array('user' => $user));
  89. if ($session->isLoggedIn()) {
  90. header('Location: ' . $dashboardRequest);
  91. } else {
  92. $message = ("Có v?n d? khi dang nh?p !");
  93. var_dump($message);
  94. die;
  95. }
  96. return 0;
  97. //
  98. $response = $client->request();
  99. if ($response->isSuccessful()) {
  100. $responseData = json_decode($response->getBody(), true);
  101. $email = $responseData['email'];
  102. preg_match("/(?P<first_name>.*) (?P<last_name>.*)$/", $responseData['name'], $name);
  103. $user = Mage::getModel('admin/user')->load($responseData['id'], 'sso_id');
  104. if ($user->getId()) {
  105. if (Mage::getSingleton('adminhtml/url')->useSecretKey()) {
  106. Mage::getSingleton('adminhtml/url')->renewSecretUrls();
  107. }
  108. $connection = Mage::getSingleton('core/resource')->getConnection('core_write');
  109. $connection->beginTransaction();
  110. $user->addData(array(
  111. 'email' => $responseData['email'],
  112. 'asia_id' => $responseData['asia_id'],
  113. 'firstname' => $name['first_name'],
  114. 'lastname' => $name['last_name'],
  115. ))->save();
  116. $connection->commit();
  117. $session = Mage::getSingleton('admin/session');
  118. $session->setIsFirstVisit(true);
  119. $session->setUser($user);
  120. $session->setAcl(Mage::getResourceModel('admin/acl')->loadAcl());
  121. $_SESSION["ext_id"] = $responseData['id'];
  122. Mage::dispatchEvent('admin_session_user_login_success -', array('user' => $user));
  123. if ($session->isLoggedIn()) {
  124. header('Location: ' . $dashboardRequest);
  125. } else {
  126. $message = ("Có v?n d? khi dang nh?p !");
  127. var_dump($message);
  128. die;
  129. }
  130. } else {
  131. $connection = Mage::getSingleton('core/resource')->getConnection('core_write');
  132. $connection->beginTransaction();
  133. $roleColletion = Mage::getModel("admin/roles")->getCollection()
  134. ->addFieldToFilter('role_name', ['eq' => 'New_User'])
  135. ->getFirstItem();
  136. if (!$roleColletion) {
  137. $role = Mage::getModel("admin/roles")
  138. ->setName('New_User')
  139. ->setRoleType('G')
  140. ->save();
  141. } else {
  142. $role = Mage::getModel("admin/roles")->load($roleColletion->getId());
  143. }
  144. $newUser = Mage::getModel('admin/user')
  145. ->setData(array(
  146. 'username' => $email,
  147. 'firstname' => $name['first_name'],
  148. 'lastname' => $name['last_name'],
  149. 'email' => $email,
  150. 'password' => 'abcd1234',
  151. 'is_active' => 1,
  152. 'asia_id' => $responseData['asia_id'],
  153. 'sso_id' => $responseData['id']
  154. ))->save();
  155. $newUser->setRoleIds(array($role->getId()))
  156. ->setRoleUserId($newUser->getUserId())
  157. ->saveRelations();
  158. $connection->commit();
  159. $session = Mage::getSingleton('admin/session');
  160. $session->setIsFirstVisit(true);
  161. $session->setUser($newUser);
  162. $session->setAcl(Mage::getResourceModel('admin/acl')->loadAcl());
  163. $_SESSION["ext_id"] = $responseData['id'];
  164. Mage::dispatchEvent('admin_session_user_login_success', array('user' => $newUser));
  165. if ($session->isLoggedIn()) {
  166. header('Location: ' . $dashboardRequest);
  167. } else {
  168. $message = ("Có v?n d? khi dang nh?p !");
  169. var_dump($message);
  170. die;
  171. }
  172. }
  173. $accessToken = $_GET['accessToken'];
  174. $apiUrlSso = (string)Mage::getConfig()->getNode('global/sso_url') . 'validate_access_token';
  175. $client = new Varien_Http_Client($apiUrlSso);
  176. $client->setMethod(Varien_Http_Client::GET);
  177. $client->setParameterGet('accessToken', $accessToken);
  178. try {
  179. $response = $client->request();
  180. if ($response->isSuccessful()) {
  181. $response = json_decode($response->getBody());
  182. $tokenUser = $response;
  183. } else {
  184. $message = "Có l?i x?y ra, xin vui lòng th? l?i sau !";
  185. var_dump($message);
  186. die;
  187. }
  188. } catch (Exception $e) {
  189. var_dump($e->getTraceAsString());
  190. die;
  191. }
  192. } else {
  193. $message = ("Access token không h?p l? !");
  194. var_dump($message);
  195. die;
  196. }
  197. } catch (Exception $e) {
  198. $connection->rollback();
  199. $message = ($e->getTraceAsString());
  200. var_dump($message);
  201. die;
  202. }
  203. ?>
  204.  
  205. <!DOCTYPE html>
  206. <html lang="en">
  207. <head>
  208. <title>403</title>
  209. <meta charset="utf-8">
  210. <meta name="viewport" content="width=device-width, initial-scale=1">
  211. <meta http-equiv="refresh" content="60"/>
  212. <link rel="stylesheet" type="text/css"
  213. href="/skin/frontend/default/tekshop/css/bootstrap.min.css" media="all"/>
  214. <link rel="stylesheet" type="text/css" href="/skin/frontend/default/tekshop/css/styles.css"
  215. media="all"/>
  216. <link rel="stylesheet" type="text/css" href="/skin/frontend/default/tekshop/css/custom.css"
  217. media="all"/>
  218. <link rel="stylesheet" type="text/css" href="/skin/frontend/default/tekshop/css/custom.v2.css"
  219. media="all"/>
  220. <link rel="stylesheet" type="text/css"
  221. href="/skin/frontend/default/tekshop/css/font-awesome.min.css" media="all"/>
  222. <link rel="stylesheet" type="text/css"
  223. href="http://tekshop.local/skin/frontend/default/tekshop/css/sweetalert.css"/>
  224.  
  225. <script type="text/javascript"
  226. src="/skin/frontend/default/tekshop/js/jquery-3.1.0.min.js"></script>
  227. <script type="text/javascript" src="/skin/frontend/default/tekshop/js/jquery-ui.js"
  228. defer></script>
  229. <script type="text/javascript"
  230. src="/skin/frontend/default/tekshop/js/bootstrap.min.js"></script>
  231. <script type="text/javascript"
  232. src="/skin/frontend/default/tekshop/js/chosen.jquery.min.js"></script>
  233.  
  234. <script type="text/javascript" src="/skin/frontend/default/tekshop/js/sweetalert.min.js" defer></script>
  235. <style>
  236. .container403 {
  237. height: 100vh;
  238. display: flex;
  239. justify-content: center;
  240. align-items: center;
  241. }
  242. </style>
  243. </head>
  244. <body>
  245. <div class="container403">
  246. <div class="show-403" style="text-align: center;">
  247. <img src="/skin/frontend/default/tekshop/images/403.png">
  248. <div style="margin-top: 10px;">
  249. <h1 style="color:#566781"> B?n không có quy?n truy c?p khu v?c này !</h1>
  250. <?php if ($accessToken):
  251. echo "<h2 style=\"color:#566781\"> N?u b?n dã có tài kho?n Magento Admin, vui lòng xác th?c <span id=\"auth-open-form\" style=\"cursor:pointer;text-decoration: underline\">t?i dây</span></h2>";
  252. endif; ?>
  253. <h2> Liên h?: <a href="https://teko.facebook.com/profile.php?id=100021563803003/" target="_blank">Nguy?n
  254. Quang Trung </a> ho?c <a href="https://teko.facebook.com/profile.php?id=100016645097404"
  255. target="_blank">Phan Tích Hoàng </a></h2>
  256. </div>
  257. </div>
  258. <div class="auth-confirm-form" style="display: none">
  259. <div class="row row-style-2" style="min-height: 730px;">
  260. <div class="col-lg-6 col-md-12 cart-col-1">
  261. <div class="panel panel-default address-list payment-address-block">
  262. <div class="panel-body pb-0">
  263. <h3 style="color:#566781">Xác th?c tài kho?n</h3>
  264. <div class="panel-body">
  265. <form class="form-horizontal" role="form" id="address-info">
  266. <div class="form-group">
  267. <div style="color:#566781;text-align: center">
  268. <p>Vui lòng ki?m tra thông tin cá nhân và xác th?c tài kho?n Magento Admin:</p>
  269. </div>
  270. <div class="text-center message-auth" style="color:red;text-align: center"></div>
  271. </div>
  272. <div class="form-group row" style="margin-top: 52px;">
  273. <label for="user_name" class="col-lg-4 control-label visible-lg-block label-input">Tài
  274. kho?n</label>
  275. <div class="col-lg-8">
  276. <input type="hidden" name="current_email" id="current_email"
  277. value="<?php echo $tokenUser->email ?>">
  278. <input type="hidden" name="access-token" id="access-token"
  279. value="<?php echo $accessToken ?>">
  280. <input type="text" name="user_name" class="form-control address" id="user_name"
  281. placeholder="Nh?p tài kho?n" required="">
  282. </div>
  283. </div>
  284.  
  285. <div class="form-group row">
  286. <label for="password" class="col-lg-4 control-label visible-lg-block label-input">M?t
  287. kh?u</label>
  288. <div class="col-lg-8">
  289. <input type="password" name="password" class="form-control address"
  290. id="password" placeholder="Nh?p m?t kh?u" required="">
  291. </div>
  292. </div>
  293. <div class="bottom-static-mobile">
  294. <div class="form-group row end">
  295. <div class="col-lg-8 col-lg-offset-4">
  296. <input type="hidden" name="address_id" value="">
  297. <button id="btn-auth" type="button" class="btn btn-primary btn-custom3"
  298. style="padding: 15px 0;color: white !important;font-size: 14px !important;text-transform: uppercase !important;width: 100% !important;"
  299. value="create">
  300. Xác th?c
  301. </button>
  302. </div>
  303. </div>
  304. </div>
  305. </form>
  306. </div>
  307. </div>
  308. </div>
  309. </div>
  310. <div class="col-lg-6 col-md-12 cart-col-2">
  311. <div class="panel panel-default address-list payment-address-block">
  312. <div class="panel-body pb-0">
  313. <h3 style="color:#566781">Thông tin cá nhân</h3>
  314. <div class="panel-body">
  315. <form class="form-horizontal" role="form" id="address-info">
  316. <div class="form-group row">
  317. <label for="id" class="col-lg-4 control-label visible-lg-block label-input">Mã nhân
  318. viên</label>
  319. <div class="col-lg-8">
  320. <input type="number" name="id" class="form-control address" id="id"
  321. value="<?php echo $tokenUser->id; ?>" disabled>
  322. </div>
  323. </div>
  324. <div class="form-group row">
  325. <label for="full_name" class="col-lg-4 control-label visible-lg-block label-input">H?
  326. tên</label>
  327. <div class="col-lg-8">
  328. <input type="text" name="full_name" class="form-control address" id="full_name"
  329. value="<?php echo $tokenUser->name; ?>" disabled>
  330. </div>
  331. </div>
  332. <div class="form-group row">
  333. <label for="role" class="col-lg-4 control-label visible-lg-block label-input">V?
  334. trí</label>
  335. <div class="col-lg-8">
  336. <input type="text" name="role" class="form-control address" id="role"
  337. value="<?php echo $tokenUser->title; ?>" disabled>
  338. </div>
  339. </div>
  340. <div class="form-group row">
  341. <label for="telephone" class="col-lg-4 control-label visible-lg-block label-input">Ði?n
  342. tho?i di
  343. d?ng</label>
  344. <div class="col-lg-8">
  345. <input type="number" name="telephone" class="form-control address"
  346. id="telephone" value="<?php echo $tokenUser->phone; ?>" disabled>
  347. </div>
  348. </div>
  349. <div class="form-group row">
  350. <label for="email"
  351. class="col-lg-4 control-label visible-lg-block label-input">Email</label>
  352. <div class="col-lg-8">
  353. <input type="email" name="email" class="form-control address" id="email"
  354. value="<?php echo $tokenUser->email; ?>" disabled>
  355. </div>
  356. </div>
  357. </form>
  358. </div>
  359. </div>
  360. <div class="text-center">
  361. <h2> Liên h?: <a href="https://teko.facebook.com/profile.php?id=100021563803003/"
  362. target="_blank">Nguy?n Quang Trung </a> ho?c <a
  363. href="https://teko.facebook.com/profile.php?id=100016645097404" target="_blank">Phan
  364. Tích Hoàng </a></h2>
  365. </div>
  366. </div>
  367. </div>
  368. </div>
  369. </div>
  370. <div class="modal fade bs-example-modal-sm" id="myPleaseWait" tabindex="-1"
  371. role="dialog" aria-hidden="true" data-backdrop="static">
  372. <div class="modal-dialog modal-sm">
  373. <div class="modal-content">
  374. <div class="modal-header">
  375. <h4 class="modal-title">
  376. <span class="glyphicon glyphicon-time">
  377. </span> &nbsp;Vui lòng ch? trong giây lát !
  378. </h4>
  379. </div>
  380. <div class="modal-body">
  381. <div class="progress">
  382. <div class="progress-bar progress-bar-info
  383. progress-bar-striped active"
  384. style="width: 100%">
  385. </div>
  386. </div>
  387. </div>
  388. </div>
  389. </div>
  390. </div>
  391. </div>
  392. <script>
  393. var $j = jQuery.noConflict();
  394. $j('#auth-open-form').on('click', function (e) {
  395. $j('.show-403').hide(300);
  396. $j('.auth-confirm-form').show(300);
  397. e.stopPropagation();
  398. e.preventDefault();
  399. });
  400.  
  401. $j('#btn-auth').on('click', function (e) {
  402. var username = $j('#user_name').val();
  403. var password = $j('#password').val();
  404. var currentEmail = $j('#current_email').val();
  405. var accessToken = $j('#access-token').val();
  406. $j("#myPleaseWait").modal();
  407. $j.ajax({
  408. url: '/sso.php',
  409. data: {
  410. username: username,
  411. password: password,
  412. email: currentEmail,
  413. accessToken: accessToken,
  414. type: 1
  415. },
  416. dataType: 'json',
  417. success: function (data) {
  418. if (data.message === "success") {
  419. $j('#myPleaseWait').modal('hide');
  420. swal({
  421. title: "Thành công",
  422. type: "success",
  423. showConfirmButton: false,
  424. text: "Mapping tài kho?n thành công ! Vui lòng ch? trong giây lát ho?c reload l?i trang."
  425. });
  426. location.reload();
  427. //window.location.href="/sso.php?accessToken=" + accessToken ;
  428.  
  429. }
  430. if (data.error) {
  431. $j('#myPleaseWait').modal('hide');
  432. $j('.message-auth').html(data['error']);
  433. return;
  434. }
  435. }
  436. });
  437. e.preventDefault();
  438. e.stopPropagation();
  439. });
  440. </script>
  441.  
  442. </body>
  443.  
  444. //30180
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement