aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/lib/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'lib/plugins')
-rw-r--r--lib/plugins/acl/lang/sr/lang.php3
-rw-r--r--lib/plugins/authad/lang/es/settings.php2
-rw-r--r--lib/plugins/authad/lang/fr/settings.php5
-rw-r--r--lib/plugins/authad/lang/it/settings.php2
-rw-r--r--lib/plugins/authad/lang/nl/settings.php3
-rw-r--r--lib/plugins/authad/lang/pt-br/settings.php3
-rw-r--r--lib/plugins/authad/lang/pt/lang.php2
-rw-r--r--lib/plugins/authad/lang/pt/settings.php3
-rw-r--r--lib/plugins/authad/lang/ru/settings.php2
-rw-r--r--lib/plugins/authad/lang/sr/settings.php5
-rw-r--r--lib/plugins/authad/lang/zh/settings.php2
-rw-r--r--lib/plugins/authldap/lang/pt/settings.php2
-rw-r--r--lib/plugins/authldap/lang/sr/settings.php9
-rw-r--r--lib/plugins/authpdo/lang/nl/settings.php10
-rw-r--r--lib/plugins/authpdo/lang/pt/lang.php2
-rw-r--r--lib/plugins/authpdo/lang/pt/settings.php13
-rw-r--r--lib/plugins/authpdo/lang/sk/settings.php25
-rw-r--r--lib/plugins/authplain/_test/conf/auth.users.php16
-rw-r--r--lib/plugins/authplain/_test/userdata.test.php64
-rw-r--r--lib/plugins/authplain/auth.php24
-rw-r--r--lib/plugins/config/lang/it/lang.php1
-rw-r--r--lib/plugins/config/lang/nl/lang.php3
-rw-r--r--lib/plugins/config/lang/no/lang.php1
-rw-r--r--lib/plugins/config/lang/pt/lang.php7
-rw-r--r--lib/plugins/config/lang/sk/lang.php7
-rw-r--r--lib/plugins/config/lang/sr/lang.php3
-rw-r--r--lib/plugins/config/lang/zh/lang.php1
-rw-r--r--lib/plugins/extension/admin.php2
-rw-r--r--lib/plugins/extension/cli.php357
-rw-r--r--lib/plugins/extension/helper/repository.php6
-rw-r--r--lib/plugins/extension/lang/pt/lang.php1
-rw-r--r--lib/plugins/extension/lang/sk/lang.php21
-rw-r--r--lib/plugins/popularity/lang/sr/lang.php3
-rw-r--r--lib/plugins/revert/lang/no/lang.php1
-rw-r--r--lib/plugins/revert/lang/sr/lang.php3
-rw-r--r--lib/plugins/usermanager/lang/pt/lang.php1
-rw-r--r--lib/plugins/usermanager/lang/sr/lang.php3
37 files changed, 581 insertions, 37 deletions
diff --git a/lib/plugins/acl/lang/sr/lang.php b/lib/plugins/acl/lang/sr/lang.php
index 0ba322a5e..f2c95484d 100644
--- a/lib/plugins/acl/lang/sr/lang.php
+++ b/lib/plugins/acl/lang/sr/lang.php
@@ -4,8 +4,7 @@
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Filip Brcic <brcha@users.sourceforge.net>
- * @author Иван Петровић petrovicivan@ubuntusrbija.org
- * @author Ivan Petrovic <petrovicivan@ubuntusrbija.org>
+ * @author Иван Петровић <petrovicivan@ubuntusrbija.org>
* @author Miroslav Šolti <solti.miroslav@gmail.com>
*/
$lang['admin_acl'] = 'Управљање листом контроле приступа';
diff --git a/lib/plugins/authad/lang/es/settings.php b/lib/plugins/authad/lang/es/settings.php
index 789222236..c329c8e7f 100644
--- a/lib/plugins/authad/lang/es/settings.php
+++ b/lib/plugins/authad/lang/es/settings.php
@@ -3,6 +3,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
+ * @author Liliana <lilianasaidon@gmail.com>
* @author monica <may.dorado@gmail.com>
* @author Antonio Bueno <atnbueno@gmail.com>
* @author Juan De La Cruz <juann.dlc@gmail.com>
@@ -24,3 +25,4 @@ $lang['expirywarn'] = 'Días por adelantado para avisar al usuario de
$lang['additional'] = 'Una lista separada por comas de atributos AD adicionales a obtener de los datos de usuario. Usado por algunos plugins.';
$lang['update_name'] = '¿Permitir a los usuarios actualizar su nombre de AD?';
$lang['update_mail'] = '¿Permitir a los usuarios actualizar su email?';
+$lang['recursive_groups'] = 'Restituir los grupos anidados a sus respectivos miembros (más lento)';
diff --git a/lib/plugins/authad/lang/fr/settings.php b/lib/plugins/authad/lang/fr/settings.php
index f747c08ae..f0717c7a8 100644
--- a/lib/plugins/authad/lang/fr/settings.php
+++ b/lib/plugins/authad/lang/fr/settings.php
@@ -3,16 +3,16 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
+ * @author Schplurtz le Déboulonné <schplurtz@laposte.net>
* @author Bruno Veilleux <bruno.vey@gmail.com>
* @author Momo50 <c.brothelande@gmail.com>
- * @author Schplurtz le Déboulonné <Schplurtz@laposte.net>
*/
$lang['account_suffix'] = 'Le suffixe de votre compte. Ex.: <code>@mon.domaine.org</code>';
$lang['base_dn'] = 'Votre nom de domaine de base. <code>DC=mon,DC=domaine,DC=org</code>';
$lang['domain_controllers'] = 'Une liste de contrôleurs de domaine séparés par des virgules. Ex.: <code>srv1.domaine.org,srv2.domaine.org</code>';
$lang['admin_username'] = 'Un utilisateur Active Directory avec accès aux données de tous les autres utilisateurs. Facultatif, mais nécessaire pour certaines actions telles que l\'envoi de courriels d\'abonnement.';
$lang['admin_password'] = 'Le mot de passe de l\'utilisateur ci-dessus.';
-$lang['sso'] = 'Est-ce que la connexion unique (Single-Sign-On) par Kerberos ou NTLM doit être utilisée?';
+$lang['sso'] = 'Est-ce que l\'authentification unique (Single-Sign-On) par Kerberos ou NTLM doit être utilisée?';
$lang['sso_charset'] = 'Le jeu de caractères de votre serveur web va passer le nom d\'utilisateur Kerberos ou NTLM. Vide pour UTF-8 ou latin-1. Nécessite l\'extension iconv.';
$lang['real_primarygroup'] = 'Est-ce que le véritable groupe principal doit être résolu au lieu de présumer "Domain Users" (plus lent)?';
$lang['use_ssl'] = 'Utiliser une connexion SSL? Si utilisée, n\'activez pas TLS ci-dessous.';
@@ -22,3 +22,4 @@ $lang['expirywarn'] = 'Jours d\'avance pour l\'avertissement envoyé
$lang['additional'] = 'Une liste séparée par des virgules d\'attributs AD supplémentaires à récupérer dans les données utilisateur. Utilisée par certains modules.';
$lang['update_name'] = 'Autoriser les utilisateurs à modifier leur nom affiché de l\'AD ?';
$lang['update_mail'] = 'Autoriser les utilisateurs à modifier leur adresse de courriel ?';
+$lang['recursive_groups'] = 'Résoudre les groupes imbriqués à leur membres respectifs (plus lent).';
diff --git a/lib/plugins/authad/lang/it/settings.php b/lib/plugins/authad/lang/it/settings.php
index 9fd82352a..8d641720b 100644
--- a/lib/plugins/authad/lang/it/settings.php
+++ b/lib/plugins/authad/lang/it/settings.php
@@ -3,6 +3,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
+ * @author Roberto Bellingeri <bellingeri@netguru.it>
* @author Edmondo Di Tucci <snarchio@gmail.com>
* @author Torpedo <dgtorpedo@gmail.com>
*/
@@ -21,3 +22,4 @@ $lang['expirywarn'] = 'Giorni di preavviso per la scadenza della pass
$lang['additional'] = 'Valori separati da virgola di attributi AD addizionali da caricare dai dati utente. Usato da alcuni plugin.';
$lang['update_name'] = 'Permettere agli utenti di aggiornare il loro nome AD visualizzato? ';
$lang['update_mail'] = 'Permettere agli utenti di aggiornare il loro indirizzo e-mail?';
+$lang['recursive_groups'] = 'Risolvi i gruppi nidificati ai rispettivi membri (più lento).';
diff --git a/lib/plugins/authad/lang/nl/settings.php b/lib/plugins/authad/lang/nl/settings.php
index c0be12e79..b8b58a1bb 100644
--- a/lib/plugins/authad/lang/nl/settings.php
+++ b/lib/plugins/authad/lang/nl/settings.php
@@ -3,8 +3,8 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
- * @author Remon <no@email.local>
* @author Gerrit Uitslag <klapinklapin@gmail.com>
+ * @author Remon <no@email.local>
* @author Sjoerd <sjoerd@sjomar.eu>
*/
$lang['account_suffix'] = 'Je account domeinnaam. Bijv <code>@mijn.domein.org</code>';
@@ -22,3 +22,4 @@ $lang['expirywarn'] = 'Waarschuwingstermijn voor vervallen wachtwoord
$lang['additional'] = 'Een kommagescheiden lijst van extra AD attributen van de gebruiker. Wordt gebruikt door sommige plugins.';
$lang['update_name'] = 'Sta gebruikers toe om hun getoonde AD naam bij te werken';
$lang['update_mail'] = 'Sta gebruikers toe hun email adres bij te werken';
+$lang['recursive_groups'] = 'Zoek voor de geneste groepen hun respectievelijke leden op (langzamer).';
diff --git a/lib/plugins/authad/lang/pt-br/settings.php b/lib/plugins/authad/lang/pt-br/settings.php
index 1231077da..d606682aa 100644
--- a/lib/plugins/authad/lang/pt-br/settings.php
+++ b/lib/plugins/authad/lang/pt-br/settings.php
@@ -3,8 +3,8 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
+ * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
* @author Victor Westmann <victor.westmann@gmail.com>
- * @author Frederico Guimarães <frederico@teia.bio.br>
* @author Juliano Marconi Lanigra <juliano.marconi@gmail.com>
* @author Viliam Dias <viliamjr@gmail.com>
*/
@@ -23,3 +23,4 @@ $lang['expirywarn'] = 'Dias com antecedência para avisar o usuário
$lang['additional'] = 'Uma lista separada de vírgulas de atributos adicionais AD para pegar dados de usuários. Usados por alguns plugins.';
$lang['update_name'] = 'Permitir aos usuários que atualizem seus nomes de exibição AD?';
$lang['update_mail'] = 'Permitir aos usuários que atualizem seu endereço de e-mail?';
+$lang['recursive_groups'] = 'Resolver grupos aninhados para seus respectivos membros (mais lento).';
diff --git a/lib/plugins/authad/lang/pt/lang.php b/lib/plugins/authad/lang/pt/lang.php
index 4f8266b5b..5f767fa35 100644
--- a/lib/plugins/authad/lang/pt/lang.php
+++ b/lib/plugins/authad/lang/pt/lang.php
@@ -3,6 +3,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
+ * @author Maykon Oliveira <maykonoliveira850@gmail.com>
* @author Paulo Silva <paulotsilva@yahoo.com>
* @author André Neves <drakferion@gmail.com>
* @author Paulo Carmino <contato@paulocarmino.com>
@@ -10,4 +11,5 @@
$lang['domain'] = 'Domínio de Início de Sessão';
$lang['authpwdexpire'] = 'A sua senha expirará dentro de %d dias, deve mudá-la em breve.';
$lang['passchangefail'] = 'Falha ao alterar a senha. Tente prosseguir com uma senha mais segura.';
+$lang['userchangefail'] = 'Não foi possível alterar os atributos do usuário. Talvez sua conta não tenha permissões para fazer alterações?';
$lang['connectfail'] = 'Falha ao conectar com o servidor Active Directory.';
diff --git a/lib/plugins/authad/lang/pt/settings.php b/lib/plugins/authad/lang/pt/settings.php
index b734c4800..36668229a 100644
--- a/lib/plugins/authad/lang/pt/settings.php
+++ b/lib/plugins/authad/lang/pt/settings.php
@@ -3,6 +3,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
+ * @author Maykon Oliveira <maykonoliveira850@gmail.com>
* @author André Neves <drakferion@gmail.com>
* @author Murilo <muriloricci@hotmail.com>
* @author Paulo Silva <paulotsilva@yahoo.com>
@@ -22,4 +23,6 @@ $lang['use_tls'] = 'Usar ligação TLS? Se usada, não ative SSL a
$lang['debug'] = 'Deve-se mostrar saída adicional de depuração de erros?';
$lang['expirywarn'] = 'Número de dias de avanço para avisar o utilizador da expiração da senha. 0 para desativar.';
$lang['additional'] = 'Uma lista separada por vírgula de atributos adicionais de AD para buscar a partir de dados do usuário. Usado por alguns plugins.';
+$lang['update_name'] = 'Permitir que os usuários atualizem seu nome de exibição do AD?';
$lang['update_mail'] = 'Permitir que usuários atualizem seus endereços de e-mail?';
+$lang['recursive_groups'] = 'Resolve grupos aninhados para seus respectivos membros (mais lentos).';
diff --git a/lib/plugins/authad/lang/ru/settings.php b/lib/plugins/authad/lang/ru/settings.php
index d6bc8fc8a..81b3296bd 100644
--- a/lib/plugins/authad/lang/ru/settings.php
+++ b/lib/plugins/authad/lang/ru/settings.php
@@ -3,6 +3,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
+ * @author Alexander Kh. <001.arx@gmail.com>
* @author Yuriy Skalko <yuriy.skalko@gmail.com>
* @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua)
* @author Aleksandr Selivanov <alexgearbox@gmail.com>
@@ -28,3 +29,4 @@ $lang['expirywarn'] = 'За сколько дней нужно пре
$lang['additional'] = 'Дополнительные AD-атрибуты, разделённые запятой, для выборки из данных пользователя. Используется некоторыми плагинами.';
$lang['update_name'] = 'Разрешить пользователям редактировать свое AD-имя?';
$lang['update_mail'] = 'Разрешить пользователям редактировать свой электронный адрес?';
+$lang['recursive_groups'] = 'Разрешить вложенные группы их соответствующим членам.';
diff --git a/lib/plugins/authad/lang/sr/settings.php b/lib/plugins/authad/lang/sr/settings.php
index 5e4409cc3..41e3fa48c 100644
--- a/lib/plugins/authad/lang/sr/settings.php
+++ b/lib/plugins/authad/lang/sr/settings.php
@@ -3,6 +3,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
+ * @author Milan Oparnica <milan.opa@gmail.com>
* @author Марко М. Костић <marko.m.kostic@gmail.com>
*/
$lang['account_suffix'] = 'Суфикс на вашем налогу. Нпр.: <code>@moj.domen.rs</code>';
@@ -11,9 +12,13 @@ $lang['domain_controllers'] = 'Списак доменских контрол
$lang['admin_username'] = 'Повлашћени Active Directory корисник са приступом подацима свих корисника. Изборно али је потребно за одређене радње као што је слање мејлова о претплаћивању.';
$lang['admin_password'] = 'Лозинка за корисника изнад.';
$lang['sso'] = 'Да ли треба да се користи Single-Sign-On преко Кербероса или NTLM-а?';
+$lang['sso_charset'] = 'Znakovni kod u kom će vaš webserver proslediti Kerberos ili NTLM serveru vaše ime. Ostavite prazno za UTF-8 ili latin-1. Zahteva iconv ekstenziju.';
+$lang['real_primarygroup'] = 'Da li treba razrešiti pravu primarnu grupu ili pretpostaviti grupu "Domain Users" (sporije)';
$lang['use_ssl'] = 'Користити SSL везу? Ако се користи, не омогућујте TLS испод.';
$lang['use_tls'] = 'Користити TLS везу? Ако се користи, не омогућујте SSL испод.';
$lang['debug'] = 'Приказати додатан излаз за поправљање грешака код настанка грешака?';
$lang['expirywarn'] = 'Дана унапред за које треба упозорити корисника на истицање лозинке. 0 за искључивање.';
+$lang['additional'] = 'Spisak dodatni AD atributa, razdvojen zarezima, koje treba preuzeti iz korisničkih podataka. Koristi se u nekim dodacima (plugin).';
$lang['update_name'] = 'Дозволити корисницима да ажурирају њихово AD приказно име?';
$lang['update_mail'] = 'Дозволити корисницима да ажурирају њихове мејл адрсе?';
+$lang['recursive_groups'] = 'Razrešenje ugnježdenih grupa do nivoa pripadajućih članova (sporije)';
diff --git a/lib/plugins/authad/lang/zh/settings.php b/lib/plugins/authad/lang/zh/settings.php
index 1ccadd318..7a0d39b64 100644
--- a/lib/plugins/authad/lang/zh/settings.php
+++ b/lib/plugins/authad/lang/zh/settings.php
@@ -3,6 +3,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
+ * @author HaoNan <haonan@zhuoming.info>
* @author lainme <lainme993@gmail.com>
* @author oott123 <ip.192.168.1.1@qq.com>
* @author JellyChen <451453325@qq.com>
@@ -23,3 +24,4 @@ $lang['expirywarn'] = '提前多少天警告用户密码即将到期
$lang['additional'] = '需要从用户数据中获取的额外 AD 属性的列表,以逗号分隔。用于某些插件。';
$lang['update_name'] = '允许用户更新其AD显示名称?';
$lang['update_mail'] = '是否允许用户更新他们的电子邮件地址?';
+$lang['recursive_groups'] = '将嵌套组拆分为各自的成员(较慢)';
diff --git a/lib/plugins/authldap/lang/pt/settings.php b/lib/plugins/authldap/lang/pt/settings.php
index ff308c68e..ba565ae3d 100644
--- a/lib/plugins/authldap/lang/pt/settings.php
+++ b/lib/plugins/authldap/lang/pt/settings.php
@@ -3,6 +3,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
+ * @author Maykon Oliveira <maykonoliveira850@gmail.com>
* @author André Neves <drakferion@gmail.com>
* @author Guido Salatino <guidorafael23@gmail.com>
* @author Romulo Pereira <romuloccomp@gmail.com>
@@ -22,6 +23,7 @@ $lang['binddn'] = 'DN de um usuário de ligação opcional, quand
$lang['bindpw'] = 'Senha do utilizador acima';
$lang['userscope'] = 'Escopo de pesquisa Limite para pesquisa de usuário';
$lang['groupscope'] = 'Escopo de pesquisa Limite para pesquisa de grupo';
+$lang['userkey'] = 'Atributo denotando o nome de usuário; deve ser consistente com o filtro do usuário.';
$lang['groupkey'] = 'A participação no grupo a partir de qualquer atributo de usuário (em vez de AD padrão de grupos) exemplo: grupo de departamento ou número de telefone';
$lang['modPass'] = 'Sua senha LDAP pode ser alterada via dokuwiki?';
$lang['debug'] = 'Mostrar informação adicional de debug aquando de erros';
diff --git a/lib/plugins/authldap/lang/sr/settings.php b/lib/plugins/authldap/lang/sr/settings.php
index 3aec5c38a..6f99a532a 100644
--- a/lib/plugins/authldap/lang/sr/settings.php
+++ b/lib/plugins/authldap/lang/sr/settings.php
@@ -3,10 +3,19 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
+ * @author Milan Oparnica <milan.opa@gmail.com>
* @author Марко М. Костић <marko.m.kostic@gmail.com>
*/
+$lang['server'] = 'Vaš LDAP server. Bilo po nazivu (<code>localhost</code>) ili po punoj URL putanju (<code>ldap://server.tld:389</code>)';
+$lang['port'] = 'Port LDAP servera ako nije zadat u više unetoj punoj URL putanji.';
+$lang['usertree'] = 'Mesto za potragu za korisničkim nalozima. Npr. <code>ou=People, dc=server, dc=tld</code>';
+$lang['grouptree'] = 'Mesto za potragu za korisničkim grupama. Npr. <code>ou=Group, dc=server, dc=tld</code>';
+$lang['userfilter'] = 'LDAP filter za pretragu za korisničkim nalozima. Npr. <code>(&amp;(uid=%{user})(objectClass=posixAccount))</code>';
+$lang['groupfilter'] = 'LDAP filter za pretragu za korisničkim grupama. Npr. <code>(&amp;(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))</code>';
+$lang['version'] = 'Verzija protokola. Može biti neophodno da ovo postavite na vrednost <code>3</code>';
$lang['starttls'] = 'Користити TLS везе?';
$lang['referrals'] = 'Да ли треба пратити реферале?';
+$lang['deref'] = 'Kako razrešiti pseudonime?';
$lang['bindpw'] = 'Лозинка корисника изнад';
$lang['userscope'] = 'Ограничи опсег претраживања за корисничке претраге';
$lang['groupscope'] = 'Ограничи опсег претраживања за групне претраге';
diff --git a/lib/plugins/authpdo/lang/nl/settings.php b/lib/plugins/authpdo/lang/nl/settings.php
index 039ed6dc2..4929e9178 100644
--- a/lib/plugins/authpdo/lang/nl/settings.php
+++ b/lib/plugins/authpdo/lang/nl/settings.php
@@ -3,6 +3,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
+ * @author Gerrit Uitslag <klapinklapin@gmail.com>
* @author Andy <astolker@icloud.com>
*/
$lang['debug'] = 'Geef gedetailleerde foutmeldingen weer. Dit zou uitgeschakeld moeten zijn na de installatie.';
@@ -14,3 +15,12 @@ $lang['select-user-groups'] = 'SQL Statement om alle groepen van één gebrui
$lang['select-groups'] = 'SQL Statement om alle beschikbare groepen te selecteren';
$lang['insert-user'] = 'SQL Statement om een nieuwe gebruiker in de database in te voeren';
$lang['delete-user'] = 'SQL Statement om één gebruiker uit de database te verwijderen';
+$lang['list-users'] = 'SQL-instructie om gebruikers weer te geven die overeenkomen met een filter';
+$lang['count-users'] = 'SQL-instructie om gebruikers te tellen die overeenkomen met een filter';
+$lang['update-user-info'] = 'SQL-instructie om de volledige naam en e-mailadres van een enkele gebruiker bij te werken';
+$lang['update-user-login'] = 'SQL-instructie om de inlognaam van een enkele gebruiker bij te werken';
+$lang['update-user-pass'] = 'SQL-instructie om het wachtwoord van een enkele gebruiker bij te werken';
+$lang['insert-group'] = 'SQL-instructie om een nieuwe groep aan de database toe te voegen';
+$lang['join-group'] = 'SQL-instructie om een gebruiker aan een bestaande groep toe te voegen';
+$lang['leave-group'] = 'SQL-instructie om een gebruiker uit een groep te verwijderen';
+$lang['check-pass'] = 'SQL-instructie om het wachtwoord van een gebruiker te controleren. Kan leeg gelaten worden als de wachtwoordinformatie wordt opgehaald in select-user';
diff --git a/lib/plugins/authpdo/lang/pt/lang.php b/lib/plugins/authpdo/lang/pt/lang.php
index fcf3ae01b..ec1ca7a6f 100644
--- a/lib/plugins/authpdo/lang/pt/lang.php
+++ b/lib/plugins/authpdo/lang/pt/lang.php
@@ -3,7 +3,9 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
+ * @author Maykon Oliveira <maykonoliveira850@gmail.com>
* @author Paulo Carmino <contato@paulocarmino.com>
*/
$lang['connectfail'] = 'Falha ao conectar com o banco de dados.';
$lang['userexists'] = 'Desculpe, esse login já está sendo usado.';
+$lang['writefail'] = 'Não é possível modificar os dados do usuário. Por favor, informe o Wiki-Admin';
diff --git a/lib/plugins/authpdo/lang/pt/settings.php b/lib/plugins/authpdo/lang/pt/settings.php
new file mode 100644
index 000000000..beb39fbea
--- /dev/null
+++ b/lib/plugins/authpdo/lang/pt/settings.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Maykon Oliveira <maykonoliveira850@gmail.com>
+ */
+$lang['debug'] = 'Imprima mensagens de erro detalhadas. Deve ser desativado após a configuração.';
+$lang['dsn'] = 'O DSN para se conectar ao banco de dados.';
+$lang['user'] = 'O usuário para a conexão de banco de dados acima (vazio para sqlite)';
+$lang['pass'] = 'A senha para a conexão de banco de dados acima (vazia para sqlite)';
+$lang['select-user'] = 'Instrução SQL para selecionar os dados de um único usuário';
+$lang['select-user-groups'] = 'Instrução SQL para selecionar todos os grupos de um único usuário';
diff --git a/lib/plugins/authpdo/lang/sk/settings.php b/lib/plugins/authpdo/lang/sk/settings.php
new file mode 100644
index 000000000..0fdbfa4e3
--- /dev/null
+++ b/lib/plugins/authpdo/lang/sk/settings.php
@@ -0,0 +1,25 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Martin Michalek <michalek.dev@gmail.com>
+ */
+$lang['debug'] = 'Výpis podrobných chybových hlásení. Po nastavení by sa malo vypnúť.';
+$lang['dsn'] = 'DSN pre pripojenie k databáze.';
+$lang['user'] = 'Používateľ uvedeného databázového pripojenia (prázdne pre sqllite)';
+$lang['pass'] = 'Heslo uvedeného databázového pripojenia (prázdne pre sqllite)';
+$lang['select-user'] = 'SQL príkaz pre výber údajov používateľa';
+$lang['select-user-groups'] = 'SQL príkaz pre výber všetkých skupín používateľa';
+$lang['select-groups'] = 'SQL príkaz pre výber dostupných skupín';
+$lang['insert-user'] = 'SQL príkaz pre vloženie údajov používateľa do databázy';
+$lang['delete-user'] = 'SQL príkaz pre odstránenie používateľa z databázy';
+$lang['list-users'] = 'SQL príkaz pre výpis používateľov podľa filtra';
+$lang['count-users'] = 'SQL príkaz pre spočítanie používateľov podľa filtra';
+$lang['update-user-info'] = 'SQL príkaz pre aktualizáciu mena a emailu používateľa';
+$lang['update-user-login'] = 'SQL príkaz pre aktualizáciu prihlasovacieho mena používateľa';
+$lang['update-user-pass'] = 'SQL príkaz pre aktualizáciu hesla používateľa';
+$lang['insert-group'] = 'SQL príkaz pre vloženie údajov skupiny do databázy';
+$lang['join-group'] = 'SQL príkaz pre pridanie používateľa do existujúcej skupiny';
+$lang['leave-group'] = 'SQL príkaz pre odstránenie používateľa zo skupiny';
+$lang['check-pass'] = 'SQL príkaz pre kontrolu hesla používateľa. Môže zostať prázdny, ak je informácia o hesle pripojená k výberu údajov používateľa.';
diff --git a/lib/plugins/authplain/_test/conf/auth.users.php b/lib/plugins/authplain/_test/conf/auth.users.php
new file mode 100644
index 000000000..87f54fedb
--- /dev/null
+++ b/lib/plugins/authplain/_test/conf/auth.users.php
@@ -0,0 +1,16 @@
+# users.auth.php
+# <?php exit()?>
+# Don't modify the lines above
+#
+# Userfile
+#
+# Format:
+#
+# login:passwordhash:Real Name:email:groups,comma,separated
+
+
+user_1:$1$tGu7CW5z$VpsMjRIx5tbyOJaQ2SP23.:Admin:admin@example.com:user,first_group
+user_2:$1$2uJ5C3ib$edo0EDEb/yLAFHme7RK851:User 2:user2@example.com:user,second_group,third_group
+user_3:$1$yqnlDqgZ$Sste968uKhuxH6wIQt6/D/:User 3:user3@example.com:user,fourth_group,first_group,third_group
+user_4:$1$tXjajS9s$peoGPBQep.P245H1Lfloj0:User 4:user4@example.com:user,third_group
+user_5:$1$IWrqdhol$xXOmufjZ2hW1aAVp7zDP.1:User 5:user5@example.com:user,second_group,fifth_group
diff --git a/lib/plugins/authplain/_test/userdata.test.php b/lib/plugins/authplain/_test/userdata.test.php
new file mode 100644
index 000000000..b80b39349
--- /dev/null
+++ b/lib/plugins/authplain/_test/userdata.test.php
@@ -0,0 +1,64 @@
+<?php
+
+/**
+ * Class userdata_test
+ *
+ * Test group retrieval
+ *
+ * @group plugins
+ */
+class userdata_test extends DokuWikiTest
+{
+ /** @var auth_plugin_authplain */
+ protected $auth;
+
+ /**
+ * Load auth with test conf
+ * @throws Exception
+ */
+ public function setUp()
+ {
+ parent::setUp();
+ global $config_cascade;
+ $config_cascade['plainauth.users']['default'] = __DIR__ . '/conf/auth.users.php';
+ $this->auth = new auth_plugin_authplain();
+ }
+
+ /**
+ * Test that all groups are retrieved in the correct order, without duplicates
+ */
+ public function test_retrieve_groups()
+ {
+ $expected = ['user', 'first_group', 'second_group', 'third_group', 'fourth_group', 'fifth_group'];
+ $actual = $this->auth->retrieveGroups();
+ $this->assertEquals($expected, $actual);
+ }
+
+ /**
+ * Test with small and large limits
+ */
+ public function test_retrieve_groups_limit()
+ {
+ $expected = ['user', 'first_group'];
+ $actual = $this->auth->retrieveGroups(0, 2);
+ $this->assertEquals($expected, $actual);
+
+ $expected = ['user', 'first_group', 'second_group', 'third_group', 'fourth_group', 'fifth_group'];
+ $actual = $this->auth->retrieveGroups(0, 20);
+ $this->assertEquals($expected, $actual);
+ }
+
+ /**
+ * Test with small and large offsets
+ */
+ public function test_retrieve_groups_offset()
+ {
+ $expected = ['third_group', 'fourth_group', 'fifth_group'];
+ $actual = $this->auth->retrieveGroups(3,10);
+ $this->assertEquals($expected, $actual);
+
+ $expected = [];
+ $actual = $this->auth->retrieveGroups(10,3);
+ $this->assertEquals($expected, $actual);
+ }
+}
diff --git a/lib/plugins/authplain/auth.php b/lib/plugins/authplain/auth.php
index 374e7179c..d95c86de2 100644
--- a/lib/plugins/authplain/auth.php
+++ b/lib/plugins/authplain/auth.php
@@ -46,6 +46,7 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin
}
$this->cando['getUsers'] = true;
$this->cando['getUserCount'] = true;
+ $this->cando['getGroups'] = true;
}
$this->pregsplit_safe = version_compare(PCRE_VERSION, '6.7', '>=');
@@ -319,6 +320,29 @@ class auth_plugin_authplain extends DokuWiki_Auth_Plugin
}
/**
+ * Retrieves groups.
+ * Loads complete user data into memory before searching for groups.
+ *
+ * @param int $start index of first group to be returned
+ * @param int $limit max number of groups to be returned
+ * @return array
+ */
+ public function retrieveGroups($start = 0, $limit = 0)
+ {
+ $groups = [];
+
+ if ($this->users === null) $this->_loadUserData();
+ foreach($this->users as $user => $info) {
+ $groups = array_merge($groups, array_diff($info['grps'], $groups));
+ }
+
+ if($limit > 0) {
+ return array_splice($groups, $start, $limit);
+ }
+ return array_splice($groups, $start);
+ }
+
+ /**
* Only valid pageid's (no namespaces) for usernames
*
* @param string $user
diff --git a/lib/plugins/config/lang/it/lang.php b/lib/plugins/config/lang/it/lang.php
index 629fd12df..801ec6218 100644
--- a/lib/plugins/config/lang/it/lang.php
+++ b/lib/plugins/config/lang/it/lang.php
@@ -3,6 +3,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
+ * @author Roberto Bellingeri <bellingeri@netguru.it>
* @author Eddy <eddy@mail.it>
* @author Riccardo <riccardo.furlato@gmail.com>
* @author Stefano <stefano.stefano@gmail.com>
diff --git a/lib/plugins/config/lang/nl/lang.php b/lib/plugins/config/lang/nl/lang.php
index dee15d707..d7c799026 100644
--- a/lib/plugins/config/lang/nl/lang.php
+++ b/lib/plugins/config/lang/nl/lang.php
@@ -3,6 +3,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
+ * @author Gerrit Uitslag <klapinklapin@gmail.com>
* @author Harriet Neitz <harrietneitz@gmail.com>
* @author mark prins <mprins@users.sf.net>
* @author Pieter van der Meulen <pieter@vdmeulen.net>
@@ -14,7 +15,6 @@
* @author Marijn Hofstra <hofstra.m@gmail.com>
* @author Timon Van Overveldt <timonvo@gmail.com>
* @author Ricardo Guijt <ricardoguijt@gmail.com>
- * @author Gerrit <klapinklapin@gmail.com>
* @author Hugo Smet <hugo.smet@scarlet.be>
*/
$lang['menu'] = 'Configuratie-instellingen';
@@ -153,6 +153,7 @@ $lang['renderer_xhtml'] = 'Weergavesysteem voor de standaard (xhtml) wiki
$lang['renderer__core'] = '%s (dokuwiki core)';
$lang['renderer__plugin'] = '%s (plugin)';
$lang['search_nslimit'] = 'Beperk het zoeken tot de huidige X namespaces. Wanneer het zoeken wordt uitgevoerd vanaf een pagina binnen een diepere namespace, worden de eerste X aantal namespaces toegevoegd als filter';
+$lang['search_fragment'] = 'Specifeer het standaard zoekgedrag voor fragmenten';
$lang['search_fragment_o_exact'] = 'exact';
$lang['search_fragment_o_starts_with'] = 'begint met';
$lang['search_fragment_o_ends_with'] = 'eindigt op';
diff --git a/lib/plugins/config/lang/no/lang.php b/lib/plugins/config/lang/no/lang.php
index 587194517..093af8016 100644
--- a/lib/plugins/config/lang/no/lang.php
+++ b/lib/plugins/config/lang/no/lang.php
@@ -3,6 +3,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
+ * @author Rut Kristin Aanestad <dark@met.no>
* @author Torgeir Blesvik <bletor@banenor.no>
* @author ThorPrestboen <thor.erling.prestboen@gmail.com>
* @author Christian McKenna <mckchr@banenor.no>
diff --git a/lib/plugins/config/lang/pt/lang.php b/lib/plugins/config/lang/pt/lang.php
index df965bbce..139081bd9 100644
--- a/lib/plugins/config/lang/pt/lang.php
+++ b/lib/plugins/config/lang/pt/lang.php
@@ -3,6 +3,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
+ * @author Maykon Oliveira <maykonoliveira850@gmail.com>
* @author José Vieira <jmsv63@gmail.com>
* @author José Monteiro <Jose.Monteiro@DoWeDo-IT.com>
* @author Enrico Nicoletto <liverig@gmail.com>
@@ -121,6 +122,7 @@ $lang['rss_linkto'] = 'Links de feed XML ara';
$lang['rss_content'] = 'O que deve ser exibido nos itens do alimentador XML?';
$lang['rss_update'] = 'Intervalo de actualização do alimentador XML (seg)';
$lang['rss_show_summary'] = 'Resumo de exibição do alimentador XML no título';
+$lang['rss_media_o_media'] = 'midia';
$lang['updatecheck'] = 'Verificar por actualizações e avisos de segurança? O DokuWiki precisa contactar o "splitbrain.org" para efectuar esta verificação.';
$lang['userewrite'] = 'Usar URLs SEO';
$lang['useslash'] = 'Usar a barra como separador de espaços de nomes nas URLs';
@@ -138,6 +140,11 @@ $lang['xsendfile'] = 'Usar o cabeçalho "X-Sendfile" para permitir o
$lang['renderer_xhtml'] = 'Renderizador a ser utilizado para a saída principal do wiki (xhtml)';
$lang['renderer__core'] = '%s (núcleo dokuwiki)';
$lang['renderer__plugin'] = '%s (plugin)';
+$lang['search_nslimit'] = 'Limite a pesquisa aos namespaces X atuais. Quando uma pesquisa é executada a partir de uma página em um namespace mais profundo, os primeiros namespaces X serão adicionados como filtro';
+$lang['search_fragment_o_exact'] = 'exato';
+$lang['search_fragment_o_starts_with'] = 'começa com';
+$lang['search_fragment_o_ends_with'] = 'termina com';
+$lang['search_fragment_o_contains'] = 'contém';
$lang['proxy____host'] = 'Nome do servidor proxy';
$lang['proxy____port'] = 'Porta de Proxy';
$lang['proxy____user'] = 'Nome de utilizador Proxy';
diff --git a/lib/plugins/config/lang/sk/lang.php b/lib/plugins/config/lang/sk/lang.php
index ade62060b..bbfa97a25 100644
--- a/lib/plugins/config/lang/sk/lang.php
+++ b/lib/plugins/config/lang/sk/lang.php
@@ -3,8 +3,8 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
- * @author Tibor Repček <tiborepcek@gmail.com>
* @author Martin Michalek <michalek.dev@gmail.com>
+ * @author Tibor Repček <tiborepcek@gmail.com>
* @author Michal Mesko <michal.mesko@gmail.com>
* @author exusik <exusik@gmail.com>
*/
@@ -81,6 +81,7 @@ $lang['disableactions'] = 'Zakázať DokuWiki akcie';
$lang['disableactions_check'] = 'Skontrolovať';
$lang['disableactions_subscription'] = 'Povoliť/Zrušiť informovanie o zmenách stránky';
$lang['disableactions_wikicode'] = 'Pozrieť zdroj/Exportovať zdroj';
+$lang['disableactions_profile_delete'] = 'Zrušenie vlastného účtu';
$lang['disableactions_other'] = 'Iné akcie (oddelené čiarkou)';
$lang['auth_security_timeout'] = 'Časový limit pri prihlasovaní (v sekundách)';
$lang['securecookie'] = 'Mal by prehliadač posielať cookies nastavené cez HTTPS posielať iba cez HTTPS (bezpečné) pripojenie? Vypnite túto voľbu iba v prípade, ak je prihlasovanie do Vašej wiki zabezpečené SSL, ale prezeranie wiki je nezabezpečené.';
@@ -138,6 +139,10 @@ $lang['xsendfile'] = 'Používať X-Sendfile hlavičku pre doručeni
$lang['renderer_xhtml'] = 'Používané vykresľovacie jadro pre hlavný (xhtml) wiki výstup';
$lang['renderer__core'] = '%s (dokuwiki jadro)';
$lang['renderer__plugin'] = '%s (plugin)';
+$lang['search_fragment_o_exact'] = 'presne';
+$lang['search_fragment_o_starts_with'] = 'začína s';
+$lang['search_fragment_o_ends_with'] = 'končí na';
+$lang['search_fragment_o_contains'] = 'obsahuje';
$lang['dnslookups'] = 'DokuWiki hľadá mená vzdialených IP adries používateľov editujúcich stránky. Ak máte pomalý alebo nefunkčný DNS server alebo nechcete túto možnosť, deaktivujte túto voľbu';
$lang['jquerycdn'] = 'Mali by byť jQuery a jQuery UI skripty načítané z CDN? Voľba zvýši počet dodatočných HTTP požiadaviek, ale súbory sa môžu načítať rýchlejšie a používatelia ich už môžu mať vo vyrovnávacej pamäti.';
$lang['jquerycdn_o_0'] = 'Nepoužívať CDN, iba lokálne súbory';
diff --git a/lib/plugins/config/lang/sr/lang.php b/lib/plugins/config/lang/sr/lang.php
index df23668ce..4e5e94871 100644
--- a/lib/plugins/config/lang/sr/lang.php
+++ b/lib/plugins/config/lang/sr/lang.php
@@ -3,8 +3,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
- * @author Иван Петровић petrovicivan@ubuntusrbija.org
- * @author Ivan Petrovic <petrovicivan@ubuntusrbija.org>
+ * @author Иван Петровић <petrovicivan@ubuntusrbija.org>
* @author Miroslav Šolti <solti.miroslav@gmail.com>
* @author Марко М. Костић <marko.m.kostic@gmail.com>
*/
diff --git a/lib/plugins/config/lang/zh/lang.php b/lib/plugins/config/lang/zh/lang.php
index 18368038b..f8ea0279e 100644
--- a/lib/plugins/config/lang/zh/lang.php
+++ b/lib/plugins/config/lang/zh/lang.php
@@ -3,6 +3,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
+ * @author HaoNan <haonan@zhuoming.info>
* @author Phy <dokuwiki@phy25.com>
* @author Aaron Zhou <iradio@163.com>
* @author lempel <riverlempel@hotmail.com>
diff --git a/lib/plugins/extension/admin.php b/lib/plugins/extension/admin.php
index eb2009b4c..421b7138f 100644
--- a/lib/plugins/extension/admin.php
+++ b/lib/plugins/extension/admin.php
@@ -51,7 +51,7 @@ class admin_plugin_extension extends DokuWiki_Admin_Plugin
/* @var helper_plugin_extension_repository $repository */
$repository = $this->loadHelper('extension_repository');
- if (!$repository->hasAccess()) {
+ if(!$repository->hasAccess(!$INPUT->bool('purge'))) {
$url = $this->gui->tabURL('', array('purge' => 1));
msg($this->getLang('repo_error').' [<a href="'.$url.'">'.$this->getLang('repo_retry').'</a>]', -1);
}
diff --git a/lib/plugins/extension/cli.php b/lib/plugins/extension/cli.php
new file mode 100644
index 000000000..83e9c2fc8
--- /dev/null
+++ b/lib/plugins/extension/cli.php
@@ -0,0 +1,357 @@
+<?php
+
+use splitbrain\phpcli\Colors;
+
+/**
+ * Class cli_plugin_extension
+ *
+ * Command Line component for the extension manager
+ *
+ * @license GPL2
+ * @author Andreas Gohr <andi@splitbrain.org>
+ */
+class cli_plugin_extension extends DokuWiki_CLI_Plugin
+{
+ /** @inheritdoc */
+ protected function setup(\splitbrain\phpcli\Options $options)
+ {
+ // general setup
+ $options->setHelp('Manage plugins and templates for this DokuWiki instance');
+
+ // search
+ $options->registerCommand('search', 'Search for an extension');
+ $options->registerOption('max', 'Maximum number of results (default 10)', 'm', 'number', 'search');
+ $options->registerOption('verbose', 'Show detailed extension information', 'v', false, 'search');
+ $options->registerArgument('query', 'The keyword(s) to search for', true, 'search');
+
+ // list
+ $options->registerCommand('list', 'List installed extensions');
+ $options->registerOption('verbose', 'Show detailed extension information', 'v', false, 'list');
+
+ // upgrade
+ $options->registerCommand('upgrade', 'Update all installed extensions to their latest versions');
+
+ // install
+ $options->registerCommand('install', 'Install or upgrade extensions');
+ $options->registerArgument('extensions...', 'One or more extensions to install', true, 'install');
+
+ // uninstall
+ $options->registerCommand('uninstall', 'Uninstall a new extension');
+ $options->registerArgument('extensions...', 'One or more extensions to install', true, 'uninstall');
+
+ // enable
+ $options->registerCommand('enable', 'Enable installed extensions');
+ $options->registerArgument('extensions...', 'One or more extensions to enable', true, 'enable');
+
+ // disable
+ $options->registerCommand('disable', 'Disable installed extensions');
+ $options->registerArgument('extensions...', 'One or more extensions to disable', true, 'disable');
+
+
+ }
+
+ /** @inheritdoc */
+ protected function main(\splitbrain\phpcli\Options $options)
+ {
+ /** @var helper_plugin_extension_repository $repo */
+ $repo = plugin_load('helper', 'extension_repository');
+ if(!$repo->hasAccess(false)) {
+ $this->warning('Extension Repository API is not accessible, no remote info available!');
+ }
+
+ switch ($options->getCmd()) {
+ case 'list':
+ $ret = $this->cmdList($options->getOpt('verbose'));
+ break;
+ case 'search':
+ $ret = $this->cmdSearch(
+ implode(' ', $options->getArgs()),
+ $options->getOpt('verbose'),
+ (int)$options->getOpt('max', 10)
+ );
+ break;
+ case 'install':
+ $ret = $this->cmdInstall($options->getArgs());
+ break;
+ case 'uninstall':
+ $ret = $this->cmdUnInstall($options->getArgs());
+ break;
+ case 'enable':
+ $ret = $this->cmdEnable(true, $options->getArgs());
+ break;
+ case 'disable':
+ $ret = $this->cmdEnable(false, $options->getArgs());
+ break;
+ case 'upgrade':
+ $ret = $this->cmdUpgrade();
+ break;
+ default:
+ echo $options->help();
+ $ret = 0;
+ }
+
+ exit($ret);
+ }
+
+ /**
+ * Upgrade all extensions
+ *
+ * @return int
+ */
+ protected function cmdUpgrade()
+ {
+ /* @var helper_plugin_extension_extension $ext */
+ $ext = $this->loadHelper('extension_extension');
+ $list = $this->getInstalledExtensions();
+
+ $ok = 0;
+ foreach ($list as $extname) {
+ $ext->setExtension($extname);
+ $date = $ext->getInstalledVersion();
+ $avail = $ext->getLastUpdate();
+ if ($avail && $avail > $date) {
+ $ok += $this->cmdInstall([$extname]);
+ }
+ }
+
+ return $ok;
+ }
+
+ /**
+ * Enable or disable one or more extensions
+ *
+ * @param bool $set
+ * @param string[] $extensions
+ * @return int
+ */
+ protected function cmdEnable($set, $extensions)
+ {
+ /* @var helper_plugin_extension_extension $ext */
+ $ext = $this->loadHelper('extension_extension');
+
+ $ok = 0;
+ foreach ($extensions as $extname) {
+ $ext->setExtension($extname);
+ if (!$ext->isInstalled()) {
+ $this->error(sprintf('Extension %s is not installed', $ext->getID()));
+ $ok += 1;
+ continue;
+ }
+
+ if ($set) {
+ $status = $ext->enable();
+ $msg = 'msg_enabled';
+ } else {
+ $status = $ext->disable();
+ $msg = 'msg_disabled';
+ }
+
+ if ($status !== true) {
+ $this->error($status);
+ $ok += 1;
+ continue;
+ } else {
+ $this->success(sprintf($this->getLang($msg), $ext->getID()));
+ }
+ }
+
+ return $ok;
+ }
+
+ /**
+ * Uninstall one or more extensions
+ *
+ * @param string[] $extensions
+ * @return int
+ */
+ protected function cmdUnInstall($extensions)
+ {
+ /* @var helper_plugin_extension_extension $ext */
+ $ext = $this->loadHelper('extension_extension');
+
+ $ok = 0;
+ foreach ($extensions as $extname) {
+ $ext->setExtension($extname);
+ if (!$ext->isInstalled()) {
+ $this->error(sprintf('Extension %s is not installed', $ext->getID()));
+ $ok += 1;
+ continue;
+ }
+
+ $status = $ext->uninstall();
+ if ($status) {
+ $this->success(sprintf($this->getLang('msg_delete_success'), $ext->getID()));
+ } else {
+ $this->error(sprintf($this->getLang('msg_delete_failed'), hsc($ext->getID())));
+ $ok = 1;
+ }
+ }
+
+ return $ok;
+ }
+
+ /**
+ * Install one or more extensions
+ *
+ * @param string[] $extensions
+ * @return int
+ */
+ protected function cmdInstall($extensions)
+ {
+ /* @var helper_plugin_extension_extension $ext */
+ $ext = $this->loadHelper('extension_extension');
+
+ $ok = 0;
+ foreach ($extensions as $extname) {
+ $ext->setExtension($extname);
+
+ if (!$ext->getDownloadURL()) {
+ $ok += 1;
+ $this->error(
+ sprintf('Could not find download for %s', $ext->getID())
+ );
+ continue;
+ }
+
+ try {
+ $installed = $ext->installOrUpdate();
+ foreach ($installed as $ext => $info) {
+ $this->success(sprintf(
+ $this->getLang('msg_' . $info['type'] . '_' . $info['action'] . '_success'),
+ $info['base'])
+ );
+ }
+ } catch (Exception $e) {
+ $this->error($e->getMessage());
+ $ok += 1;
+ }
+ }
+ return $ok;
+ }
+
+ /**
+ * Search for an extension
+ *
+ * @param string $query
+ * @param bool $showdetails
+ * @param int $max
+ * @return int
+ * @throws \splitbrain\phpcli\Exception
+ */
+ protected function cmdSearch($query, $showdetails, $max)
+ {
+ /** @var helper_plugin_extension_repository $repository */
+ $repository = $this->loadHelper('extension_repository');
+ $result = $repository->search($query);
+ if ($max) {
+ $result = array_slice($result, 0, $max);
+ }
+
+ $this->listExtensions($result, $showdetails);
+ return 0;
+ }
+
+ /**
+ * @param bool $showdetails
+ * @return int
+ * @throws \splitbrain\phpcli\Exception
+ */
+ protected function cmdList($showdetails)
+ {
+ $list = $this->getInstalledExtensions();
+ $this->listExtensions($list, $showdetails);
+
+ return 0;
+ }
+
+ /**
+ * Get all installed extensions
+ *
+ * @return array
+ */
+ protected function getInstalledExtensions()
+ {
+ /** @var Doku_Plugin_Controller $plugin_controller */
+ global $plugin_controller;
+ $pluginlist = $plugin_controller->getList('', true);
+ $tpllist = glob(DOKU_INC . 'lib/tpl/*', GLOB_ONLYDIR);
+ $tpllist = array_map(function ($path) {
+ return 'template:' . basename($path);
+ }, $tpllist);
+ $list = array_merge($pluginlist, $tpllist);
+ sort($list);
+ return $list;
+ }
+
+ /**
+ * List the given extensions
+ *
+ * @param string[] $list
+ * @param bool $details display details
+ * @throws \splitbrain\phpcli\Exception
+ */
+ protected function listExtensions($list, $details)
+ {
+ /** @var helper_plugin_extension_extension $ext */
+ $ext = $this->loadHelper('extension_extension');
+ $tr = new \splitbrain\phpcli\TableFormatter($this->colors);
+
+
+ foreach ($list as $name) {
+ $ext->setExtension($name);
+
+ $status = '';
+ if ($ext->isInstalled()) {
+ $date = $ext->getInstalledVersion();
+ $avail = $ext->getLastUpdate();
+ $status = 'i';
+ if ($avail && $avail > $date) {
+ $vcolor = Colors::C_RED;
+ } else {
+ $vcolor = Colors::C_GREEN;
+ }
+ if ($ext->isGitControlled()) $status = 'g';
+ if ($ext->isBundled()) $status = 'b';
+ if ($ext->isEnabled()) {
+ $ecolor = Colors::C_BROWN;
+ } else {
+ $ecolor = Colors::C_DARKGRAY;
+ $status .= 'd';
+ }
+ } else {
+ $ecolor = null;
+ $date = $ext->getLastUpdate();
+ $vcolor = null;
+ }
+
+
+ echo $tr->format(
+ [20, 3, 12, '*'],
+ [
+ $ext->getID(),
+ $status,
+ $date,
+ strip_tags(sprintf(
+ $this->getLang('extensionby'),
+ $ext->getDisplayName(),
+ $this->colors->wrap($ext->getAuthor(), Colors::C_PURPLE))
+ )
+ ],
+ [
+ $ecolor,
+ Colors::C_YELLOW,
+ $vcolor,
+ null,
+ ]
+ );
+
+ if (!$details) continue;
+
+ echo $tr->format(
+ [5, '*'],
+ ['', $ext->getDescription()],
+ [null, Colors::C_CYAN]
+ );
+ }
+ }
+}
diff --git a/lib/plugins/extension/helper/repository.php b/lib/plugins/extension/helper/repository.php
index 5aad61e75..712baa05c 100644
--- a/lib/plugins/extension/helper/repository.php
+++ b/lib/plugins/extension/helper/repository.php
@@ -64,14 +64,14 @@ class helper_plugin_extension_repository extends DokuWiki_Plugin
/**
* If repository access is available
*
+ * @param bool $usecache use cached result if still valid
* @return bool If repository access is available
*/
- public function hasAccess()
- {
+ public function hasAccess($usecache = true) {
if ($this->has_access === null) {
$cache = new Cache('##extension_manager###hasAccess', '.repo');
- if (!$cache->useCache(array('age' => 3600 * 24, 'purge'=>1))) {
+ if (!$cache->useCache(array('age' => 60*10, 'purge' => !$usecache))) {
$httpclient = new DokuHTTPClient();
$httpclient->timeout = 5;
$data = $httpclient->get(self::EXTENSION_REPOSITORY_API.'?cmd=ping');
diff --git a/lib/plugins/extension/lang/pt/lang.php b/lib/plugins/extension/lang/pt/lang.php
index 498207291..7471d3f32 100644
--- a/lib/plugins/extension/lang/pt/lang.php
+++ b/lib/plugins/extension/lang/pt/lang.php
@@ -3,6 +3,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
+ * @author Maykon Oliveira <maykonoliveira850@gmail.com>
* @author José Vieira <jmsv63@gmail.com>
* @author Guido Salatino <guidorafael23@gmail.com>
* @author Romulo Pereira <romuloccomp@gmail.com>
diff --git a/lib/plugins/extension/lang/sk/lang.php b/lib/plugins/extension/lang/sk/lang.php
index c9f368cd0..32f3239dc 100644
--- a/lib/plugins/extension/lang/sk/lang.php
+++ b/lib/plugins/extension/lang/sk/lang.php
@@ -9,12 +9,10 @@
* @author Tibor Repček <tiborepcek@gmail.com>
*/
$lang['menu'] = 'Správca rozšírení';
-
$lang['tab_plugins'] = 'Inštalované rozšírenia';
$lang['tab_templates'] = 'Inštalované šablóny';
$lang['tab_search'] = 'Hľadanie a inštalácia';
$lang['tab_install'] = 'Manuálna inštalácia';
-
$lang['notimplemented'] = 'Táto vlastnosť ešte nebola implementovaná';
$lang['notinstalled'] = 'Toto rozšírenie nie je nainštalované';
$lang['alreadyenabled'] = 'Toto rozšírenie už bolo povolené';
@@ -22,7 +20,6 @@ $lang['alreadydisabled'] = 'Toto rozšírenie už bolo zakázané';
$lang['pluginlistsaveerror'] = 'Pri ukladaní zoznamu rozšírení sa vyskytla chyba';
$lang['unknownauthor'] = 'Neznámy autor';
$lang['unknownversion'] = 'Neznáma verzia';
-
$lang['btn_info'] = 'Viac informácií';
$lang['btn_update'] = 'Aktualizácia';
$lang['btn_uninstall'] = 'Odinštalovanie';
@@ -30,12 +27,13 @@ $lang['btn_enable'] = 'Povolenie';
$lang['btn_disable'] = 'Zablokovanie';
$lang['btn_install'] = 'Inštalácia';
$lang['btn_reinstall'] = 'Re-Inštalácia';
-
$lang['js']['reallydel'] = 'Naozaj chcete toto rozšírenie odinštalovať?';
-
+$lang['js']['display_viewoptions'] = 'Zobraziť možnosti:';
+$lang['js']['display_enabled'] = 'povolené';
+$lang['js']['display_disabled'] = 'zakázané';
+$lang['js']['display_updatable'] = 'aktualizovateľné';
$lang['search_for'] = 'Hľadať rozšírenie:';
$lang['search'] = 'Vyhľadávanie';
-
$lang['extensionby'] = '<strong>%s</strong> od %s';
$lang['screenshot'] = 'Obrázok od %s';
$lang['popularity'] = 'Popularita: %s%%';
@@ -68,7 +66,6 @@ $lang['status_unmodifiable'] = 'nezmeniteľný';
$lang['status_plugin'] = 'plugin';
$lang['status_template'] = 'šablóna';
$lang['status_bundled'] = 'vstavaný';
-
$lang['msg_enabled'] = 'Plugin %s povolený';
$lang['msg_disabled'] = 'Plugin %s nepovolený';
$lang['msg_delete_success'] = 'Rozšírenie %s odinštalované';
@@ -78,34 +75,24 @@ $lang['msg_template_update_success'] = 'Šablóna %s úspešne aktualizovaná';
$lang['msg_plugin_install_success'] = 'Plugin %s úspešne nainštalovaný';
$lang['msg_plugin_update_success'] = 'Plugin %s úspešne aktualizovaný';
$lang['msg_upload_failed'] = 'Nahrávanie súboru zlyhalo';
-
$lang['missing_dependency'] = '<strong>Chýbajúca alebo nepovolená závislosť:</strong> %s';
$lang['security_issue'] = '<strong>Bezpečnostný problém:</strong> %s';
$lang['security_warning'] = '<strong>Bezpečnostné upozornenie:</strong> %s';
$lang['update_available'] = '<strong>Aktualizácia:</strong> Nová verzia %s.';
$lang['wrong_folder'] = '<strong>Plugin nesprávne nainštalovaný:</strong> Premenujte adresár s pluginom "%s" na "%s".';
$lang['url_change'] = '<strong>URL sa zmenila:</strong> URL na stiahnutie sa od posledného sťahovania zmenila. Pred aktualizáciou rozšírenia skontrolujte, či je nová URL správna. <br />Nová: %s<br />Stará: %s';
-
$lang['error_badurl'] = 'URL by mali mať na začiatku http alebo https';
$lang['error_dircreate'] = 'Nie je možné vytvoriť dočasný adresár pre uloženie sťahovaného súboru';
$lang['error_download'] = 'Nie je možné stiahnuť súbor: %s';
$lang['error_decompress'] = 'Nie je možné dekomprimovať stiahnutý súbor. Môže to byť dôvodom chyby sťahovania (v tom prípade to skúste znova) alebo neznámym kompresným formátom (v tom prípade musíte stiahnuť a inštalovať manuálne).';
$lang['error_findfolder'] = 'Nepodarilo sa identifikovať cestu rozšírenia. Rozšírenie musíte stiahnuť a inštalovať manuálne.';
$lang['error_copy'] = 'Chyba kopírovania pri inštalácii do adresára <em>%s</em>: disk môže byť plný alebo nemáte potrebné prístupové oprávnenie. Dôsledkom može byť čiastočne inštalovaný plugin a nestabilná wiki inštalácia.';
-
$lang['noperms'] = 'Do priečinka rozšírenia sa nedá zapisovať.';
$lang['notplperms'] = 'Do priečinka s témou sa nedá zapisovať.';
$lang['nopluginperms'] = 'Do priečinka s pluginom sa nedá zapisovať.';
$lang['git'] = 'Toto rozšírenie bolo nainštalované cez git. Nemali by ste ho tu aktualizovať.';
$lang['auth'] = 'Toto rozšírenie nie je povolené v nastaveniach. Zvážte jeho zakázanie.';
-
$lang['install_url'] = 'Inštalácia z URL:';
$lang['install_upload'] = 'Nahrať rozšírenie:';
-
$lang['repo_error'] = 'Nepodarilo sa kontaktovať repozitár rozšírenia. Uistite sa, že váš server má povolené kontaktovať www.dokuwiki.org a skontrolujte nastavenia proxy.';
$lang['nossl'] = 'Vaše PHP zrejme nepodporuje SSL. Sťahovanie nebude funkčné pre mnohé rozšírenia.';
-
-$lang['js']['display_viewoptions'] = 'Zobraziť možnosti:';
-$lang['js']['display_enabled'] = 'povolené';
-$lang['js']['display_disabled'] = 'zakázané';
-$lang['js']['display_updatable'] = 'aktualizovateľné';
diff --git a/lib/plugins/popularity/lang/sr/lang.php b/lib/plugins/popularity/lang/sr/lang.php
index b67aaa8ef..fe768f370 100644
--- a/lib/plugins/popularity/lang/sr/lang.php
+++ b/lib/plugins/popularity/lang/sr/lang.php
@@ -3,8 +3,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
- * @author Иван Петровић petrovicivan@ubuntusrbija.org
- * @author Ivan Petrovic <petrovicivan@ubuntusrbija.org>
+ * @author Иван Петровић <petrovicivan@ubuntusrbija.org>
* @author Miroslav Šolti <solti.miroslav@gmail.com>
*/
$lang['name'] = 'Мерење популарности (може потрајати док се не учита)';
diff --git a/lib/plugins/revert/lang/no/lang.php b/lib/plugins/revert/lang/no/lang.php
index bca34eee8..942d54a94 100644
--- a/lib/plugins/revert/lang/no/lang.php
+++ b/lib/plugins/revert/lang/no/lang.php
@@ -3,6 +3,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
+ * @author Rut Kristin Aanestad <dark@met.no>
* @author Torgeir Blesvik <bletor@banenor.no>
* @author ThorPrestboen <thor.erling.prestboen@gmail.com>
* @author Christian McKenna <mckchr@banenor.no>
diff --git a/lib/plugins/revert/lang/sr/lang.php b/lib/plugins/revert/lang/sr/lang.php
index e0ac43971..2a3d9432d 100644
--- a/lib/plugins/revert/lang/sr/lang.php
+++ b/lib/plugins/revert/lang/sr/lang.php
@@ -3,8 +3,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
- * @author Иван Петровић petrovicivan@ubuntusrbija.org
- * @author Ivan Petrovic <petrovicivan@ubuntusrbija.org>
+ * @author Иван Петровић <petrovicivan@ubuntusrbija.org>
* @author Miroslav Šolti <solti.miroslav@gmail.com>
*/
$lang['menu'] = 'Управљач за враћање';
diff --git a/lib/plugins/usermanager/lang/pt/lang.php b/lib/plugins/usermanager/lang/pt/lang.php
index 2db85ae86..5c680c712 100644
--- a/lib/plugins/usermanager/lang/pt/lang.php
+++ b/lib/plugins/usermanager/lang/pt/lang.php
@@ -3,6 +3,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
+ * @author Maykon Oliveira <maykonoliveira850@gmail.com>
* @author José Vieira <jmsv63@gmail.com>
* @author José Monteiro <Jose.Monteiro@DoWeDo-IT.com>
* @author Enrico Nicoletto <liverig@gmail.com>
diff --git a/lib/plugins/usermanager/lang/sr/lang.php b/lib/plugins/usermanager/lang/sr/lang.php
index 858a2139b..5339e4ac1 100644
--- a/lib/plugins/usermanager/lang/sr/lang.php
+++ b/lib/plugins/usermanager/lang/sr/lang.php
@@ -3,8 +3,7 @@
/**
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
- * @author Иван Петровић petrovicivan@ubuntusrbija.org
- * @author Ivan Petrovic <petrovicivan@ubuntusrbija.org>
+ * @author Иван Петровић <petrovicivan@ubuntusrbija.org>
* @author Miroslav Šolti <solti.miroslav@gmail.com>
*/
$lang['menu'] = 'Управљач корисницима';