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.

LuticateSettingsDataAccess.php 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace Luticate\Auth\DataAccess;
  3. use Luticate\Auth\DataAccess\SP\SpLuGetAllUserSettings;
  4. use Luticate\Auth\DataAccess\SP\SpLuGetUserSetting;
  5. use Luticate\Utils\LuDataAccess;
  6. use Luticate\Auth\DataAccess\Models\LuticateSettings;
  7. use Luticate\Auth\DBO\LuticateSettingsDbo;
  8. class LuticateSettingsDataAccess extends LuDataAccess {
  9. protected static function getModel()
  10. {
  11. return new LuticateSettings();
  12. }
  13. protected static function getOrderBy()
  14. {
  15. return array(array("name", "ASC"));
  16. }
  17. protected static function getQueryPredicate($query)
  18. {
  19. return array(array("name", "ilike", "%" . $query . "%", "or"));
  20. }
  21. public static function getEffectiveSetting($user_id, $setting_name)
  22. {
  23. return SpLuGetUserSetting::execute($user_id, $setting_name);
  24. }
  25. public static function getAllEffectiveSetting($user_id)
  26. {
  27. return SpLuGetAllUserSettings::getMultipleJson($user_id, 0, 2000000);
  28. }
  29. public static function getModelByName($setting_name)
  30. {
  31. return LuticateSettings::where("name", "=", $setting_name)->first();
  32. }
  33. /**
  34. * @param $setting_name string
  35. * @return LuticateSettingsDbo
  36. */
  37. public static function getByName($setting_name)
  38. {
  39. $perm = self::getModelByName($setting_name);
  40. if (is_null($perm)) {
  41. return null;
  42. }
  43. return $perm->toDbo();
  44. }
  45. public static function delete($setting_name)
  46. {
  47. $perm = self::getModelByName($setting_name);
  48. if (is_null($perm))
  49. return;
  50. $perm->delete();
  51. }
  52. /**
  53. * @param $setting_name string
  54. * @param $setting LuticateSettingsDbo
  55. */
  56. public static function edit($setting_name, $setting)
  57. {
  58. $perm = self::getModelByName($setting_name);
  59. if (is_null($perm))
  60. return;
  61. $perm->is_blocked = $setting->getIsBlocked();
  62. $perm->is_admin = $setting->getIsAdmin();
  63. $perm->value = $setting->getValue();
  64. $perm->save();
  65. }
  66. }