Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

LuticateSettingsUsersBusiness.php 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. namespace Luticate\Auth\Business;
  3. use Luticate\Utils\LuBusiness;
  4. use Luticate\Auth\DataAccess\LuticateSettingsUsersDataAccess;
  5. use Luticate\Auth\DBO\LuticateSettingsUsersDbo;
  6. use Luticate\Utils\LuMultipleDbo;
  7. class LuticateSettingsUsersBusiness extends LuBusiness {
  8. protected static function getDataAccess()
  9. {
  10. return new LuticateSettingsUsersDataAccess();
  11. }
  12. public static function checkSettingUserName($user_id, $setting_name)
  13. {
  14. LuticateUsersBusiness::checkUserId($user_id);
  15. LuticateSettingsBusiness::checkSettingName($setting_name);
  16. $setting = LuticateSettingsUsersDataAccess::getByName($user_id, $setting_name);
  17. if (is_null($setting)) {
  18. self::notFound("User setting not found");
  19. }
  20. return $setting;
  21. }
  22. public static function getAllByUser($user_id, $page = 0, $perPage = 2000000000)
  23. {
  24. return LuticateSettingsUsersDataAccess::getAllByUser($user_id, $page, $perPage);
  25. }
  26. /**
  27. * @param $user_setting LuticateSettingsUsersDbo
  28. * @param $admin_edit bool
  29. * @return bool
  30. */
  31. public static function edit($user_setting, $admin_edit)
  32. {
  33. LuticateUsersBusiness::checkUserId($user_setting->getUserId());
  34. $setting = LuticateSettingsBusiness::checkSettingName($user_setting->getName());
  35. if ($setting->getIsBlocked() && !$admin_edit) {
  36. self::unauthorized("Setting is blocked");
  37. }
  38. if (is_null($user_setting->getValue())) {
  39. LuticateSettingsUsersDataAccess::delete($user_setting->getUserId(), $user_setting->getName());
  40. } else {
  41. $setting->setValue($user_setting->getValue());
  42. LuticateSettingsBusiness::checkSetting($setting);
  43. $user_setting->setValue(json_encode($user_setting->getValue()));
  44. $real_user_setting = LuticateSettingsUsersDataAccess::getByName($user_setting->getUserId(), $user_setting->getName());
  45. if (is_null($real_user_setting)) {
  46. if (is_null($user_setting->getIsBlocked())) {
  47. $user_setting->setIsBlocked(false);
  48. }
  49. LuticateSettingsUsersDataAccess::add($user_setting);
  50. }
  51. else {
  52. if ($real_user_setting->getIsBlocked() && !$admin_edit) {
  53. self::unauthorized("User setting is blocked");
  54. }
  55. if (is_null($user_setting->getIsBlocked())) {
  56. $user_setting->setIsBlocked($real_user_setting->getIsBlocked());
  57. }
  58. LuticateSettingsUsersDataAccess::edit($user_setting);
  59. }
  60. }
  61. return true;
  62. }
  63. }