Loading Controllers/api/v2/pro/settings.php +31 −2 Original line number Original line Diff line number Diff line Loading @@ -10,6 +10,7 @@ use Exception; use Minds\Core\Di\Di; use Minds\Core\Di\Di; use Minds\Core\Pro\Manager; use Minds\Core\Pro\Manager; use Minds\Core\Session; use Minds\Core\Session; use Minds\Entities\User; use Minds\Interfaces; use Minds\Interfaces; use Minds\Api\Factory; use Minds\Api\Factory; Loading @@ -22,10 +23,24 @@ class settings implements Interfaces\Api */ */ public function get($pages) public function get($pages) { { $user = Session::getLoggedinUser(); if (isset($pages[0]) && $pages[0]) { if (!Session::isAdmin()) { return Factory::response([ 'status' => 'error', 'message' => 'You are not authorized', ]); } $user = new User($pages[0]); } /** @var Manager $manager */ /** @var Manager $manager */ $manager = Di::_()->get('Pro\Manager'); $manager = Di::_()->get('Pro\Manager'); $manager $manager ->setUser(Session::getLoggedinUser()); ->setUser($user) ->setActor(Session::getLoggedinUser()); return Factory::response([ return Factory::response([ 'isActive' => $manager->isActive(), 'isActive' => $manager->isActive(), Loading @@ -40,10 +55,24 @@ class settings implements Interfaces\Api */ */ public function post($pages) public function post($pages) { { $user = Session::getLoggedinUser(); if (isset($pages[0]) && $pages[0]) { if (!Session::isAdmin()) { return Factory::response([ 'status' => 'error', 'message' => 'You are not authorized', ]); } $user = new User($pages[0]); } /** @var Manager $manager */ /** @var Manager $manager */ $manager = Di::_()->get('Pro\Manager'); $manager = Di::_()->get('Pro\Manager'); $manager $manager ->setUser(Session::getLoggedinUser()); ->setUser($user) ->setActor(Session::getLoggedinUser()); if (!$manager->isActive()) { if (!$manager->isActive()) { return Factory::response([ return Factory::response([ Loading Core/Pro/Manager.php +24 −0 Original line number Original line Diff line number Diff line Loading @@ -27,6 +27,9 @@ class Manager /** @var User */ /** @var User */ protected $user; protected $user; /** @var User */ protected $actor; /** /** * Manager constructor. * Manager constructor. * @param Repository $repository * @param Repository $repository Loading Loading @@ -56,6 +59,16 @@ class Manager return $this; return $this; } } /** * @param User $actor * @return Manager */ public function setActor(User $actor) { $this->actor = $actor; return $this; } /** /** * @return bool * @return bool * @throws Exception * @throws Exception Loading Loading @@ -136,6 +149,10 @@ class Manager return $this->hydrate($settings); return $this->hydrate($settings); } } /** * @param $settings * @return Settings */ public function hydrate($settings) public function hydrate($settings) { { return $this->hydrateSettingsDelegate return $this->hydrateSettingsDelegate Loading Loading @@ -257,6 +274,13 @@ class Manager ->setScheme($values['scheme']); ->setScheme($values['scheme']); } } if (isset($values['custom_head']) && $this->actor->isAdmin()) { // TODO: Validate! $settings ->setCustomHead($values['custom_head']); } return $this->repository->update($settings); return $this->repository->update($settings); } } } } Core/Pro/Repository.php +2 −0 Original line number Original line Diff line number Diff line Loading @@ -98,6 +98,7 @@ class Repository ->setFooterLinks($data['footer_links'] ?? []) ->setFooterLinks($data['footer_links'] ?? []) ->setTagList($data['tag_list'] ?? []) ->setTagList($data['tag_list'] ?? []) ->setScheme($data['scheme'] ?? '') ->setScheme($data['scheme'] ?? '') ->setCustomHead($data['custom_head'] ?? '') ; ; $response[] = $settings; $response[] = $settings; Loading Loading @@ -144,6 +145,7 @@ class Repository 'footer_links' => $settings->getFooterLinks(), 'footer_links' => $settings->getFooterLinks(), 'tag_list' => $settings->getTagList(), 'tag_list' => $settings->getTagList(), 'scheme' => $settings->getScheme(), 'scheme' => $settings->getScheme(), 'custom_head' => $settings->getCustomHead(), ]), ]), ]; ]; Loading Core/Pro/Settings.php +10 −1 Original line number Original line Diff line number Diff line Loading @@ -44,6 +44,8 @@ use Minds\Traits\MagicAttributes; * @method Settings setLogoImage(string $logoImage) * @method Settings setLogoImage(string $logoImage) * @method array getFeaturedContent() * @method array getFeaturedContent() * @method Settings setFeaturedContent(array $featuredContent) * @method Settings setFeaturedContent(array $featuredContent) * @method string getCustomHead() * @method Settings setCustomHead(string $customHead) */ */ class Settings implements JsonSerializable class Settings implements JsonSerializable { { Loading Loading @@ -105,6 +107,12 @@ class Settings implements JsonSerializable /** @var array */ /** @var array */ protected $featuredContent = []; protected $featuredContent = []; /** @var string */ protected $customHead = ''; /** * @return string */ public function getOneLineHeadline() public function getOneLineHeadline() { { return preg_replace("/\\r?\\n+/", ' ', $this->headline); return preg_replace("/\\r?\\n+/", ' ', $this->headline); Loading @@ -125,7 +133,6 @@ class Settings implements JsonSerializable 'domain' => $this->domain, 'domain' => $this->domain, 'title' => $this->title, 'title' => $this->title, 'headline' => $this->headline, 'headline' => $this->headline, 'one_line_headline' => $this->getOneLineHeadline(), 'text_color' => $textColor, 'text_color' => $textColor, 'primary_color' => $primaryColor, 'primary_color' => $primaryColor, 'plain_background_color' => $plainBackgroundColor, 'plain_background_color' => $plainBackgroundColor, Loading @@ -138,6 +145,8 @@ class Settings implements JsonSerializable 'logo_image' => $this->logoImage, 'logo_image' => $this->logoImage, 'featured_content' => $this->featuredContent, 'featured_content' => $this->featuredContent, 'scheme' => $this->scheme, 'scheme' => $this->scheme, 'custom_head' => $this->customHead, 'one_line_headline' => $this->getOneLineHeadline(), 'styles' => $this->buildStyles(), 'styles' => $this->buildStyles(), ]; ]; } } Loading Loading
Controllers/api/v2/pro/settings.php +31 −2 Original line number Original line Diff line number Diff line Loading @@ -10,6 +10,7 @@ use Exception; use Minds\Core\Di\Di; use Minds\Core\Di\Di; use Minds\Core\Pro\Manager; use Minds\Core\Pro\Manager; use Minds\Core\Session; use Minds\Core\Session; use Minds\Entities\User; use Minds\Interfaces; use Minds\Interfaces; use Minds\Api\Factory; use Minds\Api\Factory; Loading @@ -22,10 +23,24 @@ class settings implements Interfaces\Api */ */ public function get($pages) public function get($pages) { { $user = Session::getLoggedinUser(); if (isset($pages[0]) && $pages[0]) { if (!Session::isAdmin()) { return Factory::response([ 'status' => 'error', 'message' => 'You are not authorized', ]); } $user = new User($pages[0]); } /** @var Manager $manager */ /** @var Manager $manager */ $manager = Di::_()->get('Pro\Manager'); $manager = Di::_()->get('Pro\Manager'); $manager $manager ->setUser(Session::getLoggedinUser()); ->setUser($user) ->setActor(Session::getLoggedinUser()); return Factory::response([ return Factory::response([ 'isActive' => $manager->isActive(), 'isActive' => $manager->isActive(), Loading @@ -40,10 +55,24 @@ class settings implements Interfaces\Api */ */ public function post($pages) public function post($pages) { { $user = Session::getLoggedinUser(); if (isset($pages[0]) && $pages[0]) { if (!Session::isAdmin()) { return Factory::response([ 'status' => 'error', 'message' => 'You are not authorized', ]); } $user = new User($pages[0]); } /** @var Manager $manager */ /** @var Manager $manager */ $manager = Di::_()->get('Pro\Manager'); $manager = Di::_()->get('Pro\Manager'); $manager $manager ->setUser(Session::getLoggedinUser()); ->setUser($user) ->setActor(Session::getLoggedinUser()); if (!$manager->isActive()) { if (!$manager->isActive()) { return Factory::response([ return Factory::response([ Loading
Core/Pro/Manager.php +24 −0 Original line number Original line Diff line number Diff line Loading @@ -27,6 +27,9 @@ class Manager /** @var User */ /** @var User */ protected $user; protected $user; /** @var User */ protected $actor; /** /** * Manager constructor. * Manager constructor. * @param Repository $repository * @param Repository $repository Loading Loading @@ -56,6 +59,16 @@ class Manager return $this; return $this; } } /** * @param User $actor * @return Manager */ public function setActor(User $actor) { $this->actor = $actor; return $this; } /** /** * @return bool * @return bool * @throws Exception * @throws Exception Loading Loading @@ -136,6 +149,10 @@ class Manager return $this->hydrate($settings); return $this->hydrate($settings); } } /** * @param $settings * @return Settings */ public function hydrate($settings) public function hydrate($settings) { { return $this->hydrateSettingsDelegate return $this->hydrateSettingsDelegate Loading Loading @@ -257,6 +274,13 @@ class Manager ->setScheme($values['scheme']); ->setScheme($values['scheme']); } } if (isset($values['custom_head']) && $this->actor->isAdmin()) { // TODO: Validate! $settings ->setCustomHead($values['custom_head']); } return $this->repository->update($settings); return $this->repository->update($settings); } } } }
Core/Pro/Repository.php +2 −0 Original line number Original line Diff line number Diff line Loading @@ -98,6 +98,7 @@ class Repository ->setFooterLinks($data['footer_links'] ?? []) ->setFooterLinks($data['footer_links'] ?? []) ->setTagList($data['tag_list'] ?? []) ->setTagList($data['tag_list'] ?? []) ->setScheme($data['scheme'] ?? '') ->setScheme($data['scheme'] ?? '') ->setCustomHead($data['custom_head'] ?? '') ; ; $response[] = $settings; $response[] = $settings; Loading Loading @@ -144,6 +145,7 @@ class Repository 'footer_links' => $settings->getFooterLinks(), 'footer_links' => $settings->getFooterLinks(), 'tag_list' => $settings->getTagList(), 'tag_list' => $settings->getTagList(), 'scheme' => $settings->getScheme(), 'scheme' => $settings->getScheme(), 'custom_head' => $settings->getCustomHead(), ]), ]), ]; ]; Loading
Core/Pro/Settings.php +10 −1 Original line number Original line Diff line number Diff line Loading @@ -44,6 +44,8 @@ use Minds\Traits\MagicAttributes; * @method Settings setLogoImage(string $logoImage) * @method Settings setLogoImage(string $logoImage) * @method array getFeaturedContent() * @method array getFeaturedContent() * @method Settings setFeaturedContent(array $featuredContent) * @method Settings setFeaturedContent(array $featuredContent) * @method string getCustomHead() * @method Settings setCustomHead(string $customHead) */ */ class Settings implements JsonSerializable class Settings implements JsonSerializable { { Loading Loading @@ -105,6 +107,12 @@ class Settings implements JsonSerializable /** @var array */ /** @var array */ protected $featuredContent = []; protected $featuredContent = []; /** @var string */ protected $customHead = ''; /** * @return string */ public function getOneLineHeadline() public function getOneLineHeadline() { { return preg_replace("/\\r?\\n+/", ' ', $this->headline); return preg_replace("/\\r?\\n+/", ' ', $this->headline); Loading @@ -125,7 +133,6 @@ class Settings implements JsonSerializable 'domain' => $this->domain, 'domain' => $this->domain, 'title' => $this->title, 'title' => $this->title, 'headline' => $this->headline, 'headline' => $this->headline, 'one_line_headline' => $this->getOneLineHeadline(), 'text_color' => $textColor, 'text_color' => $textColor, 'primary_color' => $primaryColor, 'primary_color' => $primaryColor, 'plain_background_color' => $plainBackgroundColor, 'plain_background_color' => $plainBackgroundColor, Loading @@ -138,6 +145,8 @@ class Settings implements JsonSerializable 'logo_image' => $this->logoImage, 'logo_image' => $this->logoImage, 'featured_content' => $this->featuredContent, 'featured_content' => $this->featuredContent, 'scheme' => $this->scheme, 'scheme' => $this->scheme, 'custom_head' => $this->customHead, 'one_line_headline' => $this->getOneLineHeadline(), 'styles' => $this->buildStyles(), 'styles' => $this->buildStyles(), ]; ]; } } Loading