You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

LuticateSettingsBusiness.php 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. namespace Luticate\Auth\Business;
  3. use Luticate\Utils\LuBusiness;
  4. use Luticate\Auth\DataAccess\LuticateSettingsDataAccess;
  5. use Luticate\Auth\DBO\LuticateSettingsDbo;
  6. use Luticate\Utils\LuMultipleDbo;
  7. class LuticateSettingsBusiness extends LuBusiness {
  8. protected static function getDataAccess()
  9. {
  10. return new LuticateSettingsDataAccess();
  11. }
  12. /**
  13. * @param $setting LuticateSettingsDbo
  14. */
  15. public static function checkSetting($setting)
  16. {
  17. if (is_null($setting->getValue())) {
  18. self::notFound("Setting Value cannot be null");
  19. }
  20. if (is_null($setting->getType())) {
  21. self::notFound("Setting Type cannot be null");
  22. }
  23. else {
  24. if (is_array($setting->getValue())) {
  25. $setting->setValue(json_encode($setting->getValue()));
  26. }
  27. }
  28. if (is_null($setting->getName())) {
  29. self::notFound("Setting Name cannot be null");
  30. }
  31. if (!is_bool($setting->getIsBlocked())) {
  32. self::notFound("Setting IsBlocked must be boolean");
  33. }
  34. }
  35. public static function checkSettingName($setting_name)
  36. {
  37. $perm = LuticateSettingsDataAccess::getByName($setting_name);
  38. if (is_null($perm)) {
  39. self::notFound("Setting not found");
  40. }
  41. return $perm;
  42. }
  43. public static function getEffectiveSetting($user_id, $setting_name)
  44. {
  45. self::checkSettingName($setting_name);
  46. $val = LuticateSettingsDataAccess::getEffectiveSetting($user_id, $setting_name);
  47. $json = json_decode($val->getSetting());
  48. return $json;
  49. }
  50. public static function getAllEffectiveSetting($user_id)
  51. {
  52. return LuticateSettingsDataAccess::getAllEffectiveSetting($user_id)->map(function($value)
  53. {
  54. return $value["Settings"];
  55. });
  56. }
  57. public static function get($setting_name)
  58. {
  59. $perm = LuticateSettingsDataAccess::getByName($setting_name);
  60. if (is_null($perm)) {
  61. self::notFound("Permission not found");
  62. }
  63. return $perm;
  64. }
  65. /**
  66. * @param $setting LuticateSettingsDbo
  67. * @return bool
  68. */
  69. public static function add($setting)
  70. {
  71. self::checkSetting($setting);
  72. $perm = LuticateSettingsDataAccess::getByName($setting->getName());
  73. if (is_null($perm)) {
  74. LuticateSettingsDataAccess::add($setting);
  75. return true;
  76. }
  77. self::badInput("Setting name already exists");
  78. return false;
  79. }
  80. public static function del($setting_name)
  81. {
  82. LuticateSettingsDataAccess::delete($setting_name);
  83. return true;
  84. }
  85. /**
  86. * @param $setting_name string
  87. * @param $setting LuticateSettingsDbo
  88. * @return bool
  89. */
  90. public static function edit($setting_name, $setting)
  91. {
  92. $setting->setName($setting_name);
  93. self::checkSetting($setting);
  94. self::checkSettingName($setting_name);
  95. LuticateSettingsDataAccess::edit($setting_name, $setting);
  96. return true;
  97. }
  98. }