12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- <?php
-
- namespace Luticate\Auth\Business;
-
- use Luticate\Utils\LuBusiness;
- use Luticate\Auth\DataAccess\LuticateSettingsUsersDataAccess;
- use Luticate\Auth\DBO\LuticateSettingsUsersDbo;
- use Luticate\Utils\LuMultipleDbo;
-
- class LuticateSettingsUsersBusiness extends LuBusiness {
- protected static function getDataAccess()
- {
- return new LuticateSettingsUsersDataAccess();
- }
-
- public static function checkSettingUserName($user_id, $setting_name)
- {
- LuticateUsersBusiness::checkUserId($user_id);
- LuticateSettingsBusiness::checkSettingName($setting_name);
- $setting = LuticateSettingsUsersDataAccess::getByName($user_id, $setting_name);
- if (is_null($setting)) {
- self::notFound("User setting not found");
- }
- return $setting;
- }
-
- public static function getAllByUser($user_id, $page = 0, $perPage = 2000000000)
- {
- return LuticateSettingsUsersDataAccess::getAllByUser($user_id, $page, $perPage)->map(function($value)
- {
- $value->setValue(json_decode($value->getValue()));
- return $value;
- });
- }
-
- /**
- * @param $user_setting LuticateSettingsUsersDbo
- * @param $admin_edit bool
- * @return bool
- */
- public static function edit($user_setting, $admin_edit)
- {
- LuticateUsersBusiness::checkUserId($user_setting->getUserId());
- $setting = LuticateSettingsBusiness::checkSettingName($user_setting->getName());
- if ($setting->getIsBlocked() && !$admin_edit) {
- self::unauthorized("Setting is blocked");
- }
- if (is_null($user_setting->getValue())) {
- LuticateSettingsUsersDataAccess::delete($user_setting->getUserId(), $user_setting->getName());
- } else {
- $setting->setValue($user_setting->getValue());
- LuticateSettingsBusiness::checkSetting($setting);
- $user_setting->setValue(json_encode($user_setting->getValue()));
- $real_user_setting = LuticateSettingsUsersDataAccess::getByName($user_setting->getUserId(), $user_setting->getName());
- if (is_null($real_user_setting)) {
- if (is_null($user_setting->getIsBlocked())) {
- $user_setting->setIsBlocked(false);
- }
- LuticateSettingsUsersDataAccess::add($user_setting);
- }
- else {
- if ($real_user_setting->getIsBlocked() && !$admin_edit) {
- self::unauthorized("User setting is blocked");
- }
- if (is_null($user_setting->getIsBlocked())) {
- $user_setting->setIsBlocked($real_user_setting->getIsBlocked());
- }
- LuticateSettingsUsersDataAccess::edit($user_setting);
- }
- }
- return true;
- }
- }
|