Skip to content
Snippets Groups Projects
Commit 8c69793e authored by Demian Katz's avatar Demian Katz
Browse files

Disable account features when account is inaccessible.

parent 761afb19
No related merge requests found
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
* @link http://vufind.org Main Site * @link http://vufind.org Main Site
*/ */
namespace VuFind\Config; namespace VuFind\Config;
use VuFind\Auth\Manager as AuthManager;
use Zend\Config\Config; use Zend\Config\Config;
/** /**
...@@ -41,6 +42,13 @@ use Zend\Config\Config; ...@@ -41,6 +42,13 @@ use Zend\Config\Config;
*/ */
class AccountCapabilities class AccountCapabilities
{ {
/**
* Auth manager
*
* @var AuthManager
*/
protected $auth;
/** /**
* VuFind configuration * VuFind configuration
* *
...@@ -51,10 +59,12 @@ class AccountCapabilities ...@@ -51,10 +59,12 @@ class AccountCapabilities
/** /**
* Constructor * Constructor
* *
* @param Config $config VuFind configuration * @param Config $config VuFind configuration
* @param AuthManager $auth Auth manager
*/ */
public function __construct(Config $config) public function __construct(Config $config, AuthManager $auth)
{ {
$this->auth = $auth;
$this->config = $config; $this->config = $config;
} }
...@@ -65,6 +75,9 @@ class AccountCapabilities ...@@ -65,6 +75,9 @@ class AccountCapabilities
*/ */
public function getCommentSetting() public function getCommentSetting()
{ {
if (!$this->isAccountAvailable()) {
return 'disabled';
}
return isset($this->config->Social->comments) return isset($this->config->Social->comments)
&& $this->config->Social->comments === 'disabled' && $this->config->Social->comments === 'disabled'
? 'disabled' : 'enabled'; ? 'disabled' : 'enabled';
...@@ -77,6 +90,9 @@ class AccountCapabilities ...@@ -77,6 +90,9 @@ class AccountCapabilities
*/ */
public function getListSetting() public function getListSetting()
{ {
if (!$this->isAccountAvailable()) {
return 'disabled';
}
$setting = isset($this->config->Social->lists) $setting = isset($this->config->Social->lists)
? trim(strtolower($this->config->Social->lists)) : 'enabled'; ? trim(strtolower($this->config->Social->lists)) : 'enabled';
if (!$setting) { if (!$setting) {
...@@ -96,6 +112,9 @@ class AccountCapabilities ...@@ -96,6 +112,9 @@ class AccountCapabilities
*/ */
public function getSavedSearchSetting() public function getSavedSearchSetting()
{ {
if (!$this->isAccountAvailable()) {
return 'disabled';
}
return isset($this->config->Site->allowSavedSearches) return isset($this->config->Site->allowSavedSearches)
&& !$this->config->Site->allowSavedSearches && !$this->config->Site->allowSavedSearches
? 'disabled' : 'enabled'; ? 'disabled' : 'enabled';
...@@ -108,8 +127,21 @@ class AccountCapabilities ...@@ -108,8 +127,21 @@ class AccountCapabilities
*/ */
public function getTagSetting() public function getTagSetting()
{ {
if (!$this->isAccountAvailable()) {
return 'disabled';
}
return isset($this->config->Social->tags) return isset($this->config->Social->tags)
&& $this->config->Social->tags === 'disabled' && $this->config->Social->tags === 'disabled'
? 'disabled' : 'enabled'; ? 'disabled' : 'enabled';
} }
/**
* Is a user account capable of saving data currently available?
*
* @return bool
*/
protected function isAccountAvailable()
{
return $this->auth->loginEnabled();
}
} }
...@@ -51,7 +51,8 @@ class Factory ...@@ -51,7 +51,8 @@ class Factory
public static function getAccountCapabilities(ServiceManager $sm) public static function getAccountCapabilities(ServiceManager $sm)
{ {
return new \VuFind\Config\AccountCapabilities( return new \VuFind\Config\AccountCapabilities(
$sm->get('VuFind\Config')->get('config') $sm->get('VuFind\Config')->get('config'),
$sm->get('VuFind\AuthManager')
); );
} }
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment