auth.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <?php
  2. class auth extends Controller {
  3. public function index() {
  4. //noope
  5. }
  6. public function register() {
  7. $model = $this->loadModel("auth_model");
  8. $token = $model->register($_REQUEST);
  9. $this->sendRegistrationMail($_REQUEST,$token);
  10. if ($token=='error') {
  11. echo 'error';
  12. }
  13. else {
  14. echo 'Sikeres regisztráció';
  15. }
  16. }
  17. public function authorize($token) {
  18. $model = $this->loadModel("auth_model");
  19. $perma_token = $model->validate($token);
  20. $model->autoLogin($perma_token);
  21. header('Location: /main/index/authed');
  22. die();
  23. }
  24. public function login() {
  25. $model = $this->loadModel("auth_model");
  26. if ($model->login($_REQUEST['username'],$_REQUEST['pass'])) {
  27. if ($_REQUEST['keepmeloggedin']=='y') {
  28. setcookie('rocktoken',$_SESSION['userid'],time()+(86400*365),"/");
  29. setcookie('rockname',$_SESSION['username'],time()+(86400*365),"/");
  30. }
  31. echo 'Sikeres bejelentkezés';
  32. }
  33. else {
  34. echo 'Sikertelen bejelentkezés';
  35. }
  36. }
  37. public function logout() {
  38. session_destroy();
  39. setcookie('rocktoken','',time()-3600,"/");
  40. setcookie('rockname','',time()-3600,"/");
  41. header('Location: /');
  42. die();
  43. }
  44. public function sendRegistrationMail($data,$token) {
  45. $mail_template = $this->loadView('mail_register');
  46. $mail = new PHPMailer;
  47. $mail->CharSet = 'UTF-8';
  48. $mail->From = 'no-reply@rockhome.hu';
  49. $mail->FromName = 'Rockhome.hu';
  50. $mail->addAddress($data['email']);
  51. $mail->isHTML(true);
  52. $mail->Subject = 'Regisztráció jóváhagyása';
  53. $mail_template->set('name',$data['fname'].' '.$data['lname']);
  54. $mail_template->set('username',$data['email']);
  55. $mail_template->set('token',$token);
  56. $mail->Body = $mail_template->getHTML();
  57. $mail->send();
  58. }
  59. public function sendReminderMail($data) {
  60. $mail_template = $this->loadView('mail_reminder');
  61. $mail = new PHPMailer;
  62. $mail->CharSet = 'UTF-8';
  63. $mail->From = 'no-reply@rockhome.hu';
  64. $mail->FromName = 'Rockhome.hu';
  65. $mail->addAddress($data->email);
  66. $mail->isHTML(true);
  67. $mail->Subject = 'Jelszó visszaállítás';
  68. $mail_template->set('name',$data->firstname.' '.$data->lastname);
  69. $mail_template->set('username',$data->email);
  70. $mail_template->set('token',$data->auto_login_token);
  71. $mail->Body = $mail_template->getHTML();
  72. $mail->send();
  73. }
  74. public function reminder($action='') {
  75. $model = $this->loadModel("auth_model");
  76. if ($action=='send') {
  77. if ($model->checkUserEmail($_REQUEST['email'])) {
  78. $userData = $model->getUserDataByEmail($_REQUEST['email']);
  79. $this->sendReminderMail($userData);
  80. die('ok');
  81. }
  82. else {
  83. die('error');
  84. }
  85. }
  86. else {
  87. die('error');
  88. }
  89. }
  90. public function renew($token='') {
  91. if ($token!=='') {
  92. $model = $this->loadModel("auth_model");
  93. $perma_token = $model->validateSoft($token);
  94. $model->autoLogin($perma_token);
  95. header('Location: /profile/settings/pass/');
  96. die();
  97. }
  98. else {
  99. return false;
  100. }
  101. }
  102. public function check($action='email') {
  103. $model = $this->loadModel("auth_model");
  104. if ($model->checkEmail($_REQUEST['address'])) {
  105. echo 'ok';
  106. }
  107. else {
  108. echo 'error';
  109. }
  110. }
  111. }