api.meaculpa.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <?php
  2. /**
  3. * Next Gen auth basic implementation
  4. */
  5. class MeaCulpa {
  6. /**
  7. * Culpa records database abstraction layer
  8. *
  9. * @var object
  10. */
  11. protected $culpasDb = '';
  12. /**
  13. * Contains all available user culpas as login=>id/login/culpa
  14. *
  15. * @var array
  16. */
  17. protected $allCulpas = array();
  18. /**
  19. * Some predefined stuff here
  20. */
  21. const TABLE_CULPA = 'mlg_culpas';
  22. public function __construct() {
  23. $this->initDb();
  24. $this->loadCulpas();
  25. }
  26. /**
  27. * Inits protected database abstraction layer
  28. *
  29. * @return void
  30. */
  31. protected function initDb() {
  32. $this->culpasDb = new NyanORM(self::TABLE_CULPA);
  33. }
  34. /**
  35. * Loads all available culpas data
  36. *
  37. * @return void
  38. */
  39. protected function loadCulpas() {
  40. $this->allCulpas = $this->culpasDb->getAll('login');
  41. }
  42. /**
  43. * Checks is culpa unique or not?
  44. *
  45. * @param string $culpa
  46. *
  47. * @return bool
  48. */
  49. protected function isCulpaUnique($culpa) {
  50. $result = true;
  51. if (!empty($this->allCulpas)) {
  52. foreach ($this->allCulpas as $io => $each) {
  53. if ($each['culpa'] == $culpa) {
  54. $result = false;
  55. break;
  56. }
  57. }
  58. }
  59. return($result);
  60. }
  61. /**
  62. * Returns all existing user culpas as login=>culpa
  63. *
  64. * @return array
  65. */
  66. protected function getAll() {
  67. $result = array();
  68. if (!empty($this->allCulpas)) {
  69. foreach ($this->allCulpas as $io => $each) {
  70. $result[$each['login']] = $each['culpa'];
  71. }
  72. }
  73. return($result);
  74. }
  75. /**
  76. * Sets some culpa for user
  77. *
  78. * @param string $login
  79. * @param string $culpa
  80. *
  81. * @return bool
  82. */
  83. public function set($login, $culpa) {
  84. $login = ubRouting::filters($login, 'mres');
  85. $culpaF = ubRouting::filters($culpa, 'mres');
  86. $result = true;
  87. if ($this->isCulpaUnique($culpa)) {
  88. $this->culpasDb->data('culpa', $culpaF);
  89. if (isset($this->allCulpas[$login])) {
  90. $this->culpasDb->where('login', '=', $login);
  91. $this->culpasDb->save();
  92. log_register('CULPA UPDATE (' . $login . ') CULPA `' . $culpa . '`');
  93. } else {
  94. $this->culpasDb->data('login', $login);
  95. $this->culpasDb->create();
  96. log_register('CULPA CREATE (' . $login . ') CULPA `' . $culpa . '`');
  97. }
  98. } else {
  99. $result = false;
  100. log_register('CULPA FAIL (' . $login . ') DUPLICATE CULPA `' . $culpa . '`');
  101. }
  102. return($result);
  103. }
  104. /**
  105. *
  106. * @param type $login
  107. */
  108. public function delete($login) {
  109. $login = ubRouting::filters($login, 'mres');
  110. $this->culpasDb->where('login', '=', $login);
  111. $this->culpasDb->delete();
  112. log_register('CULPA DELETE (' . $login . ')');
  113. }
  114. /**
  115. * Returns user assigned culpa if it exists
  116. *
  117. * @param string $login
  118. *
  119. * @return string
  120. */
  121. public function get($login) {
  122. $result = '';
  123. if (isset($this->allCulpas[$login])) {
  124. $result = $this->allCulpas[$login]['culpa'];
  125. }
  126. return($result);
  127. }
  128. }