mirror of
https://github.com/wallabag/wallabag.git
synced 2025-01-03 13:28:41 +00:00
Added internal setting to enable/disable articles with paywall
This commit is contained in:
parent
40f3ea57fb
commit
d64bf7953b
6 changed files with 67 additions and 2 deletions
45
app/DoctrineMigrations/Version20161122144743.php
Normal file
45
app/DoctrineMigrations/Version20161122144743.php
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Application\Migrations;
|
||||||
|
|
||||||
|
use Doctrine\DBAL\Migrations\AbstractMigration;
|
||||||
|
use Doctrine\DBAL\Schema\Schema;
|
||||||
|
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||||
|
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add the restricted_access internal setting for articles with paywall
|
||||||
|
*/
|
||||||
|
class Version20161122144743 extends AbstractMigration implements ContainerAwareInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var ContainerInterface
|
||||||
|
*/
|
||||||
|
private $container;
|
||||||
|
|
||||||
|
public function setContainer(ContainerInterface $container = null)
|
||||||
|
{
|
||||||
|
$this->container = $container;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getTable($tableName)
|
||||||
|
{
|
||||||
|
return $this->container->getParameter('database_table_prefix') . $tableName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Schema $schema
|
||||||
|
*/
|
||||||
|
public function up(Schema $schema)
|
||||||
|
{
|
||||||
|
$this->addSql("INSERT INTO ".$this->getTable('craue_config_setting')." (name, value, section) VALUES ('restricted_access', 0, 'entry')");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Schema $schema
|
||||||
|
*/
|
||||||
|
public function down(Schema $schema)
|
||||||
|
{
|
||||||
|
$this->addSql("DELETE FROM ".$this->getTable('craue_config_setting')." WHERE name = 'restricted_access';");
|
||||||
|
}
|
||||||
|
}
|
|
@ -32,3 +32,4 @@ demo_mode_enabled: "Enable demo mode ? (only used for the wallabag public demo)"
|
||||||
demo_mode_username: "Demo user"
|
demo_mode_username: "Demo user"
|
||||||
share_public: Allow public url for entries
|
share_public: Allow public url for entries
|
||||||
download_images_enabled: Download images locally
|
download_images_enabled: Download images locally
|
||||||
|
restricted_access: Enable authentication for websites with paywall
|
||||||
|
|
|
@ -432,6 +432,11 @@ class InstallCommand extends ContainerAwareCommand
|
||||||
'value' => '0',
|
'value' => '0',
|
||||||
'section' => 'misc',
|
'section' => 'misc',
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
'name' => 'restricted_access',
|
||||||
|
'value' => '0',
|
||||||
|
'section' => 'entry',
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
foreach ($settings as $setting) {
|
foreach ($settings as $setting) {
|
||||||
|
|
|
@ -155,6 +155,11 @@ class LoadSettingData extends AbstractFixture implements OrderedFixtureInterface
|
||||||
'value' => '0',
|
'value' => '0',
|
||||||
'section' => 'misc',
|
'section' => 'misc',
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
'name' => 'restricted_access',
|
||||||
|
'value' => '0',
|
||||||
|
'section' => 'entry',
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
foreach ($settings as $setting) {
|
foreach ($settings as $setting) {
|
||||||
|
|
|
@ -18,23 +18,31 @@ class HttpClientFactory
|
||||||
/** @var \GuzzleHttp\Cookie\CookieJar */
|
/** @var \GuzzleHttp\Cookie\CookieJar */
|
||||||
private $cookieJar;
|
private $cookieJar;
|
||||||
|
|
||||||
|
private $restrictedAccess;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HttpClientFactory constructor.
|
* HttpClientFactory constructor.
|
||||||
*
|
*
|
||||||
* @param \GuzzleHttp\Event\SubscriberInterface $authenticatorSubscriber
|
* @param \GuzzleHttp\Event\SubscriberInterface $authenticatorSubscriber
|
||||||
* @param \GuzzleHttp\Cookie\CookieJar $cookieJar
|
* @param \GuzzleHttp\Cookie\CookieJar $cookieJar
|
||||||
|
* @param string $restrictedAccess
|
||||||
*/
|
*/
|
||||||
public function __construct(SubscriberInterface $authenticatorSubscriber, CookieJar $cookieJar)
|
public function __construct(SubscriberInterface $authenticatorSubscriber, CookieJar $cookieJar, $restrictedAccess)
|
||||||
{
|
{
|
||||||
$this->authenticatorSubscriber = $authenticatorSubscriber;
|
$this->authenticatorSubscriber = $authenticatorSubscriber;
|
||||||
$this->cookieJar = $cookieJar;
|
$this->cookieJar = $cookieJar;
|
||||||
|
$this->restrictedAccess = $restrictedAccess;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return \GuzzleHttp\Client
|
* @return \GuzzleHttp\Client|null
|
||||||
*/
|
*/
|
||||||
public function buildHttpClient()
|
public function buildHttpClient()
|
||||||
{
|
{
|
||||||
|
if (0 === (int) $this->restrictedAccess) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
// we clear the cookie to avoid websites who use cookies for analytics
|
// we clear the cookie to avoid websites who use cookies for analytics
|
||||||
$this->cookieJar->clear();
|
$this->cookieJar->clear();
|
||||||
// need to set the (shared) cookie jar
|
// need to set the (shared) cookie jar
|
||||||
|
|
|
@ -73,6 +73,7 @@ services:
|
||||||
arguments:
|
arguments:
|
||||||
- "@bd_guzzle_site_authenticator.authenticator_subscriber"
|
- "@bd_guzzle_site_authenticator.authenticator_subscriber"
|
||||||
- "@wallabag_core.guzzle.cookie_jar"
|
- "@wallabag_core.guzzle.cookie_jar"
|
||||||
|
- '@=service(''craue_config'').get(''restricted_access'')'
|
||||||
|
|
||||||
wallabag_core.guzzle.cookie_jar:
|
wallabag_core.guzzle.cookie_jar:
|
||||||
class: GuzzleHttp\Cookie\FileCookieJar
|
class: GuzzleHttp\Cookie\FileCookieJar
|
||||||
|
|
Loading…
Reference in a new issue