register.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. Bugs::actions(
  3. 'register'
  4. );
  5. Router::paths(array(
  6. '/register'=>function($res,$args){
  7. $res->write(
  8. Bugs::template('register')
  9. );
  10. },
  11. '/register/error'=>function($res,$args){
  12. $res->write(
  13. Bugs::template('register')
  14. ->run(array(
  15. 'error'=>'Invalid input'
  16. ))
  17. );
  18. },
  19. '/register/error/{error}'=>function($res,$args){
  20. $res->write(
  21. Bugs::template('register')
  22. ->run(array(
  23. 'error'=>$args->error
  24. ))
  25. );
  26. },
  27. '/register/complete'=>function($res,$args){
  28. if(empty($_POST['name']) || empty($_POST['email']) || empty($_POST['password'])){
  29. $res->header(
  30. 'Location',
  31. Router::url(Router::$base.'/register/error')
  32. );
  33. }else{
  34. if(!Bugs::user_id($_POST['name'])){
  35. $user = Bugs::user($_POST['name'],$_POST['email'],$_POST['password']);
  36. $res->write(
  37. Bugs::template('registered')
  38. ->run($user)
  39. );
  40. $user->email('Registered',"
  41. <a href=\"http://".URL_HOST.URL_BASE."/register/activate/{$user->name}/{$user->activation_code}\">Activate Account</a>
  42. ");
  43. Bugs::activity('register',$_POST['name'].' has registered.');
  44. }else{
  45. $res->header(
  46. 'Location',
  47. Router::url(Router::$base."/register/error/User {$_POST['name']} already exists")
  48. );
  49. }
  50. }
  51. },
  52. '/register/activate/{user}/{code}'=>function($res,$args){
  53. $user = Bugs::user($args->user);
  54. if($args->code == $user->activation_code){
  55. if(!$user->active){
  56. $user->active = true;
  57. $res->write(
  58. Bugs::template('activated')
  59. ->run($user)
  60. );
  61. }else{
  62. trigger_error("User is already active");
  63. }
  64. }else{
  65. trigger_error("Invalid activation code for user {$args->user}");
  66. }
  67. }
  68. ));
  69. ?>