PageRenderTime 71ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 1ms

/3.0/modules/register/helpers/register.php

http://github.com/gallery/gallery3-contrib
PHP | 138 lines | 99 code | 14 blank | 25 comment | 11 complexity | 6db69eebc019569d4e2d3e746e52b90f MD5 | raw file
Possible License(s): GPL-3.0, GPL-2.0, LGPL-2.1
  1. <?php defined("SYSPATH") or die("No direct script access.");
  2. /**
  3. * Gallery - a web based photo album viewer and editor
  4. * Copyright (C) 2000-2013 Bharat Mediratta
  5. *
  6. * This program is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation; either version 2 of the License, or (at
  9. * your option) any later version.
  10. *
  11. * This program is distributed in the hope that it will be useful, but
  12. * WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. * General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with this program; if not, write to the Free Software
  18. * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
  19. */
  20. class register_Core {
  21. private static $_states;
  22. static function format_registration_state($state) {
  23. if (empty(self::$_states)) {
  24. $policy = module::get_var("registration", "policy");
  25. $email_verification = module::get_var("registration", "email_verification");
  26. $pending = $policy == "admin_only" || ($policy == "admin_approval" && !$email_verification);
  27. self::$_states = array(t("Unconfirmed"),
  28. $pending ? t("Pending") : t("Confirmed"),
  29. t("Activated"));
  30. }
  31. return self::$_states[$state];
  32. }
  33. static function check_user_name($user_name) {
  34. if (identity::lookup_user_by_name($user_name)) {
  35. return true;
  36. }
  37. $user = ORM::factory("pending_user")
  38. ->where("name", "=", $user_name)
  39. ->find();
  40. return $user->loaded();
  41. }
  42. static function send_user_created_confirmation($user, $requires_first=false) {
  43. $message = new View("register_welcome.html");
  44. $message->user = $user;
  45. $message->site_url = $requires_first ? url::abs_site("register/first/{$user->hash}") :
  46. url::abs_site("");
  47. // added Shad Laws, v2
  48. $message->subject_prefix = module::get_var("registration", "subject_prefix");
  49. $message->locale = $user->locale; // as stored in pending_users table
  50. $message->subject = t("Welcome", array("locale" => $message->locale));
  51. // modified Shad Laws, v2
  52. self::_sendemail($user->email, $message->subject_prefix.$message->subject, $message);
  53. }
  54. static function send_confirmation($user) {
  55. $message = new View("confirm_registration.html");
  56. $message->confirm_url = url::abs_site("register/confirm/{$user->hash}");
  57. $message->user = $user;
  58. // added Shad Laws, v2
  59. $message->subject_prefix = module::get_var("registration", "subject_prefix");
  60. $message->locale = $user->locale; // as stored in pending_users table
  61. $message->subject = t("User registration confirmation", array("locale" => $message->locale));
  62. // modified Shad Laws, v2
  63. self::_sendemail($user->email, $message->subject_prefix.$message->subject, $message);
  64. }
  65. // function added Shad Laws, v2
  66. static function send_admin_notify($user) {
  67. $message = new View("register_admin_notify.html");
  68. $message->admin_register_url = url::abs_site("admin/register");
  69. $message->user = $user;
  70. $message->subject_prefix = module::get_var("registration", "subject_prefix");
  71. $message->locale = module::get_var("gallery", "default_locale"); // as Gallery default
  72. $message->subject = t("New pending user registration", array("locale" => $message->locale));
  73. self::_sendemail(module::get_var("gallery", "email_reply_to"), $message->subject_prefix.$message->subject, $message);
  74. }
  75. static function create_pending_request($form) {
  76. $email_verification = module::get_var("registration", "email_verification");
  77. $user = ORM::factory("pending_user");
  78. $user->name = $form->register_user->inputs["name"]->value;
  79. $user->full_name = $form->register_user->inputs["full_name"]->value;
  80. $user->email = $form->register_user->inputs["email"]->value;
  81. $user->url = $form->register_user->inputs["url"]->value;
  82. $user->request_date = time();
  83. // added by Shad Laws, v2
  84. $user->locale = locales::locale_from_http_request() ? locales::locale_from_http_request() : module::get_var("gallery", "default_locale"); // sets default locale based on browser
  85. if (!$email_verification) {
  86. $user->state = 1;
  87. }
  88. $user->hash = md5(rand());
  89. $user->save();
  90. return $user;
  91. }
  92. static function create_new_user($id) {
  93. $user = ORM::factory("pending_user", $id);
  94. $password = md5(uniqid(mt_rand(), true));
  95. $new_user = identity::create_user($user->name, $user->full_name, $password, $user->email);
  96. $new_user->url = $user->url;
  97. $new_user->admin = false;
  98. $new_user->guest = false;
  99. $new_user->save();
  100. $group_id = module::get_var("registration", "default_group");
  101. if ($group_id != null) {
  102. $default_group = group::lookup($group_id);
  103. if ($default_group != null) {
  104. $default_group->add($new_user);
  105. $default_group->save();
  106. }
  107. }
  108. $user->hash = md5(uniqid(mt_rand(), true));
  109. $user->state = 2;
  110. $user->save();
  111. self::send_user_created_confirmation($user, $password);
  112. return $new_user;
  113. }
  114. private static function _sendemail($email, $subject, $message) {
  115. Sendmail::factory()
  116. ->to($email)
  117. ->subject($subject)
  118. ->header("Mime-Version", "1.0")
  119. // modified by Shad Laws, v2
  120. ->header("Content-type", "text/html; charset=utf-8")
  121. ->message($message->render())
  122. ->send();
  123. }
  124. }