* @copyright Stefan Klemm 2014 */ namespace OCA\Bookmarks\Controller; use OCP\AppFramework\Http\ContentSecurityPolicy; use \OCP\IRequest; use \OCP\AppFramework\Http\TemplateResponse; use \OCP\AppFramework\Controller; use \OCP\IDb; use \OCA\Bookmarks\Controller\Lib\Bookmarks; use OCP\IURLGenerator; class WebViewController extends Controller { /** @var string */ private $userId; /** @var IURLGenerator */ private $urlgenerator; /** @var IDb */ private $db; /** * WebViewController constructor. * * @param string $appName * @param IRequest $request * @param $userId * @param IURLGenerator $urlgenerator * @param IDb $db */ public function __construct($appName, IRequest $request, $userId, IURLGenerator $urlgenerator, IDb $db) { parent::__construct($appName, $request); $this->userId = $userId; $this->urlgenerator = $urlgenerator; $this->db = $db; } /** * @NoAdminRequired * @NoCSRFRequired */ public function index() { $bookmarkleturl = $this->urlgenerator->getAbsoluteURL('index.php/apps/bookmarks/bookmarklet'); $params = array('user' => $this->userId, 'bookmarkleturl' => $bookmarkleturl); $policy = new ContentSecurityPolicy(); $policy->addAllowedFrameDomain("'self'"); $response = new TemplateResponse('bookmarks', 'main', $params); $response->setContentSecurityPolicy($policy); return $response; } /** * @param string $url * @param string $title * @return TemplateResponse * * @NoAdminRequired * @NoCSRFRequired */ public function bookmarklet($url = "", $title = "") { $bookmarkExists = Bookmarks::bookmarkExists($url, $this->userId, $this->db); $description = ""; $tags = []; if ($bookmarkExists !== false){ $bookmark = Bookmarks::findUniqueBookmark($bookmarkExists, $this->userId, $this->db); $description = $bookmark['description']; $tags = $bookmark['tags']; } $params = array( 'url' => $url, 'title' => $title, 'description' => $description, 'bookmarkExists'=> $bookmarkExists, 'tags' => $tags ); return new TemplateResponse('bookmarks', 'addBookmarklet', $params); // templates/main.php } }