aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rwxr-xr-xapp/Controllers/configureController.php33
-rw-r--r--app/Controllers/userController.php24
-rw-r--r--app/i18n/cz/admin.php14
-rw-r--r--app/i18n/cz/feedback.php1
-rw-r--r--app/i18n/cz/gen.php1
-rw-r--r--app/i18n/de/admin.php14
-rw-r--r--app/i18n/de/feedback.php1
-rw-r--r--app/i18n/de/gen.php1
-rw-r--r--app/i18n/en/admin.php14
-rw-r--r--app/i18n/en/feedback.php1
-rw-r--r--app/i18n/en/gen.php1
-rw-r--r--app/i18n/fr/admin.php14
-rw-r--r--app/i18n/fr/feedback.php1
-rw-r--r--app/i18n/fr/gen.php1
-rw-r--r--app/layout/aside_configure.phtml3
-rw-r--r--app/layout/header.phtml1
-rw-r--r--app/views/configure/system.phtml47
-rw-r--r--app/views/user/manage.phtml28
18 files changed, 124 insertions, 76 deletions
diff --git a/app/Controllers/configureController.php b/app/Controllers/configureController.php
index 248a3edcc..7a4d0ecd7 100755
--- a/app/Controllers/configureController.php
+++ b/app/Controllers/configureController.php
@@ -293,4 +293,37 @@ class FreshRSS_configure_Controller extends Minz_ActionController {
Minz_Request::good(_t('feedback.conf.query_created', $query['name']),
array('c' => 'configure', 'a' => 'queries'));
}
+
+ /**
+ * This action handles the system configuration page.
+ *
+ * It displays the system configuration page.
+ * If this action is reach through a POST request, it stores all new
+ * configuration values then sends a notification to the user.
+ *
+ * The options available on the page are:
+ * - user limit (default: 1)
+ * - user category limit (default: 16384)
+ * - user feed limit (default: 16384)
+ */
+ public function systemAction() {
+ if (!FreshRSS_Auth::hasAccess('admin')) {
+ Minz_Error::error(403);
+ }
+ if (Minz_Request::isPost()) {
+ $limits = FreshRSS_Context::$system_conf->limits;
+ $limits['max_registrations'] = Minz_Request::param('max-registrations', 1);
+ $limits['max_feeds'] = Minz_Request::param('max-feeds', 16384);
+ $limits['max_categories'] = Minz_Request::param('max-categories', 16384);
+ FreshRSS_Context::$system_conf->limits = $limits;
+ FreshRSS_Context::$system_conf->save();
+
+ invalidateHttpCache();
+
+ Minz_Session::_param('notification', array(
+ 'type' => 'good',
+ 'content' => _t('feedback.conf.updated')
+ ));
+ }
+ }
}
diff --git a/app/Controllers/userController.php b/app/Controllers/userController.php
index 428cd145d..1c7d621f1 100644
--- a/app/Controllers/userController.php
+++ b/app/Controllers/userController.php
@@ -272,28 +272,4 @@ class FreshRSS_user_Controller extends Minz_ActionController {
Minz_Request::forward($redirect_url, true);
}
-
- /**
- * This action updates the max number of registrations.
- *
- * Request parameter is:
- * - max-registrations (int >= 0)
- */
- public function setRegistrationAction() {
- if (Minz_Request::isPost() && FreshRSS_Auth::hasAccess('admin')) {
- $limits = FreshRSS_Context::$system_conf->limits;
- $limits['max_registrations'] = Minz_Request::param('max-registrations', 1);
- FreshRSS_Context::$system_conf->limits = $limits;
- FreshRSS_Context::$system_conf->save();
-
- invalidateHttpCache();
-
- Minz_Session::_param('notification', array(
- 'type' => 'good',
- 'content' => _t('feedback.user.set_registration')
- ));
- }
-
- Minz_Request::forward(array('c' => 'user', 'a' => 'manage'), true);
- }
}
diff --git a/app/i18n/cz/admin.php b/app/i18n/cz/admin.php
index 4ca56cc37..92c300709 100644
--- a/app/i18n/cz/admin.php
+++ b/app/i18n/cz/admin.php
@@ -146,6 +146,15 @@ return array(
'title' => 'Statistika',
'top_feed' => 'Top ten kanálů',
),
+ 'system' => array(
+ '_' => 'System configuration',
+ 'max-categories' => 'Categories per user limit',
+ 'max-feeds' => 'Feeds per user limit',
+ 'registration' => array(
+ 'help' => '0 znamená žádná omezení účtu',
+ 'number' => 'Maximální počet účtů',
+ ),
+ ),
'update' => array(
'_' => 'Aktualizace systému',
'apply' => 'Použít',
@@ -164,11 +173,6 @@ return array(
'numbers' => 'Zatím je vytvořeno %d účtů',
'password_form' => 'Heslo<br /><small>(pro přihlášení webovým formulářem)</small>',
'password_format' => 'Alespoň 7 znaků',
- 'registration' => array(
- 'allow' => 'Povolit vytváření účtů',
- 'help' => '0 znamená žádná omezení účtu',
- 'number' => 'Maximální počet účtů',
- ),
'title' => 'Správa uživatelů',
'user_list' => 'Seznam uživatelů',
'username' => 'Přihlašovací jméno',
diff --git a/app/i18n/cz/feedback.php b/app/i18n/cz/feedback.php
index 5ba64b938..b75a4a15a 100644
--- a/app/i18n/cz/feedback.php
+++ b/app/i18n/cz/feedback.php
@@ -102,7 +102,6 @@ return array(
'_' => 'Uživatel %s byl smazán',
'error' => 'Uživatele %s nelze smazat',
),
- 'set_registration' => 'Maximální počet účtů byl změněn',
),
'profile' => array(
'error' => 'Váš profil nelze změnit',
diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php
index 138def772..436e4f0c2 100644
--- a/app/i18n/cz/gen.php
+++ b/app/i18n/cz/gen.php
@@ -137,6 +137,7 @@ return array(
'sharing' => 'Sdílení',
'shortcuts' => 'Zkratky',
'stats' => 'Statistika',
+ 'system' => 'System configuration',
'update' => 'Aktualizace',
'user_management' => 'Správa uživatelů',
'user_profile' => 'Profil',
diff --git a/app/i18n/de/admin.php b/app/i18n/de/admin.php
index 68dcc2ebf..365f065af 100644
--- a/app/i18n/de/admin.php
+++ b/app/i18n/de/admin.php
@@ -146,6 +146,15 @@ return array(
'title' => 'Statistiken',
'top_feed' => 'Top 10-Feeds',
),
+ 'system' => array(
+ '_' => 'System configuration',
+ 'max-categories' => 'Categories per user limit',
+ 'max-feeds' => 'Feeds per user limit',
+ 'registration' => array(
+ 'help' => '0 meint, dass es kein Account Limit gibt',
+ 'number' => 'Maximale Anzahl von Accounts',
+ ),
+ ),
'update' => array(
'_' => 'System aktualisieren',
'apply' => 'Anwenden',
@@ -164,11 +173,6 @@ return array(
'numbers' => 'Es wurden bis jetzt %d Accounts erstellt',
'password_form' => 'Passwort<br /><small>(für die Anmeldemethode per Webformular)</small>',
'password_format' => 'mindestens 7 Zeichen',
- 'registration' => array(
- 'allow' => 'Erlaube die Accounterstellung',
- 'help' => '0 meint, dass es kein Account Limit gibt',
- 'number' => 'Maximale Anzahl von Accounts',
- ),
'title' => 'Benutzer verwalten',
'user_list' => 'Liste der Benutzer',
'username' => 'Nutzername',
diff --git a/app/i18n/de/feedback.php b/app/i18n/de/feedback.php
index e92dacfe9..4c15aadc3 100644
--- a/app/i18n/de/feedback.php
+++ b/app/i18n/de/feedback.php
@@ -102,7 +102,6 @@ return array(
'_' => 'Der Benutzer %s ist gelöscht worden',
'error' => 'Der Benutzer %s kann nicht gelöscht werden',
),
- 'set_registration' => 'Die maximale Anzahl von Accounts wurde aktualisiert.',
),
'profile' => array(
'error' => 'Ihr Profil kann nicht geändert werden',
diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php
index de2d846c5..f3450abc0 100644
--- a/app/i18n/de/gen.php
+++ b/app/i18n/de/gen.php
@@ -137,6 +137,7 @@ return array(
'sharing' => 'Teilen',
'shortcuts' => 'Tastaturkürzel',
'stats' => 'Statistiken',
+ 'system' => 'System configuration',
'update' => 'Aktualisieren',
'user_management' => 'Benutzer verwalten',
'user_profile' => 'Profil',
diff --git a/app/i18n/en/admin.php b/app/i18n/en/admin.php
index aeea61631..ad9038203 100644
--- a/app/i18n/en/admin.php
+++ b/app/i18n/en/admin.php
@@ -146,6 +146,15 @@ return array(
'title' => 'Statistics',
'top_feed' => 'Top ten feeds',
),
+ 'system' => array(
+ '_' => 'System configuration',
+ 'max-categories' => 'Categories per user limit',
+ 'max-feeds' => 'Feeds per user limit',
+ 'registration' => array(
+ 'help' => '0 means that there is no account limit',
+ 'number' => 'Max number of accounts',
+ ),
+ ),
'update' => array(
'_' => 'Update system',
'apply' => 'Apply',
@@ -164,11 +173,6 @@ return array(
'numbers' => 'There are %d accounts created yet',
'password_form' => 'Password<br /><small>(for the Web-form login method)</small>',
'password_format' => 'At least 7 characters',
- 'registration' => array(
- 'allow' => 'Allow account creation',
- 'help' => '0 means that there is no account limit',
- 'number' => 'Max number of accounts',
- ),
'title' => 'Manage users',
'user_list' => 'List of users',
'username' => 'Username',
diff --git a/app/i18n/en/feedback.php b/app/i18n/en/feedback.php
index c9f73dc1d..c9189c0d0 100644
--- a/app/i18n/en/feedback.php
+++ b/app/i18n/en/feedback.php
@@ -102,7 +102,6 @@ return array(
'_' => 'User %s has been deleted',
'error' => 'User %s cannot be deleted',
),
- 'set_registration' => 'The maximum amount of accounts has been updated.',
),
'profile' => array(
'error' => 'Your profile cannot be modified',
diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php
index 1feb8d6ac..9aef45768 100644
--- a/app/i18n/en/gen.php
+++ b/app/i18n/en/gen.php
@@ -137,6 +137,7 @@ return array(
'sharing' => 'Sharing',
'shortcuts' => 'Shortcuts',
'stats' => 'Statistics',
+ 'system' => 'System configuration',
'update' => 'Update',
'user_management' => 'Manage users',
'user_profile' => 'Profile',
diff --git a/app/i18n/fr/admin.php b/app/i18n/fr/admin.php
index 01e0cb3c7..44e013c2f 100644
--- a/app/i18n/fr/admin.php
+++ b/app/i18n/fr/admin.php
@@ -146,6 +146,15 @@ return array(
'title' => 'Statistiques',
'top_feed' => 'Les dix plus gros flux',
),
+ 'system' => array(
+ '_' => 'Configuration du système',
+ 'max-categories' => 'Limite de catégories par utilisateur',
+ 'max-feeds' => 'Limite de flux par utilisateur',
+ 'registration' => array(
+ 'help' => 'Un chiffre de 0 signifie que l’on peut créer un nombre infini de comptes',
+ 'number' => 'Nombre max de comptes',
+ ),
+ ),
'update' => array(
'_' => 'Système de mise à jour',
'apply' => 'Appliquer la mise à jour',
@@ -164,11 +173,6 @@ return array(
'numbers' => '%d comptes ont déjà été créés',
'password_form' => 'Mot de passe<br /><small>(pour connexion par formulaire)</small>',
'password_format' => '7 caractères minimum',
- 'registration' => array(
- 'allow' => 'Autoriser la création de comptes',
- 'help' => 'Un chiffre de 0 signifie que l’on peut créer un nombre infini de comptes',
- 'number' => 'Nombre max de comptes',
- ),
'title' => 'Gestion des utilisateurs',
'user_list' => 'Liste des utilisateurs',
'username' => 'Nom d’utilisateur',
diff --git a/app/i18n/fr/feedback.php b/app/i18n/fr/feedback.php
index 99c193d28..e2364a251 100644
--- a/app/i18n/fr/feedback.php
+++ b/app/i18n/fr/feedback.php
@@ -102,7 +102,6 @@ return array(
'_' => 'L’utilisateur %s a été supprimé.',
'error' => 'L’utilisateur %s ne peut pas être supprimé.',
),
- 'set_registration' => 'Le nombre maximal de comptes a été mis à jour.',
),
'profile' => array(
'error' => 'Votre profil n’a pas pu être mis à jour',
diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php
index 67d278be4..9df5b6f05 100644
--- a/app/i18n/fr/gen.php
+++ b/app/i18n/fr/gen.php
@@ -137,6 +137,7 @@ return array(
'sharing' => 'Partage',
'shortcuts' => 'Raccourcis',
'stats' => 'Statistiques',
+ 'system' => 'Configuration du système',
'update' => 'Mise à jour',
'user_management' => 'Gestion des utilisateurs',
'user_profile' => 'Profil',
diff --git a/app/layout/aside_configure.phtml b/app/layout/aside_configure.phtml
index 7567a8206..d956ec21f 100644
--- a/app/layout/aside_configure.phtml
+++ b/app/layout/aside_configure.phtml
@@ -27,6 +27,9 @@
</li>
<?php if (FreshRSS_Auth::hasAccess('admin')) { ?>
<li class="nav-header"><?php echo _t('gen.menu.admin'); ?></li>
+ <li class="item<?php echo Minz_Request::actionName() === 'system' ? ' active' : ''; ?>">
+ <a href="<?php echo _url('configure', 'system')?>"><?php echo _t('gen.menu.system'); ?></a>
+ </li>
<li class="item<?php echo Minz_Request::controllerName() === 'user' &&
Minz_Request::actionName() === 'manage' ? ' active' : ''; ?>">
<a href="<?php echo _url('user', 'manage'); ?>"><?php echo _t('gen.menu.user_management'); ?></a>
diff --git a/app/layout/header.phtml b/app/layout/header.phtml
index 41a63a565..238c664b0 100644
--- a/app/layout/header.phtml
+++ b/app/layout/header.phtml
@@ -67,6 +67,7 @@ if (FreshRSS_Auth::accessNeedsAction()) {
<?php if (FreshRSS_Auth::hasAccess('admin')) { ?>
<li class="separator"></li>
<li class="dropdown-header"><?php echo _t('gen.menu.admin'); ?></li>
+ <li class="item"><a href="<?php echo _url('configure', 'system'); ?>"><?php echo _t('gen.menu.system'); ?></a></li>
<li class="item"><a href="<?php echo _url('user', 'manage'); ?>"><?php echo _t('gen.menu.user_management'); ?></a></li>
<li class="item"><a href="<?php echo _url('auth', 'index'); ?>"><?php echo _t('gen.menu.authentication'); ?></a></li>
<li class="item"><a href="<?php echo _url('update', 'checkInstall'); ?>"><?php echo _t('gen.menu.check_install'); ?></a></li>
diff --git a/app/views/configure/system.phtml b/app/views/configure/system.phtml
new file mode 100644
index 000000000..cbedc511b
--- /dev/null
+++ b/app/views/configure/system.phtml
@@ -0,0 +1,47 @@
+<?php $this->partial('aside_configure'); ?>
+
+<div class="post">
+ <a href="<?php echo _url('index', 'index'); ?>"><?php echo _t('gen.action.back_to_rss_feeds'); ?></a>
+
+ <form method="post" action="<?php echo _url('configure', 'system'); ?>">
+ <legend><?php echo _t('admin.system'); ?></legend>
+
+ <div class="form-group">
+ <label class="group-name" for="max-registrations"><?php echo _t('admin.system.registration.number'); ?></label>
+ <div class="group-controls">
+ <input type="number" id="max-registrations" name="max-registrations" value="<?php echo FreshRSS_Context::$system_conf->limits['max_registrations']; ?>" min="0" data-leave-validation="<?php echo FreshRSS_Context::$system_conf->limits['max_registrations']; ?>"/>
+ <?php echo _i('help'); ?> <?php echo _t('admin.system.registration.help'); ?>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <div class="group-controls">
+ <?php
+ $number = count(listUsers());
+ echo _t($number > 1 ? 'admin.user.numbers' : 'admin.user.number', $number);
+ ?>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="group-name" for="max-feeds"><?php echo _t('admin.system.max-feeds'); ?></label>
+ <div class="group-controls">
+ <input type="number" id="max-feeds" name="max-feeds" value="<?php echo FreshRSS_Context::$system_conf->limits['max_feeds']; ?>" min="1" data-leave-validation="<?php echo FreshRSS_Context::$system_conf->limits['max_feeds']; ?>"/>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="group-name" for="max-categories"><?php echo _t('admin.system.max-categories'); ?></label>
+ <div class="group-controls">
+ <input type="number" id="max-categories" name="max-categories" value="<?php echo FreshRSS_Context::$system_conf->limits['max_categories']; ?>" min="1" data-leave-validation="<?php echo FreshRSS_Context::$system_conf->limits['max_categories']; ?>"/>
+ </div>
+ </div>
+
+ <div class="form-group form-actions">
+ <div class="group-controls">
+ <button type="submit" class="btn btn-important"><?php echo _t('gen.action.submit'); ?></button>
+ <button type="reset" class="btn"><?php echo _t('gen.action.cancel'); ?></button>
+ </div>
+ </div>
+ </form>
+</div> \ No newline at end of file
diff --git a/app/views/user/manage.phtml b/app/views/user/manage.phtml
index 3d3bc3ddf..fe1b6618b 100644
--- a/app/views/user/manage.phtml
+++ b/app/views/user/manage.phtml
@@ -3,34 +3,6 @@
<div class="post">
<a href="<?php echo _url('index', 'index'); ?>"><?php echo _t('gen.action.back_to_rss_feeds'); ?></a>
- <form method="post" action="<?php echo _url('user', 'setRegistration'); ?>">
- <legend><?php echo _t('admin.user.registration.allow'); ?></legend>
-
- <div class="form-group">
- <label class="group-name" for="max-registrations"><?php echo _t('admin.user.registration.number'); ?></label>
- <div class="group-controls">
- <input type="number" id="max-registrations" name="max-registrations" value="<?php echo FreshRSS_Context::$system_conf->limits['max_registrations']; ?>" min="0" data-leave-validation="<?php echo FreshRSS_Context::$system_conf->limits['max_registrations']; ?>"/>
- <?php echo _i('help'); ?> <?php echo _t('admin.user.registration.help'); ?>
- </div>
- </div>
-
- <div class="form-group">
- <div class="group-controls">
- <?php
- $number = count(listUsers());
- echo _t($number > 1 ? 'admin.user.numbers' : 'admin.user.number', $number);
- ?>
- </div>
- </div>
-
- <div class="form-group form-actions">
- <div class="group-controls">
- <button type="submit" class="btn btn-important"><?php echo _t('gen.action.submit'); ?></button>
- <button type="reset" class="btn"><?php echo _t('gen.action.cancel'); ?></button>
- </div>
- </div>
- </form>
-
<form method="post" action="<?php echo _url('user', 'create'); ?>">
<legend><?php echo _t('admin.user.create'); ?></legend>