mirror of
https://github.com/owncloud/bookmarks.git
synced 2024-11-29 04:24:11 +01:00
94 lines
2.4 KiB
PHP
94 lines
2.4 KiB
PHP
<?php
|
|
|
|
/**
|
|
* ownCloud - bookmarks
|
|
*
|
|
* This file is licensed under the Affero General Public License version 3 or
|
|
* later. See the COPYING file.
|
|
*
|
|
* @author Stefan Klemm <mail@stefan-klemm.de>
|
|
* @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
|
|
}
|
|
|
|
}
|