Browse Source

Create a singleton for the Configuration to prevent multiple requests from the DB

pull/676/head
Timothée Jaussoin 7 years ago
parent
commit
310847548e
  1. 12
      app/Configuration.php
  2. 2
      app/Post.php
  3. 4
      app/widgets/AdminMain/AdminMain.php
  4. 4
      app/widgets/Api/Api.php
  5. 2
      app/widgets/Chat/Chat.php
  6. 2
      app/widgets/Infos/Infos.php
  7. 4
      app/widgets/Login/Login.php
  8. 2
      app/widgets/Subscribe/Subscribe.php
  9. 4
      src/Movim/Bootstrap.php
  10. 2
      src/Movim/Console/ConfigCommand.php
  11. 2
      src/Movim/Console/DaemonCommand.php
  12. 2
      src/Movim/Emoji.php
  13. 4
      src/Movim/Template/Builder.php

12
app/Configuration.php

@ -8,6 +8,8 @@ class Configuration extends Model
{
protected $table = 'configuration';
private static $instance = null;
public $fillable = [
'description',
'info',
@ -34,6 +36,16 @@ class Configuration extends Model
'xmppwhitelist' => null
];
public static function get()
{
if (self::$instance != null) {
return self::$instance;
}
self::$instance = self::find(1);
return self::$instance;
}
public function setPasswordAttribute($value)
{
$this->attributes['password'] = password_hash($value, PASSWORD_DEFAULT);

2
app/Post.php

@ -139,7 +139,7 @@ class Post extends Model
public function scopeRestrictUserHost($query)
{
$configuration = Configuration::findOrNew(1);
$configuration = Configuration::get();
if ($configuration->restrictsuggestions) {
$query->whereIn('id', function($query) {

4
app/widgets/AdminMain/AdminMain.php

@ -10,7 +10,7 @@ class AdminMain extends \Movim\Widget\Base
$form = $_POST;
$configuration = Configuration::findOrNew(1);
$configuration = Configuration::get();
if (isset($form) && !empty($form)) {
if (isset($form['password'])
@ -51,7 +51,7 @@ class AdminMain extends \Movim\Widget\Base
{
$l = Movim\i18n\Locale::start();
$this->view->assign('conf', Configuration::findOrNew(1));
$this->view->assign('conf', Configuration::get());
$this->view->assign('logs', [
0 => $this->__('log.empty'),
1 => $this->__('log.syslog'),

4
app/widgets/Api/Api.php

@ -22,7 +22,7 @@ class Api extends Base
function ajaxUnregister()
{
$configuration = Configuration::findOrNew(1);
$configuration = Configuration::get();
$configuration->unregister = !$configuration->unregister;
$configuration->save();
@ -42,7 +42,7 @@ class Api extends Base
$json = requestURL(MOVIM_API.'pods/status', 2, ['url' => BASE_URI]);
$json = json_decode($json);
$configuration = Configuration::findOrNew(1);
$configuration = Configuration::get();
if (isset($json)) {
$this->view->assign('json', $json);

2
app/widgets/Chat/Chat.php

@ -773,7 +773,7 @@ class Chat extends \Movim\Widget\Base
->where('mucpublic', true)
->where('mucpersistent', true);
$conferences = (Configuration::findOrNew(1)->restrictsuggestions)
$conferences = (Configuration::get()->restrictsuggestions)
? $conferences->where('server', 'like', '%@%.' . $this->user->getServer())
: $conferences->where('server', 'like', '%@%');

2
app/widgets/Infos/Infos.php

@ -8,7 +8,7 @@ class Infos extends Base
{
function display()
{
$configuration = Configuration::findOrNew(1);
$configuration = Configuration::get();
$connected = (int)requestURL('http://localhost:1560/started/', 2);
$infos = [

4
app/widgets/Login/Login.php

@ -49,7 +49,7 @@ class Login extends Base
function display()
{
$configuration = Configuration::findOrNew(1);
$configuration = Configuration::get();
$this->view->assign('info', $configuration->info);
$this->view->assign('whitelist',$configuration->xmppwhitelist);
@ -180,7 +180,7 @@ class Login extends Base
private function doLogin($login, $password, $deviceId = false)
{
// We get the Server Configuration
$configuration = Configuration::findOrNew(1);
$configuration = Configuration::get();
// First we check the form
$validate_login = Validator::stringType()->length(1, 254);

2
app/widgets/Subscribe/Subscribe.php

@ -19,7 +19,7 @@ class Subscribe extends Base
{
$json = requestURL(MOVIM_API.'servers', 3, false, true);
$json = json_decode($json);
$this->view->assign('config', Configuration::findOrNew(1));
$this->view->assign('config', Configuration::get());
if (is_object($json) && $json->status == 200) {
$this->view->assign('servers', $json->servers);

4
src/Movim/Bootstrap.php

@ -241,7 +241,7 @@ class Bootstrap
$l->detect();
$l->loadPo();
} else {
$l->load(Configuration::findOrNew(1)->locale);
$l->load(Configuration::get()->locale);
}
}
@ -270,7 +270,7 @@ class Bootstrap
private function setLogLevel()
{
define('LOG_LEVEL', (int)Configuration::findOrNew(1)->loglevel);
define('LOG_LEVEL', (int)Configuration::get()->loglevel);
}
private function startingSession()

2
src/Movim/Console/ConfigCommand.php

@ -81,7 +81,7 @@ class ConfigCommand extends Command
protected function execute(InputInterface $input, OutputInterface $output)
{
$configuration = Configuration::findOrNew(1);
$configuration = Configuration::get();
foreach ($input->getOptions() as $key => $value) {
if (in_array($key, $configuration->fillable) && isset($value)) {

2
src/Movim/Console/DaemonCommand.php

@ -80,7 +80,7 @@ class DaemonCommand extends Command
$baseuri = rtrim($input->getOption('url'), '/') . '/';
$configuration = Configuration::findOrNew(1);
$configuration = Configuration::get();
if (empty($configuration->username) || empty($configuration->password)) {
$output->writeln('<comment>Please set a username and password for the admin panel (' . $baseuri . '?admin)</comment>');

2
src/Movim/Emoji.php

@ -81,7 +81,7 @@ class Emoji
$img->setAttribute('class', 'emoji');
$img->setAttribute('alt', $this->_emoji[$astext]);
$img->setAttribute('src', BASE_URI . 'themes/' .
\App\Configuration::findOrNew(1)->theme .
\App\Configuration::get()->theme .
'/img/emojis/svg/' . $astext . '.svg');
return $dom->saveXML($dom->documentElement);

4
src/Movim/Template/Builder.php

@ -23,7 +23,7 @@ class Builder
*/
function __construct()
{
$this->theme = Configuration::findOrNew(1)->theme;
$this->theme = Configuration::get()->theme;
$this->user = \App\User::me();
}
@ -177,7 +177,7 @@ class Builder
} else {
$meta = $dom->createElement('meta');
$meta->setAttribute('name', 'description');
$meta->setAttribute('content', Configuration::findOrNew(1)->description);
$meta->setAttribute('content', Configuration::get()->description);
$metas->appendChild($meta);
}

Loading…
Cancel
Save