user.php 59 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084
  1. <?php
  2. /****************************
  3. * File : user.php
  4. * Author : Cygnusa
  5. * @2018
  6. ****************************/
  7. //SECURITY
  8. if (!defined('APPLICATION_PATH')) {
  9. exit('No direct script access allowed');
  10. }
  11. //FUNCTION LISTS
  12. class user
  13. {
  14. private $user_fields;
  15. private $profile_path = "../../" . S3_PROFILE_IMAGE_URL;
  16. public function __construct($parent)
  17. {
  18. $this->user_fields = " `smpin`, `emp_code`, `fname`, `lname`, `emailid`, `mobileno`, `role`,`dealer_code`, `address_1`, `address_2`, `address_3`, `profile_photo`, `dob`,`doj`, `country`, `language`, `is_married`, `marriage_date`, `last_password_change`, `is_first_login`, `is_profile_updated`, `mpin`,`epin` , `created_on`, `modified_on`";
  19. //GET PAGE MESSAGE
  20. $this->page_data = globalfunc::getMessage($parent, $parent->lang, 'user');
  21. if (count($parent->params) == 0) {
  22. $parent->response(array('response' => 'failed', 'message' => 'PAGE NOT FOUND'), 404);
  23. } else {
  24. $qry_params = explode("?", $parent->params[0]);
  25. $parameter_val = strtolower($qry_params[0]);
  26. if (strtolower($parent->device_type) == 'app') {
  27. switch ($parameter_val) {
  28. case "signup":
  29. case "signup_otp":
  30. case "otp_validation":
  31. case "signin":
  32. case "forgot_password":
  33. case "change_password":
  34. //case "check_token":
  35. case "devicetoken":
  36. case "reset_password":
  37. case "profile":
  38. case "profileimage":
  39. case "resetuser":
  40. case "resetfirstlogin":
  41. case "getuserdetails":
  42. case "userpasswordrest123":
  43. case "mpin_otp":
  44. case "epin_otp":
  45. case 'acceptleadmodule':
  46. $this->$parameter_val($parent);
  47. break;
  48. default:
  49. $parent->response(array('response' => 'failed', 'message' => 'PAGE NOT FOUND'), 404);
  50. break;
  51. }
  52. } else if (strtolower($parent->device_type) == 'web') {
  53. switch ($parameter_val) {
  54. case "signup":
  55. case "signup_otp":
  56. case "otp_validation":
  57. case "signin":
  58. case "forgot_password":
  59. case "change_password":
  60. //case "check_token":
  61. case "devicetoken":
  62. case "reset_password":
  63. case "profile":
  64. case "profileimage":
  65. case "resetuser":
  66. case "resetfirstlogin":
  67. case "getuserdetails":
  68. case "userpasswordrest123":
  69. case "mpin_otp":
  70. case "epin_otp":
  71. case 'acceptleadmodule':
  72. $this->$parameter_val($parent);
  73. break;
  74. default:
  75. $parent->response(array('response' => 'failed', 'message' => 'PAGE NOT FOUND'), 404);
  76. break;
  77. }
  78. }
  79. }
  80. $parent->response(array('response' => 'failed', 'message' => 'PAGE NOT FOUND'), 404);
  81. }
  82. /* /////////////////////////////// USER SIGNUP //////////////////////////////////////////////// */
  83. private function signup($parent)
  84. {
  85. globalfunc::checkMethodType($parent, array('POST'));
  86. globalfunc::checkParamCount($parent, 1);
  87. $REQUEST_KEYS = array('username' => 'string');
  88. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  89. $username = escape_str($parent->_request['username']);
  90. //CHECK USER ALREADY REGISTER
  91. $query_getuserarr = $parent->selectQuery(TABLE_USER, "userid", " (emp_code='" . $username . "' OR smpin='" . $username . "' ) AND is_deleted=0 AND role>2", "1");
  92. if ($query_getuserarr['nr'] > 0) {
  93. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error8']), 406);
  94. }
  95. //CHECK IN EMPLOYEE TABLE
  96. $query_emparr = $parent->selectQuery(DMS_EMPLOYEE, "*", "smpin='" . $username . "' AND status='1' ", "1");
  97. if (!$query_emparr['nr'] > 0) {
  98. //CHECK IN HOUSER
  99. $query_houserarr = $parent->selectQuery(DMS_HOUSER, "*", "emp_code='" . $username . "' AND status='1'", "1");
  100. if (!$query_houserarr['nr'] > 0) {
  101. //NOT FOUND IN EMPLOYEE AND HO USER
  102. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error9']), 406);
  103. } else {
  104. //HO USER FOUND
  105. $parent->executeQuery("DELETE FROM " . TABLE_TEMP_REGISTRATION . " WHERE emp_code='" . $username . "'");
  106. $insert_temp_str = "INSERT INTO " . TABLE_TEMP_REGISTRATION . "(`smpin`, `emp_code`, `mobile`, `created_on`) VALUES ('','" . $username . "','" . $query_houserarr['result'][0]->mobile . "', '" . NOW . "')";
  107. $parent->executeQuery($insert_temp_str);
  108. $query_houserarr['result'][0]->username = strtolower($username);
  109. $parent->response(array('response' => 'success', 'data' => $query_houserarr['result'][0], 'message' => $this->page_data['success1']), 200);
  110. }
  111. } else {
  112. //EMPLOYEE FOUND
  113. //DELETE OLD TEMP REGISTER
  114. $parent->executeQuery("DELETE FROM " . TABLE_TEMP_REGISTRATION . " WHERE smpin='" . $username . "'");
  115. //INSERT IN TEMP REGISTRATION
  116. $insert_temp_str = "INSERT INTO " . TABLE_TEMP_REGISTRATION . "(`smpin`, `emp_code`, `mobile`,`created_on`) VALUES ('" . $username . "','','" . $query_emparr['result'][0]->mobile . "','" . NOW . "')";
  117. $parent->executeQuery($insert_temp_str);
  118. $query_emparr['result'][0]->username = strtolower($username);
  119. $parent->response(array('response' => 'success', 'data' => $query_emparr['result'][0], 'message' => $this->page_data['success1']), 200);
  120. }
  121. }
  122. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  123. /* /////////////////////////////// SEND OTP //////////////////////////////////////////////// */
  124. private function signup_otp($parent)
  125. {
  126. globalfunc::checkMethodType($parent, array('POST'));
  127. globalfunc::checkParamCount($parent, 1);
  128. $REQUEST_KEYS = array('username' => 'string');
  129. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  130. $username = escape_str($parent->_request['username']);
  131. $device_type = escape_str($parent->_request['device_type']);
  132. $hashkey = escape_str($parent->_request['hashkey']);
  133. $query_temp_user = $parent->selectQuery(TABLE_TEMP_REGISTRATION, "*", "smpin='" . $username . "' OR emp_code='" . $username . "'", "1");
  134. if ($query_temp_user['nr'] > 0) {
  135. $otp_expiry = globalfunc::generateExpiryTime($parent, OTP_EXPIRY_MIN);
  136. $otp = globalfunc::generateOTP();
  137. $update_temp_str = "UPDATE " . TABLE_TEMP_REGISTRATION . " SET `otp`='" . $otp . "', `otp_expiry`='" . $otp_expiry . "' WHERE tid='" . $query_temp_user['result'][0]->tid . "'";
  138. $parent->executeQuery($update_temp_str);
  139. //SEND SMS
  140. $parent->current_smpin = $query_temp_user['result'][0]->smpin;
  141. $parent->current_emp_code = $query_temp_user['result'][0]->emp_code;
  142. // if($device_type=='android')
  143. // {
  144. // $sms_message='<#>HYPER-M One Time Password (OTP) to register is '.$otp.'. Valid for 1 minute '.$hashkey;
  145. // }else
  146. // {
  147. // $sms_message='Dear User, Your One Time Password (OTP) to register with HYPER-M is '.$otp.' and is valid for 1 minute. Thank you, Team HYPER-M';
  148. // }
  149. //$sms_message='Dear User, Your One Time Password (OTP) to register with HYPER-M is '.$otp.' and is valid for 1 minute. Thank you, Team HYPER-M';
  150. $sms_message = "Your one time password is " . $otp;
  151. // globalfunc::sendSMS($parent, $query_temp_user['result'][0]->mobile, $sms_message);
  152. $parent->response(array('response' => 'success', 'data' => array('otp_expiry' => OTP_EXPIRY_MIN), 'message' => $this->page_data['success1']), 200);
  153. } else {
  154. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error9']), 406);
  155. }
  156. }
  157. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  158. /* /////////////////////////////// SEND OTP //////////////////////////////////////////////// */
  159. private function mpin_otp($parent)
  160. {
  161. globalfunc::checkMethodType($parent, array('GET', 'POST'));
  162. switch ($parent->get_request_method()) {
  163. case "GET":
  164. globalfunc::checkParamCount($parent, 1);
  165. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  166. $otp_expiry = globalfunc::generateExpiryTime($parent, OTP_EXPIRY_MIN);
  167. $otp = globalfunc::generateOTP();
  168. $update_user_str = "UPDATE " . TABLE_USER . " SET `otp`='" . $otp . "', `otp_expiry`='" . $otp_expiry . "' WHERE userid='" . $parent->current_user_id . "'";
  169. $parent->executeQuery($update_user_str);
  170. //$sms_message='Dear User, Your One Time Password (OTP) to change mpin with HYPER-M is '.$otp.' and is valid for 1 minute. Thank you, Team HYPER-M';
  171. $sms_message = "Your one time password is " . $otp;
  172. // globalfunc::sendSMS($parent, $parent->current_user_data->mobileno, $sms_message);
  173. $parent->response(array('response' => 'success', 'data' => array('otp_expiry' => OTP_EXPIRY_MIN), 'message' => $this->page_data['success1']), 200);
  174. break;
  175. case "POST":
  176. globalfunc::checkParamCount($parent, 1);
  177. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  178. $device_type = escape_str($parent->_request['device_type']);
  179. $hashkey = escape_str($parent->_request['hashkey']);
  180. $otp_expiry = globalfunc::generateExpiryTime($parent, OTP_EXPIRY_MIN);
  181. $otp = globalfunc::generateOTP();
  182. $update_user_str = "UPDATE " . TABLE_USER . " SET `otp`='" . $otp . "', `otp_expiry`='" . $otp_expiry . "' WHERE userid='" . $parent->current_user_id . "'";
  183. $parent->executeQuery($update_user_str);
  184. // if($device_type=='android')
  185. // {
  186. // $sms_message='<#>HYPER-M One Time Password (OTP) to change mpin is '.$otp.'. Valid for 1 minute '.$hashkey;
  187. // }else
  188. // {
  189. // $sms_message='Dear User, Your One Time Password (OTP) to change mpin with HYPER-M is '.$otp.' and is valid for 1 minute. Thank you, Team HYPER-M';
  190. // }
  191. //$sms_message='Dear User, Your One Time Password (OTP) to change mpin with HYPER-M is '.$otp.' and is valid for 1 minute. Thank you, Team HYPER-M';
  192. $sms_message = "Your one time password is " . $otp;
  193. // globalfunc::sendSMS($parent, $parent->current_user_data->mobileno, $sms_message);
  194. $parent->response(array('response' => 'success', 'data' => array('otp_expiry' => OTP_EXPIRY_MIN), 'message' => $this->page_data['success1']), 200);
  195. break;
  196. }
  197. }
  198. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  199. /* /////////////////////////////// SEND OTP //////////////////////////////////////////////// */
  200. private function epin_otp($parent)
  201. {
  202. globalfunc::checkMethodType($parent, array('GET', 'POST'));
  203. switch ($parent->get_request_method()) {
  204. case "GET":
  205. globalfunc::checkParamCount($parent, 1);
  206. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  207. $otp_expiry = globalfunc::generateExpiryTime($parent, OTP_EXPIRY_MIN);
  208. $otp = globalfunc::generateOTP();
  209. $update_user_str = "UPDATE " . TABLE_USER . " SET `otp`='" . $otp . "', `otp_expiry`='" . $otp_expiry . "' WHERE userid='" . $parent->current_user_id . "'";
  210. $parent->executeQuery($update_user_str);
  211. //$sms_message='Dear User, Your One Time Password (OTP) to change mpin with HYPER-M is '.$otp.' and is valid for 1 minute. Thank you, Team HYPER-M';
  212. $sms_message = "Your one time password is " . $otp;
  213. // globalfunc::sendSMS($parent, $parent->current_user_data->mobileno, $sms_message);
  214. $parent->response(array('response' => 'success', 'data' => array('otp_expiry' => OTP_EXPIRY_MIN), 'message' => $this->page_data['success1']), 200);
  215. break;
  216. case "POST":
  217. globalfunc::checkParamCount($parent, 1);
  218. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  219. $device_type = escape_str($parent->_request['device_type']);
  220. $hashkey = escape_str($parent->_request['hashkey']);
  221. $otp_expiry = globalfunc::generateExpiryTime($parent, OTP_EXPIRY_MIN);
  222. $otp = globalfunc::generateOTP();
  223. $update_user_str = "UPDATE " . TABLE_USER . " SET `otp`='" . $otp . "', `otp_expiry`='" . $otp_expiry . "' WHERE userid='" . $parent->current_user_id . "'";
  224. $parent->executeQuery($update_user_str);
  225. // if($device_type=='android')
  226. // {
  227. // $sms_message='<#>HYPER-M One Time Password (OTP) to change mpin is '.$otp.'. Valid for 1 minute '.$hashkey;
  228. // }else
  229. // {
  230. // $sms_message='Dear User, Your One Time Password (OTP) to change mpin with HYPER-M is '.$otp.' and is valid for 1 minute. Thank you, Team HYPER-M';
  231. // }
  232. //$sms_message='Dear User, Your One Time Password (OTP) to change mpin with HYPER-M is '.$otp.' and is valid for 1 minute. Thank you, Team HYPER-M';
  233. $sms_message = "Your one time password is " . $otp;
  234. // globalfunc::sendSMS($parent, $parent->current_user_data->mobileno, $sms_message);
  235. $parent->response(array('response' => 'success', 'data' => array('otp_expiry' => OTP_EXPIRY_MIN), 'message' => $this->page_data['success1']), 200);
  236. break;
  237. }
  238. }
  239. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  240. /* /////////////////////////////// USER OTP VALIDATION //////////////////////////////////////////////// */
  241. private function otp_validation($parent)
  242. {
  243. globalfunc::checkMethodType($parent, array('POST'));
  244. globalfunc::checkParamCount($parent, 1);
  245. $REQUEST_KEYS = array('otp' => 'string', 'type' => 'string');
  246. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  247. $otp = escape_str($parent->_request['otp']);
  248. $type = escape_str($parent->_request['type']);
  249. switch ($type) {
  250. case "register":
  251. $REQUEST_KEYS = array('username' => 'string');
  252. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  253. $username = escape_str($parent->_request['username']);
  254. //CHECK IN TEMP REGISTER
  255. $query_check_temparr = $parent->selectQuery(TABLE_TEMP_REGISTRATION, "*", " (smpin='" . $username . "' OR emp_code='" . $username . "')", "1");
  256. if (!$query_check_temparr['nr'] > 0) {
  257. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error9']), 406);
  258. }
  259. //CHECK OTP
  260. if ($query_check_temparr['result'][0]->otp != $otp) {
  261. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error11']), 406);
  262. }
  263. if (!(strtotime($query_check_temparr['result'][0]->otp_expiry) > strtotime(NOW))) {
  264. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error12']), 406);
  265. }
  266. //CHECK USER ALREADY REGISTER
  267. $query_checkuserarr = $parent->selectQuery(TABLE_USER, "userid", " (emp_code='" . $username . "' OR smpin='" . $username . "' ) AND is_deleted=0 AND role>2", "1");
  268. if ($query_checkuserarr['nr'] > 0) {
  269. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error8']), 406);
  270. }
  271. //GENERATE TOKEN
  272. $access_token = globalfunc::generateToken($parent, 'access', 128);
  273. $update_temp_str = "UPDATE " . TABLE_TEMP_REGISTRATION . " SET `auth_token`='" . $access_token . "' WHERE tid='" . $query_check_temparr['result'][0]->tid . "'";
  274. $parent->executeQuery($update_temp_str);
  275. $parent->response(array('response' => 'success', 'access_token' => $access_token, 'message' => $this->page_data['success1']), 200);
  276. break;
  277. case "forgot_password":
  278. $REQUEST_KEYS = array('username' => 'string', 'otp' => 'string');
  279. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  280. $username = escape_str($parent->_request['username']);
  281. $otp = escape_str($parent->_request['otp']);
  282. //CHECK USER EXIST
  283. $query_checkuserarr = $parent->selectQuery(TABLE_USER, "*", " (emp_code='" . $username . "' OR smpin='" . $username . "' ) AND is_deleted=0 AND role>2", "1");
  284. if (!$query_checkuserarr['nr'] > 0) {
  285. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error9']), 406);
  286. }
  287. //CHECK OTP AND EXIPRY
  288. if ($query_checkuserarr['result'][0]->otp != $otp) {
  289. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error11']), 406);
  290. }
  291. if (!(strtotime($query_checkuserarr['result'][0]->otp_expiry) > strtotime(NOW))) {
  292. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error12']), 406);
  293. }
  294. //GET USER DATA
  295. $current_user_data = $this->getuserdata($parent, $query_checkuserarr['result'][0]->userid);
  296. //GENERATE TOKEN
  297. $access_token = globalfunc::generateToken($parent, 'access', 128);
  298. $parent->executeQuery(" UPDATE " . TABLE_USER . " SET auth_token='" . $access_token . "',otp='',otp_expiry='0000-00-00 00:00:00' WHERE userid='" . $query_checkuserarr['result'][0]->userid . "'");
  299. //LOG
  300. $logstr = 'FORGOT PASSWORD UPDATE';
  301. $parent->current_user_id = $userid;
  302. globalfunc::insertUserLog($parent, $logstr);
  303. $parent->response(array('response' => 'success', 'access_token' => $access_token, 'data' => $current_user_data, 'message' => $this->page_data['success1']), 200);
  304. break;
  305. case "mpin":
  306. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  307. $REQUEST_KEYS = array('otp' => 'string');
  308. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  309. //CHECK USER EXIST
  310. $query_checkuserarr = $parent->selectQuery(TABLE_USER, "*", " userid='" . $parent->current_user_id . "' AND is_deleted=0 AND role>2", "1");
  311. if (!$query_checkuserarr['nr'] > 0) {
  312. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error9']), 406);
  313. }
  314. //CHECK OTP AND EXIPRY
  315. if ($query_checkuserarr['result'][0]->otp != $otp) {
  316. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error11']), 406);
  317. }
  318. if (!(strtotime($query_checkuserarr['result'][0]->otp_expiry) > strtotime(NOW))) {
  319. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error12']), 406);
  320. }
  321. $parent->executeQuery(" UPDATE " . TABLE_USER . " SET otp='',otp_expiry='0000-00-00 00:00:00' WHERE userid='" . $query_checkuserarr['result'][0]->userid . "'");
  322. //LOG
  323. $logstr = 'MPIN OTP';
  324. globalfunc::insertUserLog($parent, $logstr);
  325. //GET USER DATA
  326. $current_user_data = $this->getuserdata($parent, $parent->current_user_id);
  327. $parent->response(array('response' => 'success', 'data' => $current_user_data, 'message' => $this->page_data['success1']), 200);
  328. break;
  329. case "epin":
  330. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  331. $REQUEST_KEYS = array('otp' => 'string');
  332. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  333. //CHECK USER EXIST
  334. $query_checkuserarr = $parent->selectQuery(TABLE_USER, "*", " userid='" . $parent->current_user_id . "' AND is_deleted=0 AND role>2", "1");
  335. if (!$query_checkuserarr['nr'] > 0) {
  336. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error9']), 406);
  337. }
  338. //CHECK OTP AND EXIPRY
  339. if ($query_checkuserarr['result'][0]->otp != $otp) {
  340. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error11']), 406);
  341. }
  342. if (!(strtotime($query_checkuserarr['result'][0]->otp_expiry) > strtotime(NOW))) {
  343. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error12']), 406);
  344. }
  345. $parent->executeQuery(" UPDATE " . TABLE_USER . " SET otp='',otp_expiry='0000-00-00 00:00:00' WHERE userid='" . $query_checkuserarr['result'][0]->userid . "'");
  346. //LOG
  347. $logstr = 'EPIN OTP';
  348. globalfunc::insertUserLog($parent, $logstr);
  349. //GET USER DATA
  350. $current_user_data = $this->getuserdata($parent, $parent->current_user_id);
  351. $parent->response(array('response' => 'success', 'data' => $current_user_data, 'message' => $this->page_data['success1']), 200);
  352. break;
  353. default:
  354. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error10']), 406);
  355. break;
  356. }
  357. $parent->response(array('response' => 'success', 'message' => $this->page_data['success1']), 200);
  358. }
  359. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  360. /* /////////////////////////////// USER SIGN IN //////////////////////////////////////////////// */
  361. private function signin($parent)
  362. {
  363. globalfunc::checkMethodType($parent, array('POST'));
  364. globalfunc::checkParamCount($parent, 1);
  365. $REQUEST_KEYS = array('username' => 'string', 'password' => 'string');
  366. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  367. $username = escape_str($parent->_request['username']);
  368. $password = escape_str($parent->_request['password']);
  369. //CHECK USER EXIST
  370. $query_getuserarr = $parent->selectQuery(TABLE_USER, "userid,role,status", " ((smpin='" . $username . "' AND role in (8,9,10,11,12,13,15)) OR (emp_code='" . $username . "' AND ( role<8 OR role='14' OR role='16' OR role='17'))) AND is_deleted=0 AND role>2", "1");
  371. if (!$query_getuserarr['nr'] > 0) {
  372. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error3']), 406);
  373. }
  374. if ($query_getuserarr['nr'] > 0 && $query_getuserarr['result'][0]->status != '1') {
  375. $msg = ($query_getuserarr['result'][0]->role > 7 && $query_getuserarr['result'][0]->role < 14) ? 'error14' : 'error16';
  376. $parent->response(array('response' => 'failed', 'message' => $this->page_data[$msg]), 406);
  377. }
  378. $userid = $query_getuserarr['result'][0]->userid;
  379. if ($parent->device_type != 'app' && in_array($parent->current_user_role, array(16, 17))) {
  380. $parent->response(array('response' => 'failed', 'message' => "Sorry Invalid Device Access"), 406);
  381. }
  382. //INVALID PASSWORD
  383. $query_password_validation = $parent->selectQuery(TABLE_USER, 'userid,' . $this->user_fields, "userid='" . $userid . "' AND ( password = '" . md5($password) . "') AND status=1 AND is_deleted=0 AND role>2", "1");
  384. if (!$query_password_validation['nr'] > 0) {
  385. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error2']), 406);
  386. }
  387. //GENERATE TOKEN
  388. $access_token = globalfunc::generateToken($parent, 'access', 128);
  389. $parent->executeQuery(" UPDATE " . TABLE_USER . " SET auth_token='" . $access_token . "' WHERE userid='" . $userid . "'");
  390. //USER LOG UPDATE
  391. $parent->current_user_id = $query_password_validation['result'][0]->userid;
  392. $parent->current_user_data = $query_password_validation['result'][0];
  393. $parent->current_user_data->access_token = $access_token;
  394. //LOG
  395. $logstr = 'SIGNIN';
  396. globalfunc::insertUserLog($parent, $logstr);
  397. $current_user_data = $this->getuserdata($parent, $parent->current_user_id);
  398. //MIN REDEEM
  399. $data['setting'] = 'REDEEM';
  400. $data = globalfunc::getSiteSetting($parent, $data);
  401. $min_redeem_point = $data->REDEEM_MIN_VALUE;
  402. $current_user_data->min_redeem_point = $min_redeem_point;
  403. $parent->response(array('response' => 'success', 'access_token' => $access_token, 'data' => $current_user_data, 'message' => $this->page_data['success1']), 200);
  404. }
  405. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  406. /* /////////////////////////////// USER CHANGE PASSWORD//////////////////////////////////////// */
  407. private function change_password($parent)
  408. {
  409. globalfunc::checkMethodType($parent, array('POST'));
  410. globalfunc::checkParamCount($parent, 1);
  411. $REQUEST_KEYS = array('new_password' => 'string', 'type' => 'string');
  412. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  413. $new_password = $parent->_request['new_password'];
  414. $type = escape_str($parent->_request['type']);
  415. if ($type == 'reset') {
  416. $user_details = globalfunc::checkAuthrozation($parent, array('type' => 'set_password'));
  417. } else if ($type == 'old') {
  418. $user_details = globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  419. $REQUEST_KEYS = array('current_password' => 'string');
  420. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  421. $current_password = $parent->_request['current_password'];
  422. if ($new_password == $current_password) {
  423. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error15']), 401);
  424. }
  425. $query_getuserarr = $parent->selectQuery(TABLE_USER, "userid", " userid='" . $parent->current_user_id . "' AND password='" . md5($current_password) . "' AND status=1 AND is_deleted=0 AND role>2", "1");
  426. if (!$query_getuserarr['nr'] > 0) {
  427. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error7']), 406);
  428. }
  429. } else if ($type == 'register') {
  430. $access_token = globalfunc::getAuthrozation($parent);
  431. $query_check_temparr = $parent->selectQuery(TABLE_TEMP_REGISTRATION, "*", " auth_token='" . $access_token . "'", "1");
  432. if (!$query_check_temparr['nr'] > 0) {
  433. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error13']), 401);
  434. }
  435. $REQUEST_KEYS = array('username' => 'string');
  436. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  437. $username = escape_str($parent->_request['username']);
  438. //VALIDATE PASSWORD
  439. globalfunc::passwordPolicy($parent, array('password' => $new_password));
  440. $doj = '0000-00-00';
  441. //EMPLOYEE
  442. $query_emparr = $parent->selectQuery(DMS_EMPLOYEE, "*", "smpin='" . $username . "' AND status='1' ", "1");
  443. if ($query_emparr['nr'] > 0) {
  444. $smpin = $query_emparr['result'][0]->smpin;
  445. $emp_code = $query_emparr['result'][0]->emp_code;
  446. $fname = $query_emparr['result'][0]->fname;
  447. $lname = $query_emparr['result'][0]->lname;
  448. $emailid = $query_emparr['result'][0]->emailid;
  449. $mobileno = $query_emparr['result'][0]->mobile;
  450. //GET USER ROLE ID
  451. $role = projectfunc::getUserRoleId($parent, $query_emparr['result'][0]->role);
  452. $dealer_code = $query_emparr['result'][0]->dealer_code;
  453. $address_1 = $query_emparr['result'][0]->address_1;
  454. $address_2 = $query_emparr['result'][0]->address_2;
  455. $address_3 = $query_emparr['result'][0]->address_3;
  456. $doj = $query_emparr['result'][0]->date_of_join;
  457. $segment = $query_emparr['result'][0]->segment;
  458. //DELETE TEMP REGISTER
  459. $parent->executeQuery("DELETE FROM " . TABLE_TEMP_REGISTRATION . " WHERE smpin='" . $username . "'");
  460. } else {
  461. $query_houserarr = $parent->selectQuery(DMS_HOUSER, "*", "emp_code='" . $username . "' AND status='1'", "1");
  462. if ($query_houserarr['nr'] > 0) {
  463. $smpin = '';
  464. $emp_code = $query_houserarr['result'][0]->emp_code;
  465. $fname = $query_houserarr['result'][0]->fname;
  466. $lname = $query_houserarr['result'][0]->lname;
  467. $emailid = $query_houserarr['result'][0]->emailid;
  468. $mobileno = $query_houserarr['result'][0]->mobile;
  469. //GET USER ROLE ID
  470. $role = projectfunc::getUserRoleId($parent, $query_houserarr['result'][0]->role);
  471. $dealer_code = $query_houserarr['result'][0]->dealer_code;
  472. $address_1 = $query_houserarr['result'][0]->address_1;
  473. $address_2 = $query_houserarr['result'][0]->address_2;
  474. $address_3 = $query_houserarr['result'][0]->address_3;
  475. $segment = 0;
  476. //DELETE TEMP REGISTER
  477. $parent->executeQuery("DELETE FROM " . TABLE_TEMP_REGISTRATION . " WHERE emp_code='" . $username . "'");
  478. } else {
  479. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error8']), 406);
  480. }
  481. }
  482. $password = md5(globalfunc::generateToken($parent, '', 10));
  483. $country = '105';
  484. $language = 'en_us';
  485. //GENERATE TOKEN
  486. $access_token = globalfunc::generateToken($parent, 'access', 128);
  487. //INSERT IN USER
  488. $insert_user_str = "INSERT INTO " . TABLE_USER . "(`smpin`, `emp_code`, `password`, `fname`, `lname`, `emailid`, `mobileno`, `role`, `doj`, `segment`, `dealer_code`, `address_1`, `address_2`, `address_3`, `auth_token`,`country`, `language`, `status`,`is_first_login`, `is_deleted`, `created_on`, `modified_on`) VALUES ('" . $smpin . "','" . $emp_code . "','" . md5($new_password) . "','" . $fname . "','" . $lname . "','" . $emailid . "','" . $mobileno . "','" . $role . "','" . $doj . "','" . $segment . "','" . $dealer_code . "','" . $address_1 . "','" . $address_2 . "','" . $address_3 . "','" . $access_token . "','" . $country . "', 'en_us','1','0','0','" . NOW . "','" . NOW . "')";
  489. $parent->executeQuery($insert_user_str);
  490. $userid = $parent->lastInsertId();
  491. $query_userarr = $parent->selectQuery(TABLE_USER, "*", "userid='" . $userid . "'", "1");
  492. //INSERT LEARNING FOR DSE
  493. if ($query_emparr['nr'] > 0) {
  494. //CHECK LEARNING EXIST
  495. $query_learning = $parent->selectQuery(TABLE_USER_LEARNING, "*", "smpin='" . $smpin . "'", "1");
  496. if (!($query_learning['nr'] > 0)) {
  497. $insert_learn_str = "INSERT INTO " . TABLE_USER_LEARNING . "( `smpin`, `lvl_id`, `status`, `current_status`, `created_on`, `modified_on`) VALUES ('" . $smpin . "','1','0','1','" . NOW . "','" . NOW . "')";
  498. $parent->executeQuery($insert_learn_str);
  499. }
  500. //CREATE USER TABLES
  501. projectfunc::userTableCreate($parent, $smpin);
  502. //NEW CONDITION POINTS FOR FIRST 500 USER ONLY
  503. $query_countuserarr = $parent->selectQuery(TABLE_USER, "COUNT(userid) as ucount", "role in (8,9,10,11,12,13) ", "1");
  504. if ($query_countuserarr['nr'] && $role != 15) //NO POINTS FOR INTERNATIONAL
  505. {
  506. if ($query_countuserarr['result'][0]->ucount < REGISTER_REWARD_LIMIT) {
  507. //ADD REWARD POINTS
  508. $obj = new stdClass();
  509. $obj->type = "registration";
  510. $obj->type_id = "0";
  511. $obj->description = "Points for Login Registration";
  512. $obj->points = REWARD_POINT_ONE;
  513. projectfunc::userAddPoints($parent, $obj, $userid);
  514. } else {
  515. //ADD REWARD POINTS
  516. $obj = new stdClass();
  517. $obj->type = "registration";
  518. $obj->type_id = "0";
  519. $obj->description = "Points for Login Registration";
  520. $obj->points = REWARD_POINT_TWO;
  521. projectfunc::userAddPoints($parent, $obj, $userid);
  522. }
  523. }
  524. }
  525. //LOG
  526. $logstr = 'REGISTER';
  527. $parent->current_user_id = $userid;
  528. globalfunc::insertUserLog($parent, $logstr);
  529. $current_user_data = $this->getuserdata($parent, $parent->current_user_id);
  530. $parent->response(array('response' => 'success', 'access_token' => $access_token, 'data' => $current_user_data, 'message' => $this->page_data['success1']), 200);
  531. } else {
  532. $user_details = globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  533. }
  534. //VALIDATE PASSWORD
  535. globalfunc::passwordPolicy($parent, array('password' => $new_password));
  536. //UPDATE PASSWORD
  537. globalfunc::updatePassword($parent, array('password' => $new_password, 'current_password' => $current_password, 'userid' => $parent->current_user_id, 'type' => 'change'));
  538. if ($type == 'reset') {
  539. //LOG
  540. $logstr = 'RESET CHANGE PASSWORD';
  541. globalfunc::insertUserLog($parent, $logstr);
  542. //REST USER TOKEN
  543. $parent->executeQuery(" UPDATE " . TABLE_USER . " SET valid_token='', validate_time='0000-00-00 00:00:00' WHERE userid='" . $parent->current_user_id . "'");
  544. } else {
  545. //LOG
  546. $logstr = 'CHANGE PASSWORD';
  547. globalfunc::insertUserLog($parent, $logstr);
  548. }
  549. if ($parent->current_user_data->is_first_login == '1') {
  550. //FIRST TIME CHANGE PASSWORD
  551. $parent->executeQuery("UPDATE " . TABLE_USER . " SET is_first_login='0' WHERE userid='" . $parent->current_user_id . "'");
  552. }
  553. $parent->response(array('response' => 'success', 'message' => $this->page_data['success2']), 200);
  554. }
  555. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  556. /* /////////////////////////////// DEVICETOKEN ////////////////////////////////////////// */
  557. private function devicetoken($parent)
  558. {
  559. globalfunc::checkMethodType($parent, array('POST'));
  560. globalfunc::checkParamCount($parent, 1);
  561. globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  562. $REQUEST_KEYS = array('token' => 'string', 'devicetype' => 'string');
  563. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  564. $token = escape_str($parent->_request['token']);
  565. $deviceid = escape_str($parent->_request['deviceid']);
  566. $devicetype = strtolower(escape_str($parent->_request['devicetype']));
  567. $model = escape_str($parent->_request['model']);
  568. $manufacture = escape_str($parent->_request['manufacture']);
  569. $version = escape_str($parent->_request['version']);
  570. $client_ip = globalfunc::getIp($parent, $data = array());
  571. $user_device = $parent->selectQuery(TABLE_USER_DEVICES, "*", "userid='" . $parent->current_user_id . "' AND is_deleted='0'", "1");
  572. if ($user_device['nr']) {
  573. //REMOVE DEVICE OF PREV USER
  574. $update_prev_str = "UPDATE " . TABLE_USER_DEVICES . " SET is_deleted='1' WHERE token='" . $token . "' AND id!='" . $user_device['result'][0]->id . "'";
  575. $parent->executeQuery($update_prev_str);
  576. $update_token_str = "UPDATE " . TABLE_USER_DEVICES . " SET `devicetype`='" . $devicetype . "',`token`='" . $token . "',`android_id`='" . $deviceid . "',`model`='" . $model . "',`manufacture`='" . $manufacture . "',`version`='" . $version . "',`client_ip`='" . $client_ip . "',`modified_on`='" . NOW . "',is_deleted='0' WHERE id='" . $user_device['result'][0]->id . "'";
  577. $user_device_res = $parent->executeQuery($update_token_str);
  578. } else {
  579. $insert_token_str = "INSERT INTO " . TABLE_USER_DEVICES . "(`userid`, `devicetype`, `token`, `android_id`, `model`, `manufacture`, `version`, `client_ip`, `created_on`, `modified_on`) VALUES ('" . $parent->current_user_id . "','" . $devicetype . "','" . $token . "','" . $deviceid . "','" . $model . "','" . $manufacture . "','" . $version . "','" . $client_ip . "','" . NOW . "','" . NOW . "')";
  580. $user_device_res = $parent->executeQuery($insert_token_str);
  581. }
  582. //LOG
  583. $logstr = 'DEVICE TOKEN';
  584. globalfunc::insertUserLog($parent, $logstr);
  585. $parent->response(array('response' => 'success', 'message' => $this->page_data['success1']), 200);
  586. }
  587. /* ////////////////////////////////////////////////////////////////////////////////////////////////////// */
  588. /* /////////////////////////////// USER FORGOT PASSWORD////////////////////////////////////////////// */
  589. private function forgot_password($parent)
  590. {
  591. globalfunc::checkMethodType($parent, array('POST'));
  592. globalfunc::checkParamCount($parent, 1);
  593. $REQUEST_KEYS = array('username' => 'string');
  594. globalfunc::checkAnyKey($parent, $REQUEST_KEYS);
  595. $username = escape_str($parent->_request['username']);
  596. $device_type = escape_str($parent->_request['device_type']);
  597. $hashkey = escape_str($parent->_request['hashkey']);
  598. $query_getuserarr = $parent->selectQuery(TABLE_USER, "*", " (smpin='" . $username . "' OR emp_code='" . $username . "') AND is_deleted=0 ", "1");
  599. if ($query_getuserarr['nr'] <= 0) {
  600. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error3']), 406);
  601. }
  602. if ($query_getuserarr['result'][0]->status != 1) {
  603. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error14']), 406);
  604. }
  605. $userid = $query_getuserarr['result'][0]->userid;
  606. //SEND SMS
  607. $parent->current_user_id = $query_getuserarr['result'][0]->userid;
  608. $parent->current_smpin = $query_getuserarr['result'][0]->smpin;
  609. $parent->current_emp_code = $query_getuserarr['result'][0]->emp_code;
  610. //OTP UPDATE
  611. $otp_expiry = globalfunc::generateExpiryTime($parent, OTP_EXPIRY_MIN);
  612. $otp = globalfunc::generateOTP();
  613. $update_update_str = "UPDATE " . TABLE_USER . " SET `otp`='" . $otp . "', `otp_expiry`='" . $otp_expiry . "' WHERE userid='" . $userid . "'";
  614. $parent->executeQuery($update_update_str);
  615. // if($device_type=='android')
  616. // {
  617. // $sms_message='<#>HYPER-M One Time Password (OTP) to reset password is '.$otp.'. Valid for 1 minute '.$hashkey;
  618. // }else{
  619. // $sms_message='Dear User, Your One Time Password (OTP) to reset password with HYPER-M is '.$otp.' and is valid for 1 minute. Thank you, Team HYPER-M';
  620. // }
  621. //$sms_message='Dear User, Your One Time Password (OTP) to reset password with HYPER-M is '.$otp.' and is valid for 1 minute. Thank you, Team HYPER-M';
  622. $sms_message = "Your one time password is " . $otp;
  623. // globalfunc::sendSMS($parent, $query_getuserarr['result'][0]->mobileno, $sms_message);
  624. //LOG
  625. $logstr = 'FORGOT PASSWORD OTP';
  626. globalfunc::insertUserLog($parent, $logstr);
  627. $parent->response(array('response' => 'success', 'data' => $query_getuserarr['result'][0]->mobileno, 'otp_expiry' => OTP_EXPIRY_MIN, 'message' => $this->page_data['success1']), 200);
  628. }
  629. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  630. /* /////////////////////////////// USER PROFILE //////////////////////////////////////////////// */
  631. private function profile($parent)
  632. {
  633. globalfunc::checkMethodType($parent, array('GET', 'POST'));
  634. switch ($parent->get_request_method()) {
  635. case "GET":
  636. globalfunc::checkParamCount($parent, 1);
  637. $user_details = globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  638. //LOG
  639. $logstr = 'PROFILE';
  640. globalfunc::insertUserLog($parent, $logstr);
  641. $current_user_data = $this->getuserdata($parent, $parent->current_user_id);
  642. //MIN REDEEM
  643. $data['setting'] = 'REDEEM';
  644. $data = globalfunc::getSiteSetting($parent, $data);
  645. $min_redeem_point = $data->REDEEM_MIN_VALUE;
  646. $current_user_data->min_redeem_point = $min_redeem_point;
  647. $parent->response(array('response' => 'success', 'data' => $current_user_data, 'message' => $this->page_data['success1']), 200);
  648. break;
  649. case "POST":
  650. globalfunc::checkParamCount($parent, 1);
  651. $user_details = globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  652. $REQUEST_KEYS = array('dob' => 'date|Y-m-d', 'email' => 'string');
  653. globalfunc::mandatoryKey($parent, $REQUEST_KEYS);
  654. //$fname=escape_str($parent->_request['fname']);
  655. //$lname=escape_str($parent->_request['lname']);
  656. //$mobileno=escape_str($parent->_request['mobileno']);
  657. $dob = escape_str($parent->_request['dob']);
  658. // $doj=escape_str($parent->_request['doj']);
  659. // if(isset($parent->_request['doj']) && $parent->_request['doj']!='' && $parent->_request['doj']!='0000-00-00' )
  660. // {
  661. // $REQUEST_KEYS=array('doj'=>'date|Y-m-d');
  662. // globalfunc::mandatoryKey($parent,$REQUEST_KEYS);
  663. // }
  664. $email = escape_str($parent->_request['email']);
  665. $is_married = (escape_str($parent->_request['is_married']) == '1') ? '1' : '0';
  666. $marriage_date = ($is_married == '1' && escape_str($parent->_request['marriage_date'])) ? escape_str($parent->_request['marriage_date']) : '0000-00-00';
  667. //CHECK FILE
  668. if (isset($_FILES['file']) && $_FILES['file']['name']) {
  669. //CONNECT S3
  670. $s3 = awsfileserver::connectS3();
  671. //IMAGE UPLOAD
  672. $obj = new stdClass();
  673. $obj->filekey = 'file';
  674. $obj->size = '10'; //IN MB
  675. $obj->type = array('jpg', 'jpeg', 'png');
  676. globalfunc::validateFile($parent, $obj);
  677. $obj->path = $this->profile_path;
  678. $obj->filename = 'profile_' . $parent->current_user_id . '_' . date('Ymd') . uniqid();
  679. if (isset($parent->_request['width'])) {
  680. $obj->width = $parent->_request['width'];
  681. }
  682. if (isset($parent->_request['height'])) {
  683. $obj->height = $parent->_request['height'];
  684. }
  685. $obj->cord = (isset($parent->_request['cord'])) ? $parent->_request['cord'] : null;
  686. $fileName = globalfunc::uploadFile($parent, $obj);
  687. awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_PROFILE_IMAGE_URL . $fileName, dirname(__FILE__) . "/../../../" . S3_PROFILE_IMAGE_URL . $fileName);
  688. //UNLINK
  689. @unlink(dirname(__FILE__) . '/../' . $this->profile_path . $fileName);
  690. $econd = " ,profile_photo='" . $fileName . "'";
  691. }
  692. //$parent->executeQuery(" UPDATE ".TABLE_USER." SET fname='".$fname."',lname='".$lname."',mobileno='".$mobileno."',modified_on='".NOW."' ".$econd." WHERE userid='".$parent->current_user_id."'");
  693. $emailcond = '';
  694. if ($parent->current_user_role > 7) {
  695. $emailcond = " ,emailid='" . $email . "'";
  696. }
  697. $parent->executeQuery(" UPDATE " . TABLE_USER . " SET dob='" . $dob . "',is_married='" . $is_married . "', marriage_date='" . $marriage_date . "',is_profile_updated='1' " . $econd . $emailcond . " WHERE userid='" . $parent->current_user_id . "'");
  698. //LOG
  699. $logstr = 'PROFILE UPDATE';
  700. globalfunc::insertUserLog($parent, $logstr);
  701. $current_user_data = $this->getuserdata($parent, $parent->current_user_id);
  702. $parent->response(array('response' => 'success', 'data' => $current_user_data, 'message' => $this->page_data['success1']), 200);
  703. break;
  704. }
  705. }
  706. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  707. /* /////////////////////////////// USER PROFILE IMAGE //////////////////////////////////////////////// */
  708. private function profileimage($parent)
  709. {
  710. globalfunc::checkMethodType($parent, array('POST'));
  711. globalfunc::checkParamCount($parent, 1);
  712. $user_details = globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  713. //CHECK FILE
  714. if (!isset($_FILES['file'])) {
  715. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error5']), 406);
  716. }
  717. //CONNECT S3
  718. $s3 = awsfileserver::connectS3();
  719. //IMAGE UPLOAD
  720. $obj = new stdClass();
  721. $obj->filekey = 'file';
  722. $obj->size = '10'; //IN MB
  723. $obj->type = array('jpg', 'jpeg', 'png');
  724. globalfunc::validateFile($parent, $obj);
  725. $obj->path = $this->profile_path;
  726. $obj->filename = 'profile_' . $parent->current_user_id . '_' . date('Ymd') . "_" . uniqid();
  727. if (isset($parent->_request['width'])) {
  728. $obj->width = $parent->_request['width'];
  729. }
  730. if (isset($parent->_request['height'])) {
  731. $obj->height = $parent->_request['height'];
  732. }
  733. $obj->cord = (isset($parent->_request['cord'])) ? $parent->_request['cord'] : null;
  734. $fileName = globalfunc::uploadFile($parent, $obj);
  735. awsfileserver::checkupload($parent, $s3, S3_BUCKET, S3_PROFILE_IMAGE_URL . $fileName, dirname(__FILE__) . "/../../../" . S3_PROFILE_IMAGE_URL . $fileName);
  736. //UNLINK
  737. @unlink(dirname(__FILE__) . '/../' . $this->profile_path . $fileName);
  738. $parent->executeQuery(" UPDATE " . TABLE_USER . " SET profile_photo='" . $fileName . "',modified_on='" . NOW . "' WHERE userid='" . $parent->current_user_id . "'");
  739. $current_user_data = $this->getuserdata($parent, $parent->current_user_id);
  740. //LOG
  741. $logstr = 'PROFILE IMAGE UPDATE';
  742. globalfunc::insertUserLog($parent, $logstr);
  743. $parent->response(array('response' => 'success', 'data' => $current_user_data, 'message' => $this->page_data['success1']), 200);
  744. }
  745. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  746. /* /////////////////////////////// USER DATA //////////////////////////////////////////////// */
  747. private function getuserdata($parent, $userid)
  748. {
  749. if (!isset($userid)) {
  750. globalfunc::callErrorMsg($parent, array('message' => 'user(getuserdata):REQUIRED userid'));
  751. }
  752. $query_getuserarr = $parent->selectQuery(TABLE_USER, " `smpin`, `emp_code`, `fname`, `lname`, `emailid`, `mobileno`, `role`, `dealer_code`, `address_1`, `address_2`, `address_3`, `profile_photo`, `dob`,`doj`, `country`, `language`, `is_married`, `marriage_date`, `mpin`,epin, `last_password_change`, `is_first_login`,`is_profile_updated` , `created_on`, `modified_on`", "userid='" . $userid . "' AND is_deleted='0' ", "1");
  753. if ($query_getuserarr['nr'] <= 0) {
  754. $parent->response(array('response' => 'failed', 'message' => $this->page_data['error6']), 406);
  755. }
  756. $query_getuserarr['result'][0]->username = ($query_getuserarr['result'][0]->role < 8 || in_array($query_getuserarr['result'][0]->role, array("14", "16", "17"))) ? $query_getuserarr['result'][0]->emp_code : $query_getuserarr['result'][0]->smpin;
  757. $query_getuserarr['result'][0]->dob_time = ($query_getuserarr['result'][0]->dob == '0000-00-00') ? "0000-00-00 00:00:00" : $query_getuserarr['result'][0]->dob . " 00:00:00";
  758. $query_getuserarr['result'][0]->doj_time = ($query_getuserarr['result'][0]->doj == '0000-00-00') ? "0000-00-00 00:00:00" : $query_getuserarr['result'][0]->doj . " 00:00:00";
  759. $query_getuserarr['result'][0]->marriage_date_time = ($query_getuserarr['result'][0]->marriage_date == '0000-00-00') ? "0000-00-00 00:00:00" : $query_getuserarr['result'][0]->marriage_date . " 00:00:00";
  760. $query_getuserarr['result'][0]->doj = ($query_getuserarr['result'][0]->doj == '0000-00-00') ? '0000-00-00' : $query_getuserarr['result'][0]->doj;
  761. if ($query_getuserarr['result'][0]->profile_photo != '') {
  762. //CONNECT S3
  763. $s3 = awsfileserver::connectS3();
  764. $query_getuserarr['result'][0]->profile_photo = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_PROFILE_IMAGE_URL . $query_getuserarr['result'][0]->profile_photo);
  765. } else {
  766. $query_getuserarr['result'][0]->profile_photo = USER_NOIMAGE_URL;
  767. }
  768. //GET ROLE
  769. $query_rolearr = $parent->selectQuery(TABLE_ROLE, "*", "id='" . $query_getuserarr['result'][0]->role . "' ", "1");
  770. $query_getuserarr['result'][0]->rolename = ($query_rolearr['nr'] > 0) ? $query_rolearr['result'][0]->rolename : '';
  771. //GET DELAER
  772. $query_getuserarr['result'][0]->dealer = array();
  773. $query_getdealerarr = $parent->selectQuery(DMS_DEALER, "`dealer_code`, `dealer_name`,address,email, `city`, `state`, `zone`, `country`, `phone`, `zm_name`, `rm_name`, `am_name`, `zm_email`, `rm_email`, `am_email`, `zm_mobile`, `rm_mobile`, `am_mobile`,is_enquirymodule", "dealer_code='" . $query_getuserarr['result'][0]->dealer_code . "' ", "1");
  774. //ENQUIRY
  775. $query_getuserarr['result'][0]->is_enquirymodule = ($query_getdealerarr['nr'] > 0) ? $query_getdealerarr['result'][0]->is_enquirymodule : 0;
  776. $query_getuserarr['result'][0]->country = 'India';
  777. if ($query_getuserarr['result'][0]->role == '5') {
  778. $query_dataarr = $parent->selectQuery(DMS_HOUSER, "*", "emp_code='" . $query_getuserarr['result'][0]->emp_code . "' ", "1");
  779. $query_getuserarr['result'][0]->zone = ($query_dataarr['nr'] > 0) ? $query_dataarr['result'][0]->zone : '';
  780. } else {
  781. $query_getuserarr['result'][0]->zone = ($query_getdealerarr['nr'] > 0) ? $query_getdealerarr['result'][0]->zone : '';
  782. }
  783. $query_getuserarr['result'][0]->state = ($query_getdealerarr['nr'] > 0) ? $query_getdealerarr['result'][0]->state : '';
  784. $query_getuserarr['result'][0]->city = ($query_getdealerarr['nr'] > 0) ? $query_getdealerarr['result'][0]->city : '';
  785. $query_getuserarr['result'][0]->dealer = ($query_getdealerarr['nr'] > 0) ? $query_getdealerarr['result'][0] : new stdClass();
  786. $query_getuserarr['result'][0]->is_password_expired = projectfunc::checkUserPasswordExpiry($parent, $userid);
  787. if ($query_getuserarr['result'][0]->role > 7 && $query_getuserarr['result'][0]->role < 14) {
  788. $query_getuserarr['result'][0]->is_redeem_point = (projectfunc::checkValidReedem($parent, $userid)) ? "1" : "0";
  789. $query_getuserarr['result'][0]->wallet_amount = projectfunc::userWalletamount($parent, $query_getuserarr['result'][0]->smpin);
  790. $query_getuserarr['result'][0]->unapproved_amount = projectfunc::userUnapprovedamount($parent, $query_getuserarr['result'][0]->smpin);
  791. } else {
  792. $query_getuserarr['result'][0]->is_redeem_point = '0';
  793. $query_getuserarr['result'][0]->wallet_amount = '0';
  794. $query_getuserarr['result'][0]->unapproved_amount = '0';
  795. }
  796. return $query_getuserarr['result'][0];
  797. }
  798. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  799. /* /////////////////////////////// ACCEPT LEAD LOGIN //////////////////////////////////////////////// */
  800. private function acceptleadmodule($parent)
  801. {
  802. globalfunc::checkParamCount($parent, 1);
  803. globalfunc::checkMethodType($parent, array('GET'));
  804. $user_details = globalfunc::checkAuthrozation($parent, array('type' => 'user'));
  805. projectfunc::authorizedRole($parent, array('14'));
  806. $dealer_code = $parent->current_user_data->dealer_code;
  807. $parent->executeQuery("UPDATE " . DMS_DEALER . " SET is_enquirymodule='1' WHERE dealer_code='" . $dealer_code . "'");
  808. $parent->executeQuery("UPDATE " . TABLE_USER . " SET epin='' WHERE role=14 AND dealer_code='" . $dealer_code . "'");
  809. //LOG
  810. $logstr = 'ACCEPT LEAD MODULE';
  811. globalfunc::insertUserLog($parent, $logstr);
  812. $parent->response(array('response' => 'success', 'message' => "SUCCESS"), 200);
  813. }
  814. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  815. /* /////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/
  816. /* */
  817. /* */
  818. /* */
  819. /* FOR DEVELOPMENT TESTING ONLY */
  820. /* */
  821. /* */
  822. /* */
  823. /* /////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/
  824. /* /////////////////////////////// RESET FIRST LOGIN //////////////////////////////////////////////// */
  825. private function resetuser($parent)
  826. {
  827. globalfunc::checkParamCount($parent, 2);
  828. if (IS_LIVE_SERVER) {
  829. $parent->response(array('response' => 'failed', 'message' => 'PAGE NOT FOUND'), 404);
  830. }
  831. exit;
  832. $smpin = escape_str($parent->params[1]);
  833. if ($smpin) {
  834. $parent->executeQuery(" DELETE FROM " . TABLE_USER . " WHERE smpin='" . $smpin . "' OR emp_code='" . $smpin . "'");
  835. }
  836. $parent->response(array('response' => 'success', 'message' => "SUCCESS"), 200);
  837. }
  838. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  839. /* /////////////////////////////// RESET FIRST LOGIN //////////////////////////////////////////////// */
  840. private function resetfirstlogin($parent)
  841. {
  842. globalfunc::checkParamCount($parent, 2);
  843. if (IS_LIVE_SERVER) {
  844. $parent->response(array('response' => 'failed', 'message' => 'PAGE NOT FOUND'), 404);
  845. }
  846. exit;
  847. $userid = escape_str($parent->params[1]);
  848. $parent->executeQuery(" UPDATE " . TABLE_USER . " SET is_first_login='1' WHERE userid='" . $userid . "'");
  849. $parent->response(array('response' => 'success', 'message' => "SUCCESS"), 200);
  850. }
  851. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  852. /* /////////////////////////////// RESET FIRST LOGIN //////////////////////////////////////////////// */
  853. private function getuserdetails($parent)
  854. {
  855. globalfunc::checkParamCount($parent, 2);
  856. if (IS_LIVE_SERVER) {
  857. $parent->response(array('response' => 'failed', 'message' => 'PAGE NOT FOUND'), 404);
  858. }
  859. exit;
  860. $userid = escape_str($parent->params[1]);
  861. $query_getuserarr = $parent->selectQuery(TABLE_USER, "*", "smpin='" . $userid . "' OR emp_code='" . $userid . "'", "1");
  862. $data = ($query_getuserarr['nr'] > 0) ? $query_getuserarr['result'][0] : null;
  863. $parent->response(array('response' => 'success', 'data' => $data, 'message' => "SUCCESS"), 200);
  864. }
  865. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  866. /* /////////////////////////////// RESET FIRST LOGIN //////////////////////////////////////////////// */
  867. private function userpasswordrest123($parent)
  868. {
  869. globalfunc::checkParamCount($parent, 2);
  870. if (IS_LIVE_SERVER) {
  871. $parent->response(array('response' => 'failed', 'message' => 'PAGE NOT FOUND'), 404);
  872. }
  873. exit;
  874. $userid = escape_str($parent->params[1]);
  875. $parent->executeQuery(" UPDATE " . TABLE_USER . " SET password='" . md5('123') . "' WHERE userid='" . $userid . "'");
  876. $parent->response(array('response' => 'success', 'message' => "SUCCESS"), 200);
  877. }
  878. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  879. }