PageRenderTime 47ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/common/extensions/invitation_manager/php/invitation.class.php

https://bitbucket.org/chamilo/chamilo/
PHP | 178 lines | 138 code | 32 blank | 8 comment | 3 complexity | 8ed852cfbdcd0c93475dd083203a1446 MD5 | raw file
Possible License(s): GPL-2.0, BSD-3-Clause, LGPL-2.1, LGPL-3.0, GPL-3.0, MIT
  1. <?php
  2. namespace common\extensions\invitation_manager;
  3. use common\libraries\DataClass;
  4. use common\libraries\Utilities;
  5. use admin\AdminDataManager;
  6. /**
  7. * @package admin.lib
  8. * @author Hans De Bisschop
  9. */
  10. class Invitation extends DataClass
  11. {
  12. const CLASS_NAME = __CLASS__;
  13. const PROPERTY_APPLICATION = 'application';
  14. const PROPERTY_DATE = 'date';
  15. const PROPERTY_EXPIRATION_DATE = 'expiration_date';
  16. const PROPERTY_CODE = 'code';
  17. const PROPERTY_PARAMETERS = 'parameters';
  18. const PROPERTY_ANONYMOUS = 'anonymous';
  19. const PROPERTY_TITLE = 'title';
  20. const PROPERTY_MESSAGE = 'message';
  21. const PROPERTY_EMAIL = 'email';
  22. const PROPERTY_RIGHTS_TEMPLATES = 'rights_templates';
  23. const PROPERTY_USER_CREATED = 'user_created';
  24. function get_data_manager()
  25. {
  26. return AdminDataManager :: get_instance();
  27. }
  28. /**
  29. * Get the default properties of all users.
  30. * @return array The property names.
  31. */
  32. static function get_default_property_names()
  33. {
  34. return parent :: get_default_property_names(array(
  35. self :: PROPERTY_APPLICATION, self :: PROPERTY_DATE, self :: PROPERTY_EXPIRATION_DATE, self :: PROPERTY_CODE, self :: PROPERTY_PARAMETERS, self :: PROPERTY_ANONYMOUS, self :: PROPERTY_TITLE, self :: PROPERTY_MESSAGE,
  36. self :: PROPERTY_EMAIL, self :: PROPERTY_RIGHTS_TEMPLATES, self :: PROPERTY_USER_CREATED));
  37. }
  38. function get_application()
  39. {
  40. return $this->get_default_property(self :: PROPERTY_APPLICATION);
  41. }
  42. function set_application($application)
  43. {
  44. $this->set_default_property(self :: PROPERTY_APPLICATION, $application);
  45. }
  46. function get_date()
  47. {
  48. return $this->get_default_property(self :: PROPERTY_DATE);
  49. }
  50. function set_date($date)
  51. {
  52. $this->set_default_property(self :: PROPERTY_DATE, $date);
  53. }
  54. function get_expiration_date()
  55. {
  56. return $this->get_default_property(self :: PROPERTY_EXPIRATION_DATE);
  57. }
  58. function set_expiration_date($expiration_date)
  59. {
  60. $this->set_default_property(self :: PROPERTY_EXPIRATION_DATE, $expiration_date);
  61. }
  62. function get_code()
  63. {
  64. return $this->get_default_property(self :: PROPERTY_CODE);
  65. }
  66. function set_code($code)
  67. {
  68. $this->set_default_property(self :: PROPERTY_CODE, $code);
  69. }
  70. function get_parameters()
  71. {
  72. return $this->get_default_property(self :: PROPERTY_PARAMETERS);
  73. }
  74. function set_parameters($parameters)
  75. {
  76. $this->set_default_property(self :: PROPERTY_PARAMETERS, $parameters);
  77. }
  78. function get_anonymous()
  79. {
  80. return $this->get_default_property(self :: PROPERTY_ANONYMOUS);
  81. }
  82. function set_anonymous($anonymous)
  83. {
  84. $this->set_default_property(self :: PROPERTY_ANONYMOUS, $anonymous);
  85. }
  86. function get_title()
  87. {
  88. return $this->get_default_property(self :: PROPERTY_TITLE);
  89. }
  90. function set_title($title)
  91. {
  92. $this->set_default_property(self :: PROPERTY_TITLE, $title);
  93. }
  94. function get_message()
  95. {
  96. return $this->get_default_property(self :: PROPERTY_MESSAGE);
  97. }
  98. function set_message($message)
  99. {
  100. $this->set_default_property(self :: PROPERTY_MESSAGE, $message);
  101. }
  102. function get_email()
  103. {
  104. return $this->get_default_property(self :: PROPERTY_EMAIL);
  105. }
  106. function set_email($email)
  107. {
  108. $this->set_default_property(self :: PROPERTY_EMAIL, $email);
  109. }
  110. function get_rights_templates()
  111. {
  112. return $this->get_default_property(self :: PROPERTY_RIGHTS_TEMPLATES);
  113. }
  114. function set_rights_templates($rights_templates)
  115. {
  116. $this->set_default_property(self :: PROPERTY_RIGHTS_TEMPLATES, $rights_templates);
  117. }
  118. function get_user_created()
  119. {
  120. return $this->get_default_property(self :: PROPERTY_USER_CREATED);
  121. }
  122. function set_user_created($user_created)
  123. {
  124. $this->set_default_property(self :: PROPERTY_USER_CREATED, $user_created);
  125. }
  126. function is_valid()
  127. {
  128. return (time() >= $this->get_expiration_date() || $this->get_expiration_date() == 0) && ! $this->get_user_created();
  129. }
  130. function is_anonymous()
  131. {
  132. return $this->get_anonymous();
  133. }
  134. static function get_table_name()
  135. {
  136. return Utilities :: get_classname_from_namespace(self :: CLASS_NAME, true);
  137. }
  138. function create()
  139. {
  140. $this->set_code(md5(uniqid()));
  141. $this->set_date(time());
  142. $this->set_user_created(0);
  143. parent :: create();
  144. }
  145. }
  146. ?>