Add script 'get-openssl-version.sh'.
This commit is contained in:
27
snippets/dokuwiki-2023-04-04/lib/plugins/authpdo/README
Normal file
27
snippets/dokuwiki-2023-04-04/lib/plugins/authpdo/README
Normal file
@ -0,0 +1,27 @@
|
||||
authpdo Plugin for DokuWiki
|
||||
|
||||
Authenticate against a database via PDO
|
||||
|
||||
All documentation for this plugin can be found at
|
||||
https://www.dokuwiki.org/plugin:authpdo
|
||||
|
||||
If you install this plugin manually, make sure it is installed in
|
||||
lib/plugins/authpdo/ - if the folder is called different it
|
||||
will not work!
|
||||
|
||||
Please refer to http://www.dokuwiki.org/plugins for additional info
|
||||
on how to install plugins in DokuWiki.
|
||||
|
||||
----
|
||||
Copyright (C) Andreas Gohr <andi@splitbrain.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; version 2 of the License
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
See the COPYING file in your DokuWiki folder for details
|
@ -0,0 +1,316 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* mysql tests for the authpdo plugin
|
||||
*
|
||||
* @group plugin_authpdo
|
||||
* @group plugins
|
||||
*/
|
||||
class mysql_plugin_authpdo_test extends DokuWikiTest {
|
||||
|
||||
protected $driver = 'mysql';
|
||||
protected $host = '';
|
||||
protected $database = 'authpdo_testing';
|
||||
protected $user = '';
|
||||
protected $pass = '';
|
||||
protected $port = '';
|
||||
|
||||
public function setUp() : void {
|
||||
parent::setUp();
|
||||
$configuration = DOKU_UNITTEST . "{$this->driver}.conf.php";
|
||||
if(!file_exists($configuration)) {
|
||||
return;
|
||||
}
|
||||
/** @var $conf array */
|
||||
include $configuration;
|
||||
$this->host = $conf['host'];
|
||||
$this->user = $conf['user'];
|
||||
$this->pass = $conf['pass'];
|
||||
$this->port = $conf['port'];
|
||||
}
|
||||
|
||||
/**
|
||||
* try to remove the last set up database
|
||||
*
|
||||
* it might still be there if something went wrong
|
||||
*/
|
||||
public function tearDown() : void {
|
||||
parent::tearDown();
|
||||
$this->dropDatabase();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if database credentials and extensions exist
|
||||
*/
|
||||
public function test_requirements() {
|
||||
if(!$this->host || !$this->user) {
|
||||
$this->markTestSkipped("Skipped {$this->driver} tests. Missing configuration");
|
||||
}
|
||||
if(!class_exists('PDO')) {
|
||||
$this->markTestSkipped("Skipped {$this->driver} tests. Missing PDO extension");
|
||||
}
|
||||
if(!in_array($this->driver, pdo_drivers())) {
|
||||
$this->markTestSkipped("Skipped {$this->driver} tests. Missing pdo_{$this->driver} extension");
|
||||
}
|
||||
$this->assertTrue(true); // avoid being marked as risky for having no assertion
|
||||
}
|
||||
|
||||
/**
|
||||
* create the database for testing
|
||||
*/
|
||||
protected function createDatabase() {
|
||||
$pdo = new PDO(
|
||||
"{$this->driver}:host={$this->host};port={$this->port}", $this->user, $this->pass,
|
||||
array(
|
||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // we want exceptions, not error codes
|
||||
)
|
||||
);
|
||||
$pdo->exec("DROP DATABASE IF EXISTS {$this->database}");
|
||||
$pdo->exec("CREATE DATABASE {$this->database}");
|
||||
$pdo = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* remove the database
|
||||
*/
|
||||
protected function dropDatabase() {
|
||||
$pdo = new PDO(
|
||||
"{$this->driver}:host={$this->host};port={$this->port}", $this->user, $this->pass,
|
||||
array(
|
||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // we want exceptions, not error codes
|
||||
)
|
||||
);
|
||||
try {
|
||||
$pdo->exec("DROP DATABASE IF EXISTS {$this->database}");
|
||||
} catch (PDOException $e) {
|
||||
// ignore - sometimes this fails even though the database was deleted
|
||||
}
|
||||
$pdo = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* imports a database dump
|
||||
*
|
||||
* @param $file
|
||||
*/
|
||||
protected function importDatabase($file) {
|
||||
// connect to database and import dump
|
||||
$pdo = null;
|
||||
$pdo = new PDO(
|
||||
"{$this->driver}:dbname={$this->database};host={$this->host};port={$this->port}", $this->user, $this->pass,
|
||||
array(
|
||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // we want exceptions, not error codes
|
||||
)
|
||||
);
|
||||
$sql = file_get_contents($file);
|
||||
$pdo->exec($sql);
|
||||
$pdo = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Run general tests on all users
|
||||
*
|
||||
* @param auth_plugin_authpdo $auth
|
||||
* @param array $users
|
||||
*/
|
||||
protected function runGeneralTests(auth_plugin_authpdo $auth, $users) {
|
||||
global $conf;
|
||||
$info = 'DSN: ' . $auth->getConf('dsn');
|
||||
$this->assertTrue($auth->success, $info);
|
||||
|
||||
if($auth->canDo('getUsers')) {
|
||||
$list = $auth->retrieveUsers();
|
||||
$this->assertGreaterThanOrEqual(count($users), count($list), $info);
|
||||
}
|
||||
|
||||
if($auth->canDo('getGroups')) {
|
||||
$list = $auth->retrieveGroups();
|
||||
$this->assertGreaterThanOrEqual(1, $list, $info);
|
||||
}
|
||||
|
||||
if($auth->canDo('getUserCount')) {
|
||||
$count = $auth->getUserCount();
|
||||
$this->assertGreaterThanOrEqual(count($users), $count);
|
||||
}
|
||||
|
||||
if($auth->canDo('addUser')) {
|
||||
$newuser = array(
|
||||
'user' => 'newuserfoobar',
|
||||
'name' => 'First LastFoobar',
|
||||
'pass' => 'password',
|
||||
'mail' => 'newuserfoobar@example.com',
|
||||
'grps' => array('acompletelynewgroup')
|
||||
);
|
||||
$ok = $auth->createUser(
|
||||
$newuser['user'],
|
||||
$newuser['pass'],
|
||||
$newuser['name'],
|
||||
$newuser['mail'],
|
||||
$newuser['grps']
|
||||
);
|
||||
$this->assertTrue($ok, $info);
|
||||
$check = $auth->getUserData($newuser['user']);
|
||||
$this->assertEquals($newuser['user'], $check['user'], $info);
|
||||
$this->assertEquals($newuser['mail'], $check['mail'], $info);
|
||||
$groups = array_merge($newuser['grps'], array($conf['defaultgroup']));
|
||||
$this->assertEquals($groups, $check['grps'], $info);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* run all the tests with the given user, depending on the capabilities
|
||||
*
|
||||
* @param auth_plugin_authpdo $auth
|
||||
* @param $user
|
||||
*/
|
||||
protected function runUserTests(auth_plugin_authpdo $auth, $user) {
|
||||
global $conf;
|
||||
$info = 'DSN: ' . $auth->getConf('dsn') . ' User:' . $user['user'];
|
||||
|
||||
// minimal setup
|
||||
$this->assertTrue($auth->checkPass($user['user'], $user['pass']), $info);
|
||||
$check = $auth->getUserData($user['user']);
|
||||
$this->assertEquals($user['user'], $check['user'], $info);
|
||||
$this->assertEquals($user['name'], $check['name'], $info);
|
||||
$this->assertEquals($user['mail'], $check['mail'], $info);
|
||||
$groups = array_merge($user['grps'], array($conf['defaultgroup']));
|
||||
$this->assertEquals($groups, $check['grps'], $info);
|
||||
|
||||
// getUsers
|
||||
if($auth->canDo('getUsers')) {
|
||||
$list = $auth->retrieveUsers(0, -1, array('user' => $user['user']));
|
||||
$this->assertGreaterThanOrEqual(1, count($list));
|
||||
$list = $auth->retrieveUsers(0, -1, array('name' => $user['name']));
|
||||
$this->assertGreaterThanOrEqual(1, count($list));
|
||||
$list = $auth->retrieveUsers(0, -1, array('mail' => $user['mail']));
|
||||
$this->assertGreaterThanOrEqual(1, count($list));
|
||||
}
|
||||
|
||||
// getUserCount
|
||||
if($auth->canDo('getUserCount')) {
|
||||
$count = $auth->getUserCount(array('user' => $user['user']));
|
||||
$this->assertGreaterThanOrEqual(1, $count);
|
||||
$count = $auth->getUserCount(array('name' => $user['name']));
|
||||
$this->assertGreaterThanOrEqual(1, $count);
|
||||
$count = $auth->getUserCount(array('mail' => $user['mail']));
|
||||
$this->assertGreaterThanOrEqual(1, $count);
|
||||
}
|
||||
|
||||
// modGroups
|
||||
if($auth->canDo('modGroups')) {
|
||||
$newgroup = 'foobar';
|
||||
$ok = $auth->modifyUser($user['user'], array('grps' => array($newgroup)));
|
||||
$this->assertTrue($ok, $info);
|
||||
$check = $auth->getUserData($user['user']);
|
||||
$this->assertTrue(in_array($newgroup, $check['grps']), $info);
|
||||
}
|
||||
|
||||
// modPass
|
||||
if($auth->canDo('modPass')) {
|
||||
$newpass = 'foobar';
|
||||
$ok = $auth->modifyUser($user['user'], array('pass' => $newpass));
|
||||
$this->assertTrue($ok, $info);
|
||||
$this->assertTrue($auth->checkPass($user['user'], $newpass), $info);
|
||||
}
|
||||
|
||||
// modMail
|
||||
if($auth->canDo('modMail')) {
|
||||
$newmail = 'foobar@example.com';
|
||||
$ok = $auth->modifyUser($user['user'], array('mail' => $newmail));
|
||||
$this->assertTrue($ok, $info);
|
||||
$check = $auth->getUserData($user['user']);
|
||||
$this->assertEquals($newmail, $check['mail'], $info);
|
||||
}
|
||||
|
||||
// modName
|
||||
if($auth->canDo('modName')) {
|
||||
$newname = 'FirstName Foobar';
|
||||
$ok = $auth->modifyUser($user['user'], array('name' => $newname));
|
||||
$this->assertTrue($ok, $info);
|
||||
$check = $auth->getUserData($user['user']);
|
||||
$this->assertEquals($newname, $check['name'], $info);
|
||||
}
|
||||
|
||||
// modLogin
|
||||
if($auth->canDo('modLogin')) {
|
||||
$newuser = 'foobar' . $user['user'];
|
||||
$ok = $auth->modifyUser($user['user'], array('user' => $newuser));
|
||||
$this->assertTrue($ok, $info);
|
||||
$check = $auth->getUserData($newuser);
|
||||
$this->assertEquals($newuser, $check['user'], $info);
|
||||
// rename back
|
||||
$ok = $auth->modifyUser($newuser, array('user' => $user['user']));
|
||||
$this->assertTrue($ok, $info);
|
||||
}
|
||||
|
||||
// delUser
|
||||
if($auth->canDo('delUser')) {
|
||||
$num = $auth->deleteUsers(array($user['user']));
|
||||
$this->assertEquals(1, $num, $info);
|
||||
$this->assertFalse($auth->getUserData($user['user']), $info);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* prepares the individual configurations for testing
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function data_provider() {
|
||||
$testdata = array();
|
||||
|
||||
$files = glob(__DIR__ . "/{$this->driver}/*.php");
|
||||
foreach($files as $file) {
|
||||
$dump = preg_replace('/\.php$/', '.sql', $file);
|
||||
$dbname = 'authpdo_testing_' . basename($file, '.php');
|
||||
|
||||
/** @var $data array */
|
||||
include $file;
|
||||
|
||||
$testdata[] = array($dbname, $dump, $data);
|
||||
}
|
||||
|
||||
return $testdata;
|
||||
}
|
||||
|
||||
/**
|
||||
* This triggers all the tests based on the dumps and configurations
|
||||
*
|
||||
* @dataProvider data_provider
|
||||
* @depends test_requirements
|
||||
* @param string $dbname Name of the database to use
|
||||
* @param string $dump The path to the dump file to import
|
||||
* @param array|string $data config and test user setup. When a string is passed, test is skipped with that msg
|
||||
*/
|
||||
public function test_database($dbname, $dump, $data){
|
||||
global $conf;
|
||||
|
||||
if(!is_array($data)) {
|
||||
$this->markTestSkipped($data);
|
||||
return;
|
||||
}
|
||||
|
||||
$this->database = $dbname;
|
||||
|
||||
$this->createDatabase();
|
||||
$this->importDatabase($dump);
|
||||
|
||||
// Setup the configuration and initialize a new auth object
|
||||
$conf['plugin']['authpdo'] = array();
|
||||
$conf['plugin']['authpdo'] = $data['conf'];
|
||||
$conf['plugin']['authpdo']['dsn'] = "{$this->driver}:dbname={$this->database};host={$this->host};port={$this->port}";
|
||||
$conf['plugin']['authpdo']['user'] = $this->user;
|
||||
$conf['plugin']['authpdo']['pass'] = $this->pass;
|
||||
$conf['plugin']['authpdo']['debug'] = 1;
|
||||
if($data['passcrypt']) $conf['passcrypt'] = $data['passcrypt'];
|
||||
$auth = new auth_plugin_authpdo();
|
||||
|
||||
$this->runGeneralTests($auth, $data['users']);
|
||||
foreach($data['users'] as $user) {
|
||||
$this->runUserTests($auth, $user);
|
||||
}
|
||||
|
||||
$this->dropDatabase();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,104 @@
|
||||
<?php
|
||||
/**
|
||||
* Confiuration for fluxbb. They have a very simplistic model. There is no separate display name and a user can
|
||||
* only be in a single group.
|
||||
*/
|
||||
/** @noinspection SqlResolve */
|
||||
$data = array(
|
||||
'passcrypt' => 'sha1',
|
||||
'conf' => array(
|
||||
'select-user' => '
|
||||
SELECT id AS uid,
|
||||
username AS user,
|
||||
username AS name,
|
||||
password AS hash,
|
||||
email AS mail
|
||||
FROM fluy_users
|
||||
WHERE username = :user
|
||||
',
|
||||
'select-user-groups' => '
|
||||
SELECT g_title AS `group`
|
||||
FROM fluy_groups G, fluy_users U
|
||||
WHERE U.id = :uid
|
||||
AND U.group_id = G.g_id
|
||||
',
|
||||
'select-groups' => '
|
||||
SELECT g_id AS gid, g_title AS `group`
|
||||
FROM fluy_groups
|
||||
',
|
||||
'insert-user' => '
|
||||
INSERT INTO fluy_users
|
||||
(group_id, username, password, email)
|
||||
VALUES (0, :user, :hash, :mail)
|
||||
',
|
||||
'delete-user' => '
|
||||
DELETE FROM fluy_users
|
||||
WHERE id = :uid
|
||||
',
|
||||
'list-users' => '
|
||||
SELECT DISTINCT username AS user
|
||||
FROM fluy_users U, fluy_groups G
|
||||
WHERE U.id = G.g_id
|
||||
AND G.g_title LIKE :group
|
||||
AND U.username LIKE :user
|
||||
AND U.username LIKE :name
|
||||
AND U.email LIKE :mail
|
||||
ORDER BY username
|
||||
LIMIT :limit
|
||||
OFFSET :start
|
||||
',
|
||||
'count-users' => '
|
||||
SELECT COUNT(DISTINCT username) AS `count`
|
||||
FROM fluy_users U, fluy_groups G
|
||||
WHERE U.id = G.g_id
|
||||
AND G.g_title LIKE :group
|
||||
AND U.username LIKE :user
|
||||
AND U.username LIKE :name
|
||||
AND U.email LIKE :mail
|
||||
',
|
||||
'update-user-info' => '', // we can't do this because username = displayname
|
||||
'update-user-login' => '
|
||||
UPDATE fluy_users
|
||||
SET username = :newlogin
|
||||
WHERE id = :uid
|
||||
',
|
||||
'update-user-pass' => '
|
||||
UPDATE fluy_users
|
||||
SET password = :hash
|
||||
WHERE id = :uid
|
||||
',
|
||||
'insert-group' => '
|
||||
INSERT INTO fluy_groups (g_title) VALUES (:group)
|
||||
',
|
||||
'join-group' => '
|
||||
UPDATE fluy_users
|
||||
SET group_id = :gid
|
||||
WHERE id = :uid
|
||||
',
|
||||
'leave-group' => '
|
||||
SELECT 1
|
||||
', // we do a no-op for this
|
||||
),
|
||||
'users' => array(
|
||||
array(
|
||||
'user' => 'admin',
|
||||
'pass' => 'pass',
|
||||
'name' => 'admin',
|
||||
'mail' => 'admin@example.com',
|
||||
'grps' =>
|
||||
array(
|
||||
0 => 'Administrators',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'user' => 'test1',
|
||||
'pass' => 'password',
|
||||
'name' => 'test1',
|
||||
'mail' => 'test1@example.com',
|
||||
'grps' =>
|
||||
array(
|
||||
0 => 'test',
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
@ -0,0 +1,136 @@
|
||||
-- phpMyAdmin SQL Dump
|
||||
-- version 4.0.10.7
|
||||
-- http://www.phpmyadmin.net
|
||||
--
|
||||
-- Host: localhost:3306
|
||||
-- Generation Time: Feb 12, 2016 at 03:06 PM
|
||||
-- Server version: 10.0.23-MariaDB
|
||||
-- PHP Version: 5.4.31
|
||||
|
||||
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
||||
SET time_zone = "+00:00";
|
||||
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8 */;
|
||||
|
||||
--
|
||||
-- Database: `dokuwiki_flux570`
|
||||
--
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `fluy_groups`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `fluy_groups` (
|
||||
`g_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`g_title` varchar(50) NOT NULL DEFAULT '',
|
||||
`g_user_title` varchar(50) DEFAULT NULL,
|
||||
`g_promote_min_posts` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`g_promote_next_group` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`g_moderator` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`g_mod_edit_users` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`g_mod_rename_users` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`g_mod_change_passwords` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`g_mod_ban_users` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`g_mod_promote_users` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`g_read_board` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_view_users` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_post_replies` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_post_topics` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_edit_posts` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_delete_posts` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_delete_topics` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_post_links` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_set_title` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_search` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_search_users` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_send_email` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`g_post_flood` smallint(6) NOT NULL DEFAULT '30',
|
||||
`g_search_flood` smallint(6) NOT NULL DEFAULT '30',
|
||||
`g_email_flood` smallint(6) NOT NULL DEFAULT '60',
|
||||
`g_report_flood` smallint(6) NOT NULL DEFAULT '60',
|
||||
PRIMARY KEY (`g_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;
|
||||
|
||||
--
|
||||
-- Dumping data for table `fluy_groups`
|
||||
--
|
||||
|
||||
INSERT INTO `fluy_groups` (`g_id`, `g_title`, `g_user_title`, `g_promote_min_posts`, `g_promote_next_group`, `g_moderator`, `g_mod_edit_users`, `g_mod_rename_users`, `g_mod_change_passwords`, `g_mod_ban_users`, `g_mod_promote_users`, `g_read_board`, `g_view_users`, `g_post_replies`, `g_post_topics`, `g_edit_posts`, `g_delete_posts`, `g_delete_topics`, `g_post_links`, `g_set_title`, `g_search`, `g_search_users`, `g_send_email`, `g_post_flood`, `g_search_flood`, `g_email_flood`, `g_report_flood`) VALUES
|
||||
(1, 'Administrators', 'Administrator', 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0),
|
||||
(2, 'Moderators', 'Moderator', 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0),
|
||||
(3, 'Guests', NULL, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 60, 30, 0, 0),
|
||||
(4, 'Members', NULL, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 60, 30, 60, 60),
|
||||
(5, 'test', NULL, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 60, 30, 60, 60);
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `fluy_users`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `fluy_users` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`group_id` int(10) unsigned NOT NULL DEFAULT '3',
|
||||
`username` varchar(200) NOT NULL DEFAULT '',
|
||||
`password` varchar(40) NOT NULL DEFAULT '',
|
||||
`email` varchar(80) NOT NULL DEFAULT '',
|
||||
`title` varchar(50) DEFAULT NULL,
|
||||
`realname` varchar(40) DEFAULT NULL,
|
||||
`url` varchar(100) DEFAULT NULL,
|
||||
`jabber` varchar(80) DEFAULT NULL,
|
||||
`icq` varchar(12) DEFAULT NULL,
|
||||
`msn` varchar(80) DEFAULT NULL,
|
||||
`aim` varchar(30) DEFAULT NULL,
|
||||
`yahoo` varchar(30) DEFAULT NULL,
|
||||
`location` varchar(30) DEFAULT NULL,
|
||||
`signature` text,
|
||||
`disp_topics` tinyint(3) unsigned DEFAULT NULL,
|
||||
`disp_posts` tinyint(3) unsigned DEFAULT NULL,
|
||||
`email_setting` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`notify_with_post` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`auto_notify` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`show_smilies` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`show_img` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`show_img_sig` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`show_avatars` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`show_sig` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`timezone` float NOT NULL DEFAULT '0',
|
||||
`dst` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`time_format` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`date_format` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`language` varchar(25) NOT NULL DEFAULT 'English',
|
||||
`style` varchar(25) NOT NULL DEFAULT 'Air',
|
||||
`num_posts` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`last_post` int(10) unsigned DEFAULT NULL,
|
||||
`last_search` int(10) unsigned DEFAULT NULL,
|
||||
`last_email_sent` int(10) unsigned DEFAULT NULL,
|
||||
`last_report_sent` int(10) unsigned DEFAULT NULL,
|
||||
`registered` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`registration_ip` varchar(39) NOT NULL DEFAULT '0.0.0.0',
|
||||
`last_visit` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`admin_note` varchar(30) DEFAULT NULL,
|
||||
`activate_string` varchar(80) DEFAULT NULL,
|
||||
`activate_key` varchar(8) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `fluy_users_username_idx` (`username`(25)),
|
||||
KEY `fluy_users_registered_idx` (`registered`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
|
||||
|
||||
--
|
||||
-- Dumping data for table `fluy_users`
|
||||
--
|
||||
|
||||
INSERT INTO `fluy_users` (`id`, `group_id`, `username`, `password`, `email`, `title`, `realname`, `url`, `jabber`, `icq`, `msn`, `aim`, `yahoo`, `location`, `signature`, `disp_topics`, `disp_posts`, `email_setting`, `notify_with_post`, `auto_notify`, `show_smilies`, `show_img`, `show_img_sig`, `show_avatars`, `show_sig`, `timezone`, `dst`, `time_format`, `date_format`, `language`, `style`, `num_posts`, `last_post`, `last_search`, `last_email_sent`, `last_report_sent`, `registered`, `registration_ip`, `last_visit`, `admin_note`, `activate_string`, `activate_key`) VALUES
|
||||
(1, 3, 'Guest', 'Guest', 'Guest', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 'English', 'Air', 0, NULL, NULL, NULL, NULL, 0, '0.0.0.0', 0, NULL, NULL, NULL),
|
||||
(2, 1, 'admin', '9d4e1e23bd5b727046a9e3b4b7db57bd8d6ee684', 'admin@example.com', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 'English', 'Air', 1, 1455307304, NULL, NULL, NULL, 1455307304, '86.56.56.211', 1455307448, NULL, NULL, NULL),
|
||||
(3, 5, 'test1', '5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8', 'test1@example.com', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 'English', 'Air', 0, NULL, NULL, NULL, NULL, 1455307527, '86.56.56.217', 1455307529, NULL, NULL, NULL);
|
||||
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
@ -0,0 +1,144 @@
|
||||
<?php
|
||||
/**
|
||||
* Configuration for mybb. Password checking is done in SQL
|
||||
*
|
||||
* mybb stores additional group ids in a commaseparated list of mybb_users.addtionalgroups This
|
||||
* is currently not supported in the setup below. If someone can come up with a clever config for
|
||||
* that PRs would be welcome.
|
||||
*/
|
||||
/** @noinspection SqlResolve */
|
||||
$data = array(
|
||||
'passcrypt' => 'sha1',
|
||||
'conf' => array(
|
||||
'select-user' => '
|
||||
SELECT uid,
|
||||
username AS user,
|
||||
username AS name,
|
||||
email AS mail
|
||||
FROM mybb_users
|
||||
WHERE username = :user
|
||||
',
|
||||
'check-pass' => '
|
||||
SELECT uid
|
||||
FROM mybb_users
|
||||
WHERE username = :user
|
||||
AND password = MD5(CONCAT(MD5(salt), MD5(:clear)))
|
||||
',
|
||||
'select-user-groups' => '
|
||||
SELECT UG.title AS `group`,
|
||||
UG.gid
|
||||
FROM mybb_usergroups UG,
|
||||
mybb_users U
|
||||
WHERE U.usergroup = UG.gid
|
||||
AND U.uid = :uid
|
||||
',
|
||||
'select-groups' => '
|
||||
SELECT gid, title AS `group`
|
||||
FROM mybb_usergroups
|
||||
',
|
||||
'insert-user' => '
|
||||
SET @salt = LEFT(UUID(), 10);
|
||||
INSERT INTO mybb_users
|
||||
(username, email, salt, password, regdate)
|
||||
VALUES (:user, :mail, @salt, MD5(CONCAT(MD5(@salt), MD5(:clear))), UNIX_TIMESTAMP() )
|
||||
',
|
||||
'delete-user' => '
|
||||
DELETE FROM mybb_users
|
||||
WHERE uid = :uid
|
||||
',
|
||||
'list-users' => '
|
||||
SELECT U.username AS user
|
||||
FROM mybb_usergroups UG,
|
||||
mybb_users U
|
||||
WHERE U.usergroup = UG.gid
|
||||
AND UG.title LIKE :group
|
||||
AND U.username LIKE :user
|
||||
AND U.username LIKE :name
|
||||
AND U.email LIKE :mail
|
||||
ORDER BY U.username
|
||||
LIMIT :limit
|
||||
OFFSET :start
|
||||
',
|
||||
'count-users' => '
|
||||
SELECT COUNT(U.username) AS `count`
|
||||
FROM mybb_usergroups UG,
|
||||
mybb_users U
|
||||
WHERE U.usergroup = UG.gid
|
||||
AND UG.title LIKE :group
|
||||
AND U.username LIKE :user
|
||||
AND U.username LIKE :name
|
||||
AND U.email LIKE :mail
|
||||
',
|
||||
'update-user-info' => '
|
||||
UPDATE mybb_users
|
||||
SET email = :mail
|
||||
WHERE uid = :uid
|
||||
', // we do not support changing the full name as that is the same as the login
|
||||
'update-user-login' => '
|
||||
UPDATE mybb_users
|
||||
SET username = :newlogin
|
||||
WHERE uid = :uid
|
||||
',
|
||||
'update-user-pass' => '
|
||||
SET @salt = LEFT(UUID(), 10);
|
||||
UPDATE mybb_users
|
||||
SET salt = @salt,
|
||||
password = MD5(CONCAT(MD5(@salt), MD5(:clear)))
|
||||
WHERE uid = :uid
|
||||
',
|
||||
'insert-group' => '
|
||||
INSERT INTO mybb_usergroups (title)
|
||||
VALUES (:group)
|
||||
',
|
||||
'join-group' => '
|
||||
UPDATE mybb_users
|
||||
SET usergroup = :gid
|
||||
WHERE uid = :uid
|
||||
',
|
||||
'leave-group' => '', // makes probably no sense to implement
|
||||
),
|
||||
'users' => array(
|
||||
array(
|
||||
'user' => 'Test One',
|
||||
'pass' => 'fakepass',
|
||||
'name' => 'Test One',
|
||||
'mail' => 'no_one@nowhere.com',
|
||||
'grps' =>
|
||||
array(
|
||||
0 => 'Registered',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'user' => 'Test Two',
|
||||
'pass' => 'fakepass',
|
||||
'name' => 'Test Two',
|
||||
'mail' => 'no_one@nowhere.com',
|
||||
'grps' =>
|
||||
array(
|
||||
0 => 'Super Moderators',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'user' => 'Test Three',
|
||||
'pass' => 'fakepass',
|
||||
'name' => 'Test Three',
|
||||
'mail' => 'no_one@nowhere.com',
|
||||
'grps' =>
|
||||
array(
|
||||
0 => 'Administrators',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'user' => 'Test Four',
|
||||
'pass' => 'fakepass',
|
||||
'name' => 'Test Four',
|
||||
'mail' => 'no_one@nowhere.com',
|
||||
'grps' =>
|
||||
array(
|
||||
0 => 'Moderators',
|
||||
),
|
||||
),
|
||||
|
||||
|
||||
),
|
||||
);
|
@ -0,0 +1,306 @@
|
||||
-- phpMyAdmin SQL Dump
|
||||
-- version 4.4.14
|
||||
-- http://www.phpmyadmin.net
|
||||
--
|
||||
-- Host: 127.0.0.1
|
||||
-- Generation Time: Aug 19, 2016 at 04:02 PM
|
||||
-- Server version: 5.5.45
|
||||
-- PHP Version: 5.4.45
|
||||
|
||||
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
||||
SET time_zone = "+00:00";
|
||||
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
|
||||
--
|
||||
-- Database: `mybb`
|
||||
--
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `mybb_usergroups`
|
||||
--
|
||||
|
||||
CREATE TABLE `mybb_usergroups` (
|
||||
`gid` smallint(5) unsigned NOT NULL,
|
||||
`type` tinyint(1) unsigned NOT NULL DEFAULT '2',
|
||||
`title` varchar(120) NOT NULL DEFAULT '',
|
||||
`description` text NOT NULL DEFAULT '',
|
||||
`namestyle` varchar(200) NOT NULL DEFAULT '{username}',
|
||||
`usertitle` varchar(120) NOT NULL DEFAULT '',
|
||||
`stars` smallint(4) unsigned NOT NULL DEFAULT '0',
|
||||
`starimage` varchar(120) NOT NULL DEFAULT '',
|
||||
`image` varchar(120) NOT NULL DEFAULT '',
|
||||
`disporder` smallint(6) unsigned NOT NULL DEFAULT '0',
|
||||
`isbannedgroup` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canview` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canviewthreads` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canviewprofiles` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`candlattachments` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canviewboardclosed` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canpostthreads` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canpostreplys` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canpostattachments` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canratethreads` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`modposts` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`modthreads` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`mod_edit_posts` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`modattachments` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`caneditposts` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`candeleteposts` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`candeletethreads` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`caneditattachments` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canpostpolls` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canvotepolls` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canundovotes` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canusepms` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`cansendpms` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`cantrackpms` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`candenypmreceipts` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`pmquota` int(3) unsigned NOT NULL DEFAULT '0',
|
||||
`maxpmrecipients` int(4) unsigned NOT NULL DEFAULT '5',
|
||||
`cansendemail` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`cansendemailoverride` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`maxemails` int(3) unsigned NOT NULL DEFAULT '5',
|
||||
`emailfloodtime` int(3) unsigned NOT NULL DEFAULT '5',
|
||||
`canviewmemberlist` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canviewcalendar` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canaddevents` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canbypasseventmod` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canmoderateevents` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canviewonline` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canviewwolinvis` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canviewonlineips` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`cancp` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`issupermod` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`cansearch` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canusercp` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canuploadavatars` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canratemembers` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canchangename` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canbereported` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canchangewebsite` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`showforumteam` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`usereputationsystem` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`cangivereputations` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`candeletereputations` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`reputationpower` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`maxreputationsday` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`maxreputationsperuser` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`maxreputationsperthread` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`candisplaygroup` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`attachquota` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`cancustomtitle` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canwarnusers` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canreceivewarnings` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`maxwarningsday` int(3) unsigned NOT NULL DEFAULT '3',
|
||||
`canmodcp` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`showinbirthdaylist` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canoverridepm` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canusesig` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canusesigxposts` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
`signofollow` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`edittimelimit` int(4) unsigned NOT NULL DEFAULT '0',
|
||||
`maxposts` int(4) unsigned NOT NULL DEFAULT '0',
|
||||
`showmemberlist` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`canmanageannounce` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canmanagemodqueue` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canmanagereportedcontent` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canviewmodlogs` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`caneditprofiles` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canbanusers` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canviewwarnlogs` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`canuseipsearch` tinyint(1) NOT NULL DEFAULT '0'
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `mybb_usergroups`
|
||||
--
|
||||
|
||||
INSERT INTO `mybb_usergroups` (`gid`, `type`, `title`, `description`, `namestyle`, `usertitle`, `stars`, `starimage`, `image`, `disporder`, `isbannedgroup`, `canview`, `canviewthreads`, `canviewprofiles`, `candlattachments`, `canviewboardclosed`, `canpostthreads`, `canpostreplys`, `canpostattachments`, `canratethreads`, `modposts`, `modthreads`, `mod_edit_posts`, `modattachments`, `caneditposts`, `candeleteposts`, `candeletethreads`, `caneditattachments`, `canpostpolls`, `canvotepolls`, `canundovotes`, `canusepms`, `cansendpms`, `cantrackpms`, `candenypmreceipts`, `pmquota`, `maxpmrecipients`, `cansendemail`, `cansendemailoverride`, `maxemails`, `emailfloodtime`, `canviewmemberlist`, `canviewcalendar`, `canaddevents`, `canbypasseventmod`, `canmoderateevents`, `canviewonline`, `canviewwolinvis`, `canviewonlineips`, `cancp`, `issupermod`, `cansearch`, `canusercp`, `canuploadavatars`, `canratemembers`, `canchangename`, `canbereported`, `canchangewebsite`, `showforumteam`, `usereputationsystem`, `cangivereputations`, `candeletereputations`, `reputationpower`, `maxreputationsday`, `maxreputationsperuser`, `maxreputationsperthread`, `candisplaygroup`, `attachquota`, `cancustomtitle`, `canwarnusers`, `canreceivewarnings`, `maxwarningsday`, `canmodcp`, `showinbirthdaylist`, `canoverridepm`, `canusesig`, `canusesigxposts`, `signofollow`, `edittimelimit`, `maxposts`, `showmemberlist`, `canmanageannounce`, `canmanagemodqueue`, `canmanagereportedcontent`, `canviewmodlogs`, `caneditprofiles`, `canbanusers`, `canviewwarnlogs`, `canuseipsearch`) VALUES
|
||||
(1, 1, 'Guests', 'The default group that all visitors are assigned to unless they''re logged in.', '{username}', 'Unregistered', 0, '', '', 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
|
||||
(2, 1, 'Registered', 'After registration, all users are placed in this group by default.', '{username}', '', 0, 'images/star.png', '', 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 200, 5, 1, 0, 5, 5, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 5, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0),
|
||||
(3, 1, 'Super Moderators', 'These users can moderate any forum.', '<span style="color: #CC00CC;"><strong>{username}</strong></span>', 'Super Moderator', 6, 'images/star.png', '', 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 250, 5, 1, 0, 10, 5, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 10, 0, 0, 1, 0, 1, 1, 1, 3, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||
(4, 1, 'Administrators', 'The group all administrators belong to.', '<span style="color: green;"><strong><em>{username}</em></strong></span>', 'Administrator', 7, 'images/star.png', '', 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 2, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||
(5, 1, 'Awaiting Activation', 'Users that have not activated their account by email or manually been activated yet.', '{username}', 'Account not Activated', 0, 'images/star.png', '', 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 5, 0, 0, 5, 5, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0),
|
||||
(6, 1, 'Moderators', 'These users moderate specific forums.', '<span style="color: #CC00CC;"><strong>{username}</strong></span>', 'Moderator', 5, 'images/star.png', '', 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 250, 5, 1, 0, 5, 5, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 10, 0, 0, 1, 0, 1, 1, 1, 3, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||
(7, 1, 'Banned', 'The default user group to which members that are banned are moved to.', '<s>{username}</s>', 'Banned', 0, 'images/star.png', '', 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
|
||||
--
|
||||
-- Indexes for dumped tables
|
||||
--
|
||||
|
||||
--
|
||||
-- Indexes for table `mybb_usergroups`
|
||||
--
|
||||
ALTER TABLE `mybb_usergroups`
|
||||
ADD PRIMARY KEY (`gid`);
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT for dumped tables
|
||||
--
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT for table `mybb_usergroups`
|
||||
--
|
||||
ALTER TABLE `mybb_usergroups`
|
||||
MODIFY `gid` smallint(5) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=8;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
-- phpMyAdmin SQL Dump
|
||||
-- version 4.4.14
|
||||
-- http://www.phpmyadmin.net
|
||||
--
|
||||
-- Host: 127.0.0.1
|
||||
-- Generation Time: Aug 19, 2016 at 03:47 PM
|
||||
-- Server version: 5.5.45
|
||||
-- PHP Version: 5.4.45
|
||||
|
||||
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
||||
SET time_zone = "+00:00";
|
||||
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8mb4 */;
|
||||
|
||||
--
|
||||
-- Database: `mybb`
|
||||
--
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `mybb_users`
|
||||
--
|
||||
|
||||
CREATE TABLE `mybb_users` (
|
||||
`uid` int(10) unsigned NOT NULL,
|
||||
`username` varchar(120) NOT NULL DEFAULT '',
|
||||
`password` varchar(120) NOT NULL DEFAULT '',
|
||||
`salt` varchar(10) NOT NULL DEFAULT '',
|
||||
`loginkey` varchar(50) NOT NULL DEFAULT '',
|
||||
`email` varchar(220) NOT NULL DEFAULT '',
|
||||
`postnum` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`threadnum` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`avatar` varchar(200) NOT NULL DEFAULT '',
|
||||
`avatardimensions` varchar(10) NOT NULL DEFAULT '',
|
||||
`avatartype` varchar(10) NOT NULL DEFAULT '0',
|
||||
`usergroup` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
`additionalgroups` varchar(200) NOT NULL DEFAULT '',
|
||||
`displaygroup` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
`usertitle` varchar(250) NOT NULL DEFAULT '',
|
||||
`regdate` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`lastactive` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`lastvisit` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`lastpost` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`website` varchar(200) NOT NULL DEFAULT '',
|
||||
`icq` varchar(10) NOT NULL DEFAULT '',
|
||||
`aim` varchar(50) NOT NULL DEFAULT '',
|
||||
`yahoo` varchar(50) NOT NULL DEFAULT '',
|
||||
`skype` varchar(75) NOT NULL DEFAULT '',
|
||||
`google` varchar(75) NOT NULL DEFAULT '',
|
||||
`birthday` varchar(15) NOT NULL DEFAULT '',
|
||||
`birthdayprivacy` varchar(4) NOT NULL DEFAULT 'all',
|
||||
`signature` text NOT NULL DEFAULT '',
|
||||
`allownotices` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`hideemail` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`subscriptionmethod` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`invisible` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`receivepms` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`receivefrombuddy` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`pmnotice` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`pmnotify` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`buddyrequestspm` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`buddyrequestsauto` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`threadmode` varchar(8) NOT NULL DEFAULT '',
|
||||
`showimages` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`showvideos` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`showsigs` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`showavatars` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`showquickreply` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`showredirect` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`ppp` smallint(6) unsigned NOT NULL DEFAULT '0',
|
||||
`tpp` smallint(6) unsigned NOT NULL DEFAULT '0',
|
||||
`daysprune` smallint(6) unsigned NOT NULL DEFAULT '0',
|
||||
`dateformat` varchar(4) NOT NULL DEFAULT '',
|
||||
`timeformat` varchar(4) NOT NULL DEFAULT '',
|
||||
`timezone` varchar(5) NOT NULL DEFAULT '',
|
||||
`dst` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`dstcorrection` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`buddylist` text NOT NULL DEFAULT '',
|
||||
`ignorelist` text NOT NULL DEFAULT '',
|
||||
`style` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
`away` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`awaydate` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`returndate` varchar(15) NOT NULL DEFAULT '',
|
||||
`awayreason` varchar(200) NOT NULL DEFAULT '',
|
||||
`pmfolders` text NOT NULL DEFAULT '',
|
||||
`notepad` text NOT NULL DEFAULT '',
|
||||
`referrer` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`referrals` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`reputation` int(11) NOT NULL DEFAULT '0',
|
||||
`regip` varbinary(16) NOT NULL DEFAULT '',
|
||||
`lastip` varbinary(16) NOT NULL DEFAULT '',
|
||||
`language` varchar(50) NOT NULL DEFAULT '',
|
||||
`timeonline` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`showcodebuttons` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`totalpms` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`unreadpms` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`warningpoints` int(3) unsigned NOT NULL DEFAULT '0',
|
||||
`moderateposts` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`moderationtime` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`suspendposting` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`suspensiontime` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`suspendsignature` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`suspendsigtime` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`coppauser` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`classicpostbit` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`loginattempts` smallint(2) unsigned NOT NULL DEFAULT '1',
|
||||
`usernotes` text NOT NULL DEFAULT '',
|
||||
`sourceeditor` tinyint(1) NOT NULL DEFAULT '0'
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=88 DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `mybb_users`
|
||||
--
|
||||
|
||||
INSERT INTO `mybb_users` (`uid`, `username`, `password`, `salt`, `loginkey`, `email`, `postnum`, `threadnum`, `avatar`, `avatardimensions`, `avatartype`, `usergroup`, `additionalgroups`, `displaygroup`, `usertitle`, `regdate`, `lastactive`, `lastvisit`, `lastpost`, `website`, `icq`, `aim`, `yahoo`, `skype`, `google`, `birthday`, `birthdayprivacy`, `signature`, `allownotices`, `hideemail`, `subscriptionmethod`, `invisible`, `receivepms`, `receivefrombuddy`, `pmnotice`, `pmnotify`, `buddyrequestspm`, `buddyrequestsauto`, `threadmode`, `showimages`, `showvideos`, `showsigs`, `showavatars`, `showquickreply`, `showredirect`, `ppp`, `tpp`, `daysprune`, `dateformat`, `timeformat`, `timezone`, `dst`, `dstcorrection`, `buddylist`, `ignorelist`, `style`, `away`, `awaydate`, `returndate`, `awayreason`, `pmfolders`, `notepad`, `referrer`, `referrals`, `reputation`, `regip`, `lastip`, `language`, `timeonline`, `showcodebuttons`, `totalpms`, `unreadpms`, `warningpoints`, `moderateposts`, `moderationtime`, `suspendposting`, `suspensiontime`, `suspendsignature`, `suspendsigtime`, `coppauser`, `classicpostbit`, `loginattempts`, `usernotes`, `sourceeditor`) VALUES
|
||||
(84, 'Test One', '6e90cf918ebce3a577fd72cea919dc64', '0pBnrIIv', 'xALZxWcfw18AhO6M7YxptBrxZqyrJB04CWlyaIniO3ZyMn6P1f', 'no_one@nowhere.com', 0, 0, '', '', '', 2, '', 0, '', 1471614765, 1471614765, 1471614765, 0, '', '0', '', '', '', '', '', 'all', '', 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 'linear', 1, 1, 1, 1, 1, 1, 0, 0, 0, '0', '0', '0', 0, 2, '', '', 0, 0, 0, '0', '', '', '', 0, 0, 0, '', '', '', 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, '', 0),
|
||||
(85, 'Test Two', 'e85f6b7e5804b42d7c7d99329dc1a43f', 'NSX3xNT1', 'VucYxl7EGnsoqVW75COGNAdB0YgtWHc9RFqo4LxIhhtpEFxdIE', 'no_one@nowhere.com', 0, 0, '', '', '', 3, '', 0, '', 1471614850, 1471614850, 1471614850, 0, '', '0', '', '', '', '', '', 'all', '', 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 'linear', 1, 1, 1, 1, 1, 1, 0, 0, 0, '0', '0', '0', 0, 2, '', '', 0, 0, 0, '0', '', '', '', 0, 0, 0, '', '', '', 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, '', 0),
|
||||
(86, 'Test Three', '3669c9583702ca6e32c7817f4bc34f5f', 'CVEbGFXH', 'GivwOlOKuvpfTs8Dc263fNnPdSQW1k1C1fHt7gukTJdRvTZGca', 'no_one@nowhere.com', 0, 0, '', '', '', 4, '', 0, '', 1471615021, 1471615021, 1471615021, 0, '', '0', '', '', '', '', '', 'all', '', 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 'linear', 1, 1, 1, 1, 1, 1, 0, 0, 0, '0', '0', '0', 0, 2, '', '', 0, 0, 0, '0', '', '', '', 0, 0, 0, '', '', '', 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, '', 0),
|
||||
(87, 'Test Four', '693a0cd028c9adb4cb28d8a8be3dc7af', 'x6q7QFmU', 'S4oU92jET3yjvbiganAKCYde9ksoacJeb4sC247qvYftgwsYmu', 'no_one@nowhere.com', 0, 0, '', '', '', 6, '', 0, '', 1471615064, 1471615064, 1471615064, 0, '', '0', '', '', '', '', '', 'all', '', 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 'linear', 1, 1, 1, 1, 1, 1, 0, 0, 0, '0', '0', '0', 0, 2, '', '', 0, 0, 0, '0', '', '', '', 0, 0, 0, '', '', '', 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, '', 0);
|
||||
|
||||
--
|
||||
-- Indexes for dumped tables
|
||||
--
|
||||
|
||||
--
|
||||
-- Indexes for table `mybb_users`
|
||||
--
|
||||
ALTER TABLE `mybb_users`
|
||||
ADD PRIMARY KEY (`uid`),
|
||||
ADD UNIQUE KEY `username` (`username`),
|
||||
ADD KEY `usergroup` (`usergroup`),
|
||||
ADD KEY `regip` (`regip`),
|
||||
ADD KEY `lastip` (`lastip`);
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT for dumped tables
|
||||
--
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT for table `mybb_users`
|
||||
--
|
||||
ALTER TABLE `mybb_users`
|
||||
MODIFY `uid` int(10) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=88;
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
@ -0,0 +1,115 @@
|
||||
<?php
|
||||
/**
|
||||
* Basic Wordpress config
|
||||
*
|
||||
* Wordpress has no proper groups. This configures the default access permissions as groups. Better group
|
||||
* support is available through a Wrdpress plugin
|
||||
*/
|
||||
/** @noinspection SqlResolve */
|
||||
$data = array(
|
||||
'passcrypt' => 'pmd5',
|
||||
'conf' => array(
|
||||
'select-user' => '
|
||||
SELECT ID AS uid,
|
||||
user_login AS user,
|
||||
display_name AS name,
|
||||
user_pass AS hash,
|
||||
user_email AS mail
|
||||
FROM wpvk_users
|
||||
WHERE user_login = :user
|
||||
',
|
||||
'select-user-groups' => '
|
||||
SELECT CONCAT("group",meta_value) AS `group`
|
||||
FROM wpvk_usermeta
|
||||
WHERE user_id = :uid
|
||||
AND meta_key = "wpvk_user_level"
|
||||
',
|
||||
'select-groups' => '',
|
||||
'insert-user' => '',
|
||||
'delete-user' => '',
|
||||
'list-users' => '
|
||||
SELECT DISTINCT user_login AS user
|
||||
FROM wpvk_users U, wpvk_usermeta M
|
||||
WHERE U.ID = M.user_id
|
||||
AND M.meta_key = "wpvk_user_level"
|
||||
AND CONCAT("group", M.meta_value) LIKE :group
|
||||
AND U.user_login LIKE :user
|
||||
AND U.display_name LIKE :name
|
||||
AND U.user_email LIKE :mail
|
||||
ORDER BY user_login
|
||||
LIMIT :limit
|
||||
OFFSET :start
|
||||
',
|
||||
'count-users' => '
|
||||
SELECT COUNT(DISTINCT user_login) as `count`
|
||||
FROM wpvk_users U, wpvk_usermeta M
|
||||
WHERE U.ID = M.user_id
|
||||
AND M.meta_key = "wpvk_user_level"
|
||||
AND CONCAT("group", M.meta_value) LIKE :group
|
||||
AND U.user_login LIKE :user
|
||||
AND U.display_name LIKE :name
|
||||
AND U.user_email LIKE :mail
|
||||
',
|
||||
'update-user-info' => '
|
||||
UPDATE wpvk_users
|
||||
SET display_name = :name,
|
||||
user_email = :mail
|
||||
WHERE ID = :uid
|
||||
',
|
||||
'update-user-login' => '
|
||||
UPDATE wpvk_users
|
||||
SET user_login = :newlogin
|
||||
WHERE ID = :uid
|
||||
',
|
||||
'update-user-pass' => '
|
||||
UPDATE wpvk_users
|
||||
SET user_pass = :hash
|
||||
WHERE ID = :uid
|
||||
',
|
||||
'insert-group' => '',
|
||||
'join-group' => '',
|
||||
'leave-group' => '',
|
||||
),
|
||||
'users' => array(
|
||||
array(
|
||||
'user' => 'admin',
|
||||
'pass' => 'pass',
|
||||
'name' => 'admin',
|
||||
'mail' => 'admin@example.com',
|
||||
'grps' =>
|
||||
array(
|
||||
0 => 'group10',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'user' => 'test1',
|
||||
'pass' => 'pass',
|
||||
'name' => 'Test1 Subscriber',
|
||||
'mail' => 'test1@example.com',
|
||||
'grps' =>
|
||||
array(
|
||||
0 => 'group0',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'user' => 'test2',
|
||||
'pass' => 'pass',
|
||||
'name' => 'Test2 Contributor',
|
||||
'mail' => 'test2@example.com',
|
||||
'grps' =>
|
||||
array(
|
||||
0 => 'group1',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'user' => 'test3',
|
||||
'pass' => 'pass',
|
||||
'name' => 'Test3 Author',
|
||||
'mail' => 'test3@example.com',
|
||||
'grps' =>
|
||||
array(
|
||||
0 => 'group2',
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
@ -0,0 +1,130 @@
|
||||
-- phpMyAdmin SQL Dump
|
||||
-- version 4.0.10.7
|
||||
-- http://www.phpmyadmin.net
|
||||
--
|
||||
-- Host: localhost:3306
|
||||
-- Generation Time: Feb 10, 2016 at 02:02 PM
|
||||
-- Server version: 10.0.23-MariaDB
|
||||
-- PHP Version: 5.4.31
|
||||
|
||||
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
||||
SET time_zone = "+00:00";
|
||||
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||
/*!40101 SET NAMES utf8 */;
|
||||
|
||||
--
|
||||
-- Database: `dokuwiki_wp240`
|
||||
--
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `wpvk_usermeta`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `wpvk_usermeta` (
|
||||
`umeta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`user_id` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`meta_key` varchar(255) DEFAULT NULL,
|
||||
`meta_value` longtext,
|
||||
PRIMARY KEY (`umeta_id`),
|
||||
KEY `user_id` (`user_id`),
|
||||
KEY `meta_key` (`meta_key`(191))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=52 ;
|
||||
|
||||
--
|
||||
-- Dumping data for table `wpvk_usermeta`
|
||||
--
|
||||
|
||||
INSERT INTO `wpvk_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES
|
||||
(1, 1, 'nickname', 'admin'),
|
||||
(2, 1, 'first_name', 'First'),
|
||||
(3, 1, 'last_name', 'Last'),
|
||||
(4, 1, 'description', ''),
|
||||
(5, 1, 'rich_editing', 'true'),
|
||||
(6, 1, 'comment_shortcuts', 'false'),
|
||||
(7, 1, 'admin_color', 'fresh'),
|
||||
(8, 1, 'use_ssl', '0'),
|
||||
(9, 1, 'show_admin_bar_front', 'true'),
|
||||
(10, 1, 'wpvk_capabilities', 'a:1:{s:13:"administrator";b:1;}'),
|
||||
(11, 1, 'wpvk_user_level', '10'),
|
||||
(12, 1, 'dismissed_wp_pointers', ''),
|
||||
(13, 1, 'show_welcome_panel', '1'),
|
||||
(14, 1, 'session_tokens', 'a:1:{s:64:"3e9f99a7068bf3fb79f50e111b6ef10f599beb466c27152205d4b89360c5004d";a:4:{s:10:"expiration";i:1456340157;s:2:"ip";s:12:"86.56.56.217";s:2:"ua";s:104:"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36";s:5:"login";i:1455130557;}}'),
|
||||
(15, 1, 'wpvk_dashboard_quick_press_last_post_id', '3'),
|
||||
(16, 2, 'nickname', 'test1'),
|
||||
(17, 2, 'first_name', 'Test1'),
|
||||
(18, 2, 'last_name', 'Subscriber'),
|
||||
(19, 2, 'description', ''),
|
||||
(20, 2, 'rich_editing', 'true'),
|
||||
(21, 2, 'comment_shortcuts', 'false'),
|
||||
(22, 2, 'admin_color', 'fresh'),
|
||||
(23, 2, 'use_ssl', '0'),
|
||||
(24, 2, 'show_admin_bar_front', 'true'),
|
||||
(25, 2, 'wpvk_capabilities', 'a:1:{s:10:"subscriber";b:1;}'),
|
||||
(26, 2, 'wpvk_user_level', '0'),
|
||||
(27, 2, 'dismissed_wp_pointers', ''),
|
||||
(28, 3, 'nickname', 'test2'),
|
||||
(29, 3, 'first_name', 'Test2'),
|
||||
(30, 3, 'last_name', 'Contributor'),
|
||||
(31, 3, 'description', ''),
|
||||
(32, 3, 'rich_editing', 'true'),
|
||||
(33, 3, 'comment_shortcuts', 'false'),
|
||||
(34, 3, 'admin_color', 'fresh'),
|
||||
(35, 3, 'use_ssl', '0'),
|
||||
(36, 3, 'show_admin_bar_front', 'true'),
|
||||
(37, 3, 'wpvk_capabilities', 'a:1:{s:11:"contributor";b:1;}'),
|
||||
(38, 3, 'wpvk_user_level', '1'),
|
||||
(39, 3, 'dismissed_wp_pointers', ''),
|
||||
(40, 4, 'nickname', 'test3'),
|
||||
(41, 4, 'first_name', 'Test3'),
|
||||
(42, 4, 'last_name', 'Author'),
|
||||
(43, 4, 'description', ''),
|
||||
(44, 4, 'rich_editing', 'true'),
|
||||
(45, 4, 'comment_shortcuts', 'false'),
|
||||
(46, 4, 'admin_color', 'fresh'),
|
||||
(47, 4, 'use_ssl', '0'),
|
||||
(48, 4, 'show_admin_bar_front', 'true'),
|
||||
(49, 4, 'wpvk_capabilities', 'a:1:{s:6:"author";b:1;}'),
|
||||
(50, 4, 'wpvk_user_level', '2'),
|
||||
(51, 4, 'dismissed_wp_pointers', '');
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `wpvk_users`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `wpvk_users` (
|
||||
`ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`user_login` varchar(60) NOT NULL DEFAULT '',
|
||||
`user_pass` varchar(255) NOT NULL DEFAULT '',
|
||||
`user_nicename` varchar(50) NOT NULL DEFAULT '',
|
||||
`user_email` varchar(100) NOT NULL DEFAULT '',
|
||||
`user_url` varchar(100) NOT NULL DEFAULT '',
|
||||
`user_registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`user_activation_key` varchar(255) NOT NULL DEFAULT '',
|
||||
`user_status` int(11) NOT NULL DEFAULT '0',
|
||||
`display_name` varchar(250) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`ID`),
|
||||
KEY `user_login_key` (`user_login`),
|
||||
KEY `user_nicename` (`user_nicename`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
|
||||
|
||||
--
|
||||
-- Dumping data for table `wpvk_users`
|
||||
--
|
||||
|
||||
INSERT INTO `wpvk_users` (`ID`, `user_login`, `user_pass`, `user_nicename`, `user_email`, `user_url`, `user_registered`, `user_activation_key`, `user_status`, `display_name`) VALUES
|
||||
(1, 'admin', '$P$BlO2X5nM.djjfsPjOBHz97GHZmpBRr.', 'admin', 'admin@example.com', '', '2016-02-10 18:55:26', '', 0, 'admin'),
|
||||
(2, 'test1', '$P$B3BfWySh.ymDeURK0OXMFo4vh4JprO0', 'test1', 'test1@example.com', '', '2016-02-10 18:57:47', '', 0, 'Test1 Subscriber'),
|
||||
(3, 'test2', '$P$BMNEUEo5nalKEswryuP69KXEfz8Y.z.', 'test2', 'test2@example.com', '', '2016-02-10 18:58:32', '', 0, 'Test2 Contributor'),
|
||||
(4, 'test3', '$P$B2PP3AP6NF/jLO0HYu3xf577rBnp2j.', 'test3', 'test3@example.com', '', '2016-02-10 18:59:19', '', 0, 'Test3 Author');
|
||||
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* pgsql tests for the authpdo plugin
|
||||
*
|
||||
* @group plugin_authpdo
|
||||
* @group plugins
|
||||
*/
|
||||
class pgsql_plugin_authpdo_test extends mysql_plugin_authpdo_test {
|
||||
|
||||
protected $driver = 'pgsql';
|
||||
|
||||
}
|
@ -0,0 +1,140 @@
|
||||
<?php
|
||||
/**
|
||||
* Django application config
|
||||
*
|
||||
*/
|
||||
/** @noinspection SqlResolve */
|
||||
$data = array(
|
||||
'passcrypt' => 'djangopbkdf2_sha256',
|
||||
'conf' => array(
|
||||
'select-user' => '
|
||||
SELECT id AS uid,
|
||||
username AS "user",
|
||||
CONCAT_WS(\' \', first_name, last_name) AS name,
|
||||
password AS hash,
|
||||
email AS mail
|
||||
FROM auth_user
|
||||
WHERE username = :user
|
||||
',
|
||||
'select-user-groups' => '
|
||||
SELECT G.name AS "group"
|
||||
FROM auth_group G, auth_user_groups UG
|
||||
WHERE UG.user_id = :uid
|
||||
AND UG.group_id = G.id
|
||||
',
|
||||
'select-groups' => '
|
||||
SELECT id AS gid, name AS "group"
|
||||
FROM auth_group
|
||||
',
|
||||
'insert-user' => '
|
||||
INSERT INTO auth_user
|
||||
(password, is_superuser, username, first_name, last_name, email, is_staff, is_active, date_joined)
|
||||
VALUES (:hash, false, :user, SPLIT_PART(:name,\' \',1), SPLIT_PART(:name,\' \',2), :mail, false, true, NOW())
|
||||
',
|
||||
'delete-user' => '
|
||||
DELETE FROM auth_user_user_permissions
|
||||
WHERE user_id = :uid
|
||||
;
|
||||
DELETE FROM auth_user
|
||||
WHERE id = :uid
|
||||
',
|
||||
'list-users' => '
|
||||
SELECT DISTINCT U.username AS "user"
|
||||
FROM auth_user U, auth_user_groups UG, auth_group G
|
||||
WHERE U.id = UG.user_id
|
||||
AND G.id = UG.group_id
|
||||
AND G.name LIKE :group
|
||||
AND U.username LIKE :user
|
||||
AND CONCAT_WS(\' \', U.first_name, U.last_name) LIKE :name
|
||||
AND U.email LIKE :mail
|
||||
ORDER BY username
|
||||
LIMIT :limit
|
||||
OFFSET :start
|
||||
',
|
||||
'count-users' => '
|
||||
SELECT COUNT(DISTINCT U.username) AS count
|
||||
FROM auth_user U, auth_user_groups UG, auth_group G
|
||||
WHERE U.id = UG.user_id
|
||||
AND G.id = UG.group_id
|
||||
AND G.name LIKE :group
|
||||
AND U.username LIKE :user
|
||||
AND CONCAT_WS(\' \', U.first_name, U.last_name) LIKE :name
|
||||
AND U.email LIKE :mail
|
||||
',
|
||||
'update-user-info' => '
|
||||
UPDATE auth_user
|
||||
SET first_name = SPLIT_PART(:name,\' \',1),
|
||||
last_name = SPLIT_PART(:name,\' \',2),
|
||||
email = :mail
|
||||
WHERE id = :uid
|
||||
',
|
||||
'update-user-login' => '
|
||||
UPDATE auth_user
|
||||
SET username = :newlogin
|
||||
WHERE id = :uid
|
||||
',
|
||||
'update-user-pass' => '
|
||||
UPDATE auth_user
|
||||
SET password = :hash
|
||||
WHERE id = :uid
|
||||
',
|
||||
'insert-group' => '
|
||||
INSERT INTO auth_group (name) VALUES (:group)
|
||||
',
|
||||
'join-group' => '
|
||||
INSERT INTO auth_user_groups (user_id, group_id) VALUES (:uid, :gid)
|
||||
',
|
||||
'leave-group' => '
|
||||
DELETE FROM auth_user_groups
|
||||
WHERE user_id = :uid
|
||||
AND group_id = :gid
|
||||
',
|
||||
),
|
||||
'users' => array(
|
||||
array(
|
||||
'user' => 'test-billing',
|
||||
'pass' => 'P4zzW0rd!',
|
||||
'name' => 'Joana Gröschel',
|
||||
'mail' => 'jg@billing.com',
|
||||
'grps' =>
|
||||
array(
|
||||
0 => 'Billing',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'user' => 'test-kunde',
|
||||
'pass' => 'P4zzW0rd!',
|
||||
'name' => 'Niels Buchberger',
|
||||
'mail' => 'ng@kunde.com',
|
||||
'grps' =>
|
||||
array(
|
||||
0 => 'Kunden',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'user' => 'test-mitarbeiter',
|
||||
'pass' => 'P4zzW0rd!',
|
||||
'name' => 'Claus Wernke',
|
||||
'mail' => 'cw@mitarbeiter.com',
|
||||
'grps' =>
|
||||
array(
|
||||
0 => 'Mitarbeiter',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'user' => 'test-projektleiter',
|
||||
'pass' => 'P4zzW0rd!',
|
||||
'name' => 'Sascha Weiher',
|
||||
'mail' => 'sw@projektleiter.com',
|
||||
'grps' =>
|
||||
array(
|
||||
0 => 'Projektleiter',
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
// passwords in the dump use the newest format, we need PHP support for that
|
||||
if(!function_exists('hash_pbkdf2') || !in_array('sha256', hash_algos())){
|
||||
$data = 'missing pbkdf2 hash support to check passwords - django test has to be skipped';
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,218 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Class testable_auth_plugin_authpdo
|
||||
*
|
||||
* makes protected methods public for testing
|
||||
*/
|
||||
class testable_auth_plugin_authpdo extends auth_plugin_authpdo {
|
||||
public function getPluginName() {
|
||||
return 'authpdo';
|
||||
}
|
||||
|
||||
public function selectGroups() {
|
||||
return parent::selectGroups();
|
||||
}
|
||||
|
||||
public function addGroup($group) {
|
||||
return parent::addGroup($group);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* General tests for the authpdo plugin
|
||||
*
|
||||
* @group plugin_authpdo
|
||||
* @group plugins
|
||||
*/
|
||||
class sqlite_plugin_authpdo_test extends DokuWikiTest {
|
||||
|
||||
protected $dbfile;
|
||||
|
||||
public function test_pdo_sqlite_support() {
|
||||
if(!class_exists('PDO') || !in_array('sqlite',PDO::getAvailableDrivers())) {
|
||||
$this->markTestSkipped('skipping all authpdo tests for sqlite. Need PDO_sqlite extension');
|
||||
}
|
||||
$this->assertTrue(true); // avoid being marked as risky for having no assertion
|
||||
}
|
||||
|
||||
public function setUp() : void {
|
||||
parent::setUp();
|
||||
$this->dbfile = tempnam('/tmp/', 'pluginpdo_test_');
|
||||
copy(__DIR__ . '/test.sqlite3', $this->dbfile);
|
||||
|
||||
global $conf;
|
||||
|
||||
$conf['plugin']['authpdo']['debug'] = 1;
|
||||
$conf['plugin']['authpdo']['dsn'] = 'sqlite:' . $this->dbfile;
|
||||
$conf['plugin']['authpdo']['user'] = '';
|
||||
$conf['plugin']['authpdo']['pass'] = '';
|
||||
|
||||
$conf['plugin']['authpdo']['select-user'] = 'SELECT id AS uid, login AS user, name, pass AS clear, mail FROM user WHERE login = :user';
|
||||
$conf['plugin']['authpdo']['select-user-groups'] = 'SELECT * FROM member AS m, "group" AS g WHERE m.gid = g.id AND m.uid = :uid';
|
||||
$conf['plugin']['authpdo']['select-groups'] = 'SELECT id AS gid, "group" FROM "group"';
|
||||
|
||||
$conf['plugin']['authpdo']['insert-user'] = 'INSERT INTO user (login, pass, name, mail) VALUES (:user, :hash, :name, :mail)';
|
||||
$conf['plugin']['authpdo']['delete-user'] = 'DELETE FROM user WHERE id = :uid';
|
||||
|
||||
$conf['plugin']['authpdo']['list-users'] = 'SELECT DISTINCT login as user
|
||||
FROM user U, member M, "group" G
|
||||
WHERE U.id = M.uid
|
||||
AND M.gid = G.id
|
||||
AND G."group" LIKE :group
|
||||
AND U.login LIKE :user
|
||||
AND U.name LIKE :name
|
||||
AND U.mail LIKE :mail
|
||||
ORDER BY login
|
||||
LIMIT :start,:limit';
|
||||
|
||||
$conf['plugin']['authpdo']['count-users'] = 'SELECT COUNT(DISTINCT login) as count
|
||||
FROM user U, member M, "group" G
|
||||
WHERE U.id = M.uid
|
||||
AND M.gid = G.id
|
||||
AND G."group" LIKE :group
|
||||
AND U.login LIKE :user
|
||||
AND U.name LIKE :name
|
||||
AND U.mail LIKE :mail';
|
||||
|
||||
|
||||
$conf['plugin']['authpdo']['update-user-login'] = 'UPDATE user SET login = :newlogin WHERE id = :uid';
|
||||
$conf['plugin']['authpdo']['update-user-info'] = 'UPDATE user SET name = :name, mail = :mail WHERE id = :uid';
|
||||
$conf['plugin']['authpdo']['update-user-pass'] = 'UPDATE user SET pass = :hash WHERE id = :uid';
|
||||
|
||||
$conf['plugin']['authpdo']['insert-group'] = 'INSERT INTO "group" ("group") VALUES (:group)';
|
||||
$conf['plugin']['authpdo']['join-group'] = 'INSERT INTO member (uid, gid) VALUES (:uid, :gid)';
|
||||
$conf['plugin']['authpdo']['leave-group'] = 'DELETE FROM member WHERE uid = :uid AND gid = :gid';
|
||||
}
|
||||
|
||||
public function tearDown() : void {
|
||||
parent::tearDown();
|
||||
unlink($this->dbfile);
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends test_pdo_sqlite_support
|
||||
*/
|
||||
public function test_internals() {
|
||||
$auth = new testable_auth_plugin_authpdo();
|
||||
|
||||
$groups = $auth->selectGroups();
|
||||
$this->assertArrayHasKey('user', $groups);
|
||||
$this->assertEquals(1, $groups['user']['gid']);
|
||||
$this->assertArrayHasKey('admin', $groups);
|
||||
$this->assertEquals(2, $groups['admin']['gid']);
|
||||
|
||||
$ok = $auth->addGroup('test');
|
||||
$this->assertTrue($ok);
|
||||
$groups = $auth->selectGroups();
|
||||
$this->assertArrayHasKey('test', $groups);
|
||||
$this->assertEquals(4, $groups['test']['gid']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @depends test_pdo_sqlite_support
|
||||
*/
|
||||
public function test_userinfo() {
|
||||
global $conf;
|
||||
$auth = new auth_plugin_authpdo();
|
||||
|
||||
// clear text pasword (with default config above
|
||||
$this->assertFalse($auth->checkPass('nobody', 'nope'));
|
||||
$this->assertFalse($auth->checkPass('admin', 'nope'));
|
||||
$this->assertTrue($auth->checkPass('admin', 'password'));
|
||||
|
||||
// now with a hashed password
|
||||
$conf['plugin']['authpdo']['select-user'] = 'SELECT id AS uid, login AS user, name, pass AS hash, mail FROM user WHERE login = :user';
|
||||
$this->assertFalse($auth->checkPass('admin', 'password'));
|
||||
$this->assertFalse($auth->checkPass('user', md5('password')));
|
||||
|
||||
// access user data
|
||||
$info = $auth->getUserData('admin');
|
||||
$this->assertEquals('admin', $info['user']);
|
||||
$this->assertEquals('The Admin', $info['name']);
|
||||
$this->assertEquals('admin@example.com', $info['mail']);
|
||||
$this->assertEquals(array('additional', 'admin', 'user'), $info['grps']);
|
||||
|
||||
// group retrieval
|
||||
$this->assertEquals(array('additional', 'admin', 'user'), $auth->retrieveGroups());
|
||||
$this->assertEquals(array('admin', 'user'), $auth->retrieveGroups(1));
|
||||
$this->assertEquals(array('additional'), $auth->retrieveGroups(0, 1));
|
||||
|
||||
// user creation
|
||||
$auth->createUser('test', 'password', 'A Test user', 'test@example.com', array('newgroup'));
|
||||
$info = $auth->getUserData('test');
|
||||
$this->assertEquals('test', $info['user']);
|
||||
$this->assertEquals('A Test user', $info['name']);
|
||||
$this->assertEquals('test@example.com', $info['mail']);
|
||||
$this->assertEquals(array('newgroup', 'user'), $info['grps']);
|
||||
$this->assertEquals(array('additional', 'admin', 'newgroup', 'user'), $auth->retrieveGroups());
|
||||
|
||||
// user modification
|
||||
$auth->modifyUser('test', array('user' => 'tester', 'name' => 'The Test User', 'pass' => 'secret'));
|
||||
$info = $auth->getUserData('tester');
|
||||
$this->assertEquals('tester', $info['user']);
|
||||
$this->assertEquals('The Test User', $info['name']);
|
||||
$this->assertTrue($auth->checkPass('tester','secret'));
|
||||
|
||||
// move user to different groups
|
||||
$auth->modifyUser('tester', array('grps' => array('user', 'admin', 'another')));
|
||||
$info = $auth->getUserData('tester');
|
||||
$this->assertEquals(array('admin', 'another', 'user'), $info['grps']);
|
||||
|
||||
|
||||
$expect = array(
|
||||
'admin' => array(
|
||||
'user' => 'admin',
|
||||
'name' => 'The Admin',
|
||||
'mail' => 'admin@example.com',
|
||||
'uid' => '1',
|
||||
'grps' => array('additional', 'admin', 'user')
|
||||
),
|
||||
'user' => array(
|
||||
'user' => 'user',
|
||||
'name' => 'A normal user',
|
||||
'mail' => 'user@example.com',
|
||||
'uid' => '2',
|
||||
'grps' => array('user')
|
||||
),
|
||||
'tester' => array(
|
||||
'user' => 'tester',
|
||||
'name' => 'The Test User',
|
||||
'mail' => 'test@example.com',
|
||||
'uid' => '3',
|
||||
'grps' => array('admin', 'another', 'user')
|
||||
)
|
||||
);
|
||||
|
||||
// list users
|
||||
$users = $auth->retrieveUsers();
|
||||
$this->assertEquals(array($expect['admin'], $expect['tester'], $expect['user']), $users);
|
||||
|
||||
$users = $auth->retrieveUsers(1); // offset
|
||||
$this->assertEquals(array($expect['tester'], $expect['user']), $users);
|
||||
|
||||
$users = $auth->retrieveUsers(1, 1); // offset + limit
|
||||
$this->assertEquals(array($expect['tester']), $users);
|
||||
|
||||
$users = $auth->retrieveUsers(0, -1, array('group' => 'admin')); // full group
|
||||
$this->assertEquals(array($expect['admin'], $expect['tester']), $users);
|
||||
$count = $auth->getUserCount(array('grps' => 'admin'));
|
||||
$this->assertSame(2, $count);
|
||||
|
||||
$users = $auth->retrieveUsers(0, -1, array('group' => 'dmi')); // substring
|
||||
$this->assertEquals(array($expect['admin'], $expect['tester']), $users);
|
||||
$count = $auth->getUserCount(array('grps' => 'dmi'));
|
||||
$this->assertSame(2, $count);
|
||||
|
||||
$users = $auth->retrieveUsers(0, -1, array('user' => 'dmi')); // substring
|
||||
$this->assertEquals(array($expect['admin']), $users);
|
||||
$count = $auth->getUserCount(array('user' => 'dmi'));
|
||||
$this->assertSame(1, $count);
|
||||
|
||||
// delete user
|
||||
$num = $auth->deleteUsers(array('tester', 'foobar'));
|
||||
$this->assertSame(1, $num);
|
||||
|
||||
}
|
||||
|
||||
}
|
Binary file not shown.
828
snippets/dokuwiki-2023-04-04/lib/plugins/authpdo/auth.php
Normal file
828
snippets/dokuwiki-2023-04-04/lib/plugins/authpdo/auth.php
Normal file
@ -0,0 +1,828 @@
|
||||
<?php
|
||||
use dokuwiki\Utf8\Sort;
|
||||
|
||||
/**
|
||||
* DokuWiki Plugin authpdo (Auth Component)
|
||||
*
|
||||
* @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
|
||||
* @author Andreas Gohr <andi@splitbrain.org>
|
||||
*/
|
||||
|
||||
/**
|
||||
* Class auth_plugin_authpdo
|
||||
*/
|
||||
class auth_plugin_authpdo extends DokuWiki_Auth_Plugin
|
||||
{
|
||||
|
||||
/** @var PDO */
|
||||
protected $pdo;
|
||||
|
||||
/** @var null|array The list of all groups */
|
||||
protected $groupcache = null;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(); // for compatibility
|
||||
|
||||
if (!class_exists('PDO')) {
|
||||
$this->debugMsg('PDO extension for PHP not found.', -1, __LINE__);
|
||||
$this->success = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!$this->getConf('dsn')) {
|
||||
$this->debugMsg('No DSN specified', -1, __LINE__);
|
||||
$this->success = false;
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
$this->pdo = new PDO(
|
||||
$this->getConf('dsn'),
|
||||
$this->getConf('user'),
|
||||
conf_decodeString($this->getConf('pass')),
|
||||
array(
|
||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, // always fetch as array
|
||||
PDO::ATTR_EMULATE_PREPARES => true, // emulating prepares allows us to reuse param names
|
||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, // we want exceptions, not error codes
|
||||
)
|
||||
);
|
||||
} catch (PDOException $e) {
|
||||
$this->debugMsg($e);
|
||||
msg($this->getLang('connectfail'), -1);
|
||||
$this->success = false;
|
||||
return;
|
||||
}
|
||||
|
||||
// can Users be created?
|
||||
$this->cando['addUser'] = $this->checkConfig(
|
||||
array(
|
||||
'select-user',
|
||||
'select-user-groups',
|
||||
'select-groups',
|
||||
'insert-user',
|
||||
'insert-group',
|
||||
'join-group'
|
||||
)
|
||||
);
|
||||
|
||||
// can Users be deleted?
|
||||
$this->cando['delUser'] = $this->checkConfig(
|
||||
array(
|
||||
'select-user',
|
||||
'select-user-groups',
|
||||
'select-groups',
|
||||
'leave-group',
|
||||
'delete-user'
|
||||
)
|
||||
);
|
||||
|
||||
// can login names be changed?
|
||||
$this->cando['modLogin'] = $this->checkConfig(
|
||||
array(
|
||||
'select-user',
|
||||
'select-user-groups',
|
||||
'update-user-login'
|
||||
)
|
||||
);
|
||||
|
||||
// can passwords be changed?
|
||||
$this->cando['modPass'] = $this->checkConfig(
|
||||
array(
|
||||
'select-user',
|
||||
'select-user-groups',
|
||||
'update-user-pass'
|
||||
)
|
||||
);
|
||||
|
||||
// can real names be changed?
|
||||
$this->cando['modName'] = $this->checkConfig(
|
||||
array(
|
||||
'select-user',
|
||||
'select-user-groups',
|
||||
'update-user-info:name'
|
||||
)
|
||||
);
|
||||
|
||||
// can real email be changed?
|
||||
$this->cando['modMail'] = $this->checkConfig(
|
||||
array(
|
||||
'select-user',
|
||||
'select-user-groups',
|
||||
'update-user-info:mail'
|
||||
)
|
||||
);
|
||||
|
||||
// can groups be changed?
|
||||
$this->cando['modGroups'] = $this->checkConfig(
|
||||
array(
|
||||
'select-user',
|
||||
'select-user-groups',
|
||||
'select-groups',
|
||||
'leave-group',
|
||||
'join-group',
|
||||
'insert-group'
|
||||
)
|
||||
);
|
||||
|
||||
// can a filtered list of users be retrieved?
|
||||
$this->cando['getUsers'] = $this->checkConfig(
|
||||
array(
|
||||
'list-users'
|
||||
)
|
||||
);
|
||||
|
||||
// can the number of users be retrieved?
|
||||
$this->cando['getUserCount'] = $this->checkConfig(
|
||||
array(
|
||||
'count-users'
|
||||
)
|
||||
);
|
||||
|
||||
// can a list of available groups be retrieved?
|
||||
$this->cando['getGroups'] = $this->checkConfig(
|
||||
array(
|
||||
'select-groups'
|
||||
)
|
||||
);
|
||||
|
||||
$this->success = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check user+password
|
||||
*
|
||||
* @param string $user the user name
|
||||
* @param string $pass the clear text password
|
||||
* @return bool
|
||||
*/
|
||||
public function checkPass($user, $pass)
|
||||
{
|
||||
|
||||
$userdata = $this->selectUser($user);
|
||||
if ($userdata == false) return false;
|
||||
|
||||
// password checking done in SQL?
|
||||
if ($this->checkConfig(array('check-pass'))) {
|
||||
$userdata['clear'] = $pass;
|
||||
$userdata['hash'] = auth_cryptPassword($pass);
|
||||
$result = $this->query($this->getConf('check-pass'), $userdata);
|
||||
if ($result === false) return false;
|
||||
return (count($result) == 1);
|
||||
}
|
||||
|
||||
// we do password checking on our own
|
||||
if (isset($userdata['hash'])) {
|
||||
// hashed password
|
||||
$passhash = new \dokuwiki\PassHash();
|
||||
return $passhash->verify_hash($pass, $userdata['hash']);
|
||||
} else {
|
||||
// clear text password in the database O_o
|
||||
return ($pass === $userdata['clear']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return user info
|
||||
*
|
||||
* Returns info about the given user needs to contain
|
||||
* at least these fields:
|
||||
*
|
||||
* name string full name of the user
|
||||
* mail string email addres of the user
|
||||
* grps array list of groups the user is in
|
||||
*
|
||||
* @param string $user the user name
|
||||
* @param bool $requireGroups whether or not the returned data must include groups
|
||||
* @return array|bool containing user data or false
|
||||
*/
|
||||
public function getUserData($user, $requireGroups = true)
|
||||
{
|
||||
$data = $this->selectUser($user);
|
||||
if ($data == false) return false;
|
||||
|
||||
if (isset($data['hash'])) unset($data['hash']);
|
||||
if (isset($data['clean'])) unset($data['clean']);
|
||||
|
||||
if ($requireGroups) {
|
||||
$data['grps'] = $this->selectUserGroups($data);
|
||||
if ($data['grps'] === false) return false;
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new User [implement only where required/possible]
|
||||
*
|
||||
* Returns false if the user already exists, null when an error
|
||||
* occurred and true if everything went well.
|
||||
*
|
||||
* The new user HAS TO be added to the default group by this
|
||||
* function!
|
||||
*
|
||||
* Set addUser capability when implemented
|
||||
*
|
||||
* @param string $user
|
||||
* @param string $clear
|
||||
* @param string $name
|
||||
* @param string $mail
|
||||
* @param null|array $grps
|
||||
* @return bool|null
|
||||
*/
|
||||
public function createUser($user, $clear, $name, $mail, $grps = null)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
if (($info = $this->getUserData($user, false)) !== false) {
|
||||
msg($this->getLang('userexists'), -1);
|
||||
return false; // user already exists
|
||||
}
|
||||
|
||||
// prepare data
|
||||
if ($grps == null) $grps = array();
|
||||
array_unshift($grps, $conf['defaultgroup']);
|
||||
$grps = array_unique($grps);
|
||||
$hash = auth_cryptPassword($clear);
|
||||
$userdata = compact('user', 'clear', 'hash', 'name', 'mail');
|
||||
|
||||
// action protected by transaction
|
||||
$this->pdo->beginTransaction();
|
||||
{
|
||||
// insert the user
|
||||
$ok = $this->query($this->getConf('insert-user'), $userdata);
|
||||
if ($ok === false) goto FAIL;
|
||||
$userdata = $this->getUserData($user, false);
|
||||
if ($userdata === false) goto FAIL;
|
||||
|
||||
// create all groups that do not exist, the refetch the groups
|
||||
$allgroups = $this->selectGroups();
|
||||
foreach ($grps as $group) {
|
||||
if (!isset($allgroups[$group])) {
|
||||
$ok = $this->addGroup($group);
|
||||
if ($ok === false) goto FAIL;
|
||||
}
|
||||
}
|
||||
$allgroups = $this->selectGroups();
|
||||
|
||||
// add user to the groups
|
||||
foreach ($grps as $group) {
|
||||
$ok = $this->joinGroup($userdata, $allgroups[$group]);
|
||||
if ($ok === false) goto FAIL;
|
||||
}
|
||||
}
|
||||
$this->pdo->commit();
|
||||
return true;
|
||||
|
||||
// something went wrong, rollback
|
||||
FAIL:
|
||||
$this->pdo->rollBack();
|
||||
$this->debugMsg('Transaction rolled back', 0, __LINE__);
|
||||
msg($this->getLang('writefail'), -1);
|
||||
return null; // return error
|
||||
}
|
||||
|
||||
/**
|
||||
* Modify user data
|
||||
*
|
||||
* @param string $user nick of the user to be changed
|
||||
* @param array $changes array of field/value pairs to be changed (password will be clear text)
|
||||
* @return bool
|
||||
*/
|
||||
public function modifyUser($user, $changes)
|
||||
{
|
||||
// secure everything in transaction
|
||||
$this->pdo->beginTransaction();
|
||||
{
|
||||
$olddata = $this->getUserData($user);
|
||||
$oldgroups = $olddata['grps'];
|
||||
unset($olddata['grps']);
|
||||
|
||||
// changing the user name?
|
||||
if (isset($changes['user'])) {
|
||||
if ($this->getUserData($changes['user'], false)) goto FAIL;
|
||||
$params = $olddata;
|
||||
$params['newlogin'] = $changes['user'];
|
||||
|
||||
$ok = $this->query($this->getConf('update-user-login'), $params);
|
||||
if ($ok === false) goto FAIL;
|
||||
}
|
||||
|
||||
// changing the password?
|
||||
if (isset($changes['pass'])) {
|
||||
$params = $olddata;
|
||||
$params['clear'] = $changes['pass'];
|
||||
$params['hash'] = auth_cryptPassword($changes['pass']);
|
||||
|
||||
$ok = $this->query($this->getConf('update-user-pass'), $params);
|
||||
if ($ok === false) goto FAIL;
|
||||
}
|
||||
|
||||
// changing info?
|
||||
if (isset($changes['mail']) || isset($changes['name'])) {
|
||||
$params = $olddata;
|
||||
if (isset($changes['mail'])) $params['mail'] = $changes['mail'];
|
||||
if (isset($changes['name'])) $params['name'] = $changes['name'];
|
||||
|
||||
$ok = $this->query($this->getConf('update-user-info'), $params);
|
||||
if ($ok === false) goto FAIL;
|
||||
}
|
||||
|
||||
// changing groups?
|
||||
if (isset($changes['grps'])) {
|
||||
$allgroups = $this->selectGroups();
|
||||
|
||||
// remove membership for previous groups
|
||||
foreach ($oldgroups as $group) {
|
||||
if (!in_array($group, $changes['grps']) && isset($allgroups[$group])) {
|
||||
$ok = $this->leaveGroup($olddata, $allgroups[$group]);
|
||||
if ($ok === false) goto FAIL;
|
||||
}
|
||||
}
|
||||
|
||||
// create all new groups that are missing
|
||||
$added = 0;
|
||||
foreach ($changes['grps'] as $group) {
|
||||
if (!isset($allgroups[$group])) {
|
||||
$ok = $this->addGroup($group);
|
||||
if ($ok === false) goto FAIL;
|
||||
$added++;
|
||||
}
|
||||
}
|
||||
// reload group info
|
||||
if ($added > 0) $allgroups = $this->selectGroups();
|
||||
|
||||
// add membership for new groups
|
||||
foreach ($changes['grps'] as $group) {
|
||||
if (!in_array($group, $oldgroups)) {
|
||||
$ok = $this->joinGroup($olddata, $allgroups[$group]);
|
||||
if ($ok === false) goto FAIL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
$this->pdo->commit();
|
||||
return true;
|
||||
|
||||
// something went wrong, rollback
|
||||
FAIL:
|
||||
$this->pdo->rollBack();
|
||||
$this->debugMsg('Transaction rolled back', 0, __LINE__);
|
||||
msg($this->getLang('writefail'), -1);
|
||||
return false; // return error
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete one or more users
|
||||
*
|
||||
* Set delUser capability when implemented
|
||||
*
|
||||
* @param array $users
|
||||
* @return int number of users deleted
|
||||
*/
|
||||
public function deleteUsers($users)
|
||||
{
|
||||
$count = 0;
|
||||
foreach ($users as $user) {
|
||||
if ($this->deleteUser($user)) $count++;
|
||||
}
|
||||
return $count;
|
||||
}
|
||||
|
||||
/**
|
||||
* Bulk retrieval of user data [implement only where required/possible]
|
||||
*
|
||||
* Set getUsers capability when implemented
|
||||
*
|
||||
* @param int $start index of first user to be returned
|
||||
* @param int $limit max number of users to be returned
|
||||
* @param array $filter array of field/pattern pairs, null for no filter
|
||||
* @return array list of userinfo (refer getUserData for internal userinfo details)
|
||||
*/
|
||||
public function retrieveUsers($start = 0, $limit = -1, $filter = null)
|
||||
{
|
||||
if ($limit < 0) $limit = 10000; // we don't support no limit
|
||||
if (is_null($filter)) $filter = array();
|
||||
|
||||
if (isset($filter['grps'])) $filter['group'] = $filter['grps'];
|
||||
foreach (array('user', 'name', 'mail', 'group') as $key) {
|
||||
if (!isset($filter[$key])) {
|
||||
$filter[$key] = '%';
|
||||
} else {
|
||||
$filter[$key] = '%' . $filter[$key] . '%';
|
||||
}
|
||||
}
|
||||
$filter['start'] = (int)$start;
|
||||
$filter['end'] = (int)$start + $limit;
|
||||
$filter['limit'] = (int)$limit;
|
||||
|
||||
$result = $this->query($this->getConf('list-users'), $filter);
|
||||
if (!$result) return array();
|
||||
$users = array();
|
||||
if (is_array($result)) {
|
||||
foreach ($result as $row) {
|
||||
if (!isset($row['user'])) {
|
||||
$this->debugMsg("list-users statement did not return 'user' attribute", -1, __LINE__);
|
||||
return array();
|
||||
}
|
||||
$users[] = $this->getUserData($row['user']);
|
||||
}
|
||||
} else {
|
||||
$this->debugMsg("list-users statement did not return a list of result", -1, __LINE__);
|
||||
}
|
||||
return $users;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a count of the number of user which meet $filter criteria
|
||||
*
|
||||
* @param array $filter array of field/pattern pairs, empty array for no filter
|
||||
* @return int
|
||||
*/
|
||||
public function getUserCount($filter = array())
|
||||
{
|
||||
if (is_null($filter)) $filter = array();
|
||||
|
||||
if (isset($filter['grps'])) $filter['group'] = $filter['grps'];
|
||||
foreach (array('user', 'name', 'mail', 'group') as $key) {
|
||||
if (!isset($filter[$key])) {
|
||||
$filter[$key] = '%';
|
||||
} else {
|
||||
$filter[$key] = '%' . $filter[$key] . '%';
|
||||
}
|
||||
}
|
||||
|
||||
$result = $this->query($this->getConf('count-users'), $filter);
|
||||
if (!$result || !isset($result[0]['count'])) {
|
||||
$this->debugMsg("Statement did not return 'count' attribute", -1, __LINE__);
|
||||
}
|
||||
return (int)$result[0]['count'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new group with the given name
|
||||
*
|
||||
* @param string $group
|
||||
* @return bool
|
||||
*/
|
||||
public function addGroup($group)
|
||||
{
|
||||
$sql = $this->getConf('insert-group');
|
||||
|
||||
$result = $this->query($sql, array(':group' => $group));
|
||||
$this->clearGroupCache();
|
||||
if ($result === false) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve groups
|
||||
*
|
||||
* Set getGroups capability when implemented
|
||||
*
|
||||
* @param int $start
|
||||
* @param int $limit
|
||||
* @return array
|
||||
*/
|
||||
public function retrieveGroups($start = 0, $limit = 0)
|
||||
{
|
||||
$groups = array_keys($this->selectGroups());
|
||||
if ($groups === false) return array();
|
||||
|
||||
if (!$limit) {
|
||||
return array_splice($groups, $start);
|
||||
} else {
|
||||
return array_splice($groups, $start, $limit);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Select data of a specified user
|
||||
*
|
||||
* @param string $user the user name
|
||||
* @return bool|array user data, false on error
|
||||
*/
|
||||
protected function selectUser($user)
|
||||
{
|
||||
$sql = $this->getConf('select-user');
|
||||
|
||||
$result = $this->query($sql, array(':user' => $user));
|
||||
if (!$result) return false;
|
||||
|
||||
if (count($result) > 1) {
|
||||
$this->debugMsg('Found more than one matching user', -1, __LINE__);
|
||||
return false;
|
||||
}
|
||||
|
||||
$data = array_shift($result);
|
||||
$dataok = true;
|
||||
|
||||
if (!isset($data['user'])) {
|
||||
$this->debugMsg("Statement did not return 'user' attribute", -1, __LINE__);
|
||||
$dataok = false;
|
||||
}
|
||||
if (!isset($data['hash']) && !isset($data['clear']) && !$this->checkConfig(array('check-pass'))) {
|
||||
$this->debugMsg("Statement did not return 'clear' or 'hash' attribute", -1, __LINE__);
|
||||
$dataok = false;
|
||||
}
|
||||
if (!isset($data['name'])) {
|
||||
$this->debugMsg("Statement did not return 'name' attribute", -1, __LINE__);
|
||||
$dataok = false;
|
||||
}
|
||||
if (!isset($data['mail'])) {
|
||||
$this->debugMsg("Statement did not return 'mail' attribute", -1, __LINE__);
|
||||
$dataok = false;
|
||||
}
|
||||
|
||||
if (!$dataok) return false;
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a user after removing all their group memberships
|
||||
*
|
||||
* @param string $user
|
||||
* @return bool true when the user was deleted
|
||||
*/
|
||||
protected function deleteUser($user)
|
||||
{
|
||||
$this->pdo->beginTransaction();
|
||||
{
|
||||
$userdata = $this->getUserData($user);
|
||||
if ($userdata === false) goto FAIL;
|
||||
$allgroups = $this->selectGroups();
|
||||
|
||||
// remove group memberships (ignore errors)
|
||||
foreach ($userdata['grps'] as $group) {
|
||||
if (isset($allgroups[$group])) {
|
||||
$this->leaveGroup($userdata, $allgroups[$group]);
|
||||
}
|
||||
}
|
||||
|
||||
$ok = $this->query($this->getConf('delete-user'), $userdata);
|
||||
if ($ok === false) goto FAIL;
|
||||
}
|
||||
$this->pdo->commit();
|
||||
return true;
|
||||
|
||||
FAIL:
|
||||
$this->pdo->rollBack();
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Select all groups of a user
|
||||
*
|
||||
* @param array $userdata The userdata as returned by _selectUser()
|
||||
* @return array|bool list of group names, false on error
|
||||
*/
|
||||
protected function selectUserGroups($userdata)
|
||||
{
|
||||
global $conf;
|
||||
$sql = $this->getConf('select-user-groups');
|
||||
$result = $this->query($sql, $userdata);
|
||||
if ($result === false) return false;
|
||||
|
||||
$groups = array($conf['defaultgroup']); // always add default config
|
||||
if (is_array($result)) {
|
||||
foreach ($result as $row) {
|
||||
if (!isset($row['group'])) {
|
||||
$this->debugMsg("No 'group' field returned in select-user-groups statement", -1, __LINE__);
|
||||
return false;
|
||||
}
|
||||
$groups[] = $row['group'];
|
||||
}
|
||||
} else {
|
||||
$this->debugMsg("select-user-groups statement did not return a list of result", -1, __LINE__);
|
||||
}
|
||||
|
||||
$groups = array_unique($groups);
|
||||
Sort::sort($groups);
|
||||
return $groups;
|
||||
}
|
||||
|
||||
/**
|
||||
* Select all available groups
|
||||
*
|
||||
* @return array|bool list of all available groups and their properties
|
||||
*/
|
||||
protected function selectGroups()
|
||||
{
|
||||
if ($this->groupcache) return $this->groupcache;
|
||||
|
||||
$sql = $this->getConf('select-groups');
|
||||
$result = $this->query($sql);
|
||||
if ($result === false) return false;
|
||||
|
||||
$groups = array();
|
||||
if (is_array($result)) {
|
||||
foreach ($result as $row) {
|
||||
if (!isset($row['group'])) {
|
||||
$this->debugMsg("No 'group' field returned from select-groups statement", -1, __LINE__);
|
||||
return false;
|
||||
}
|
||||
|
||||
// relayout result with group name as key
|
||||
$group = $row['group'];
|
||||
$groups[$group] = $row;
|
||||
}
|
||||
} else {
|
||||
$this->debugMsg("select-groups statement did not return a list of result", -1, __LINE__);
|
||||
}
|
||||
|
||||
Sort::ksort($groups);
|
||||
return $groups;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove all entries from the group cache
|
||||
*/
|
||||
protected function clearGroupCache()
|
||||
{
|
||||
$this->groupcache = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the user to the group
|
||||
*
|
||||
* @param array $userdata all the user data
|
||||
* @param array $groupdata all the group data
|
||||
* @return bool
|
||||
*/
|
||||
protected function joinGroup($userdata, $groupdata)
|
||||
{
|
||||
$data = array_merge($userdata, $groupdata);
|
||||
$sql = $this->getConf('join-group');
|
||||
$result = $this->query($sql, $data);
|
||||
if ($result === false) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the user from the group
|
||||
*
|
||||
* @param array $userdata all the user data
|
||||
* @param array $groupdata all the group data
|
||||
* @return bool
|
||||
*/
|
||||
protected function leaveGroup($userdata, $groupdata)
|
||||
{
|
||||
$data = array_merge($userdata, $groupdata);
|
||||
$sql = $this->getConf('leave-group');
|
||||
$result = $this->query($sql, $data);
|
||||
if ($result === false) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Executes a query
|
||||
*
|
||||
* @param string $sql The SQL statement to execute
|
||||
* @param array $arguments Named parameters to be used in the statement
|
||||
* @return array|int|bool The result as associative array for SELECTs, affected rows for others, false on error
|
||||
*/
|
||||
protected function query($sql, $arguments = array())
|
||||
{
|
||||
$sql = trim($sql);
|
||||
if (empty($sql)) {
|
||||
$this->debugMsg('No SQL query given', -1, __LINE__);
|
||||
return false;
|
||||
}
|
||||
|
||||
// execute
|
||||
$params = array();
|
||||
$sth = $this->pdo->prepare($sql);
|
||||
$result = false;
|
||||
try {
|
||||
// prepare parameters - we only use those that exist in the SQL
|
||||
foreach ($arguments as $key => $value) {
|
||||
if (is_array($value)) continue;
|
||||
if (is_object($value)) continue;
|
||||
if ($key[0] != ':') $key = ":$key"; // prefix with colon if needed
|
||||
if (strpos($sql, $key) === false) continue; // skip if parameter is missing
|
||||
|
||||
if (is_int($value)) {
|
||||
$sth->bindValue($key, $value, PDO::PARAM_INT);
|
||||
} else {
|
||||
$sth->bindValue($key, $value);
|
||||
}
|
||||
$params[$key] = $value; //remember for debugging
|
||||
}
|
||||
|
||||
$sth->execute();
|
||||
// only report last line's result
|
||||
$hasnextrowset = true;
|
||||
$currentsql = $sql;
|
||||
while ($hasnextrowset) {
|
||||
if (strtolower(substr($currentsql, 0, 6)) == 'select') {
|
||||
$result = $sth->fetchAll();
|
||||
} else {
|
||||
$result = $sth->rowCount();
|
||||
}
|
||||
$semi_pos = strpos($currentsql, ';');
|
||||
if ($semi_pos) {
|
||||
$currentsql = trim(substr($currentsql, $semi_pos + 1));
|
||||
}
|
||||
try {
|
||||
$hasnextrowset = $sth->nextRowset(); // run next rowset
|
||||
} catch (PDOException $rowset_e) {
|
||||
$hasnextrowset = false; // driver does not support multi-rowset, should be executed in one time
|
||||
}
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
// report the caller's line
|
||||
$trace = debug_backtrace();
|
||||
$line = $trace[0]['line'];
|
||||
$dsql = $this->debugSQL($sql, $params, !defined('DOKU_UNITTEST'));
|
||||
$this->debugMsg($e, -1, $line);
|
||||
$this->debugMsg("SQL: <pre>$dsql</pre>", -1, $line);
|
||||
}
|
||||
$sth->closeCursor();
|
||||
$sth = null;
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper around msg() but outputs only when debug is enabled
|
||||
*
|
||||
* @param string|Exception $message
|
||||
* @param int $err
|
||||
* @param int $line
|
||||
*/
|
||||
protected function debugMsg($message, $err = 0, $line = 0)
|
||||
{
|
||||
if (!$this->getConf('debug')) return;
|
||||
if (is_a($message, 'Exception')) {
|
||||
$err = -1;
|
||||
$msg = $message->getMessage();
|
||||
if (!$line) $line = $message->getLine();
|
||||
} else {
|
||||
$msg = $message;
|
||||
}
|
||||
|
||||
if (defined('DOKU_UNITTEST')) {
|
||||
printf("\n%s, %s:%d\n", $msg, __FILE__, $line);
|
||||
} else {
|
||||
msg('authpdo: ' . $msg, $err, $line, __FILE__);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the given config strings are set
|
||||
*
|
||||
* @param string[] $keys
|
||||
* @return bool
|
||||
* @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
|
||||
*
|
||||
*/
|
||||
protected function checkConfig($keys)
|
||||
{
|
||||
foreach ($keys as $key) {
|
||||
$params = explode(':', $key);
|
||||
$key = array_shift($params);
|
||||
$sql = trim($this->getConf($key));
|
||||
|
||||
// check if sql is set
|
||||
if (!$sql) return false;
|
||||
// check if needed params are there
|
||||
foreach ($params as $param) {
|
||||
if (strpos($sql, ":$param") === false) return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* create an approximation of the SQL string with parameters replaced
|
||||
*
|
||||
* @param string $sql
|
||||
* @param array $params
|
||||
* @param bool $htmlescape Should the result be escaped for output in HTML?
|
||||
* @return string
|
||||
*/
|
||||
protected function debugSQL($sql, $params, $htmlescape = true)
|
||||
{
|
||||
foreach ($params as $key => $val) {
|
||||
if (is_int($val)) {
|
||||
$val = $this->pdo->quote($val, PDO::PARAM_INT);
|
||||
} elseif (is_bool($val)) {
|
||||
$val = $this->pdo->quote($val, PDO::PARAM_BOOL);
|
||||
} elseif (is_null($val)) {
|
||||
$val = 'NULL';
|
||||
} else {
|
||||
$val = $this->pdo->quote($val);
|
||||
}
|
||||
$sql = str_replace($key, $val, $sql);
|
||||
}
|
||||
if ($htmlescape) $sql = hsc($sql);
|
||||
return $sql;
|
||||
}
|
||||
}
|
||||
|
||||
// vim:ts=4:sw=4:et:
|
@ -0,0 +1,118 @@
|
||||
<?php
|
||||
/**
|
||||
* Default settings for the authpdo plugin
|
||||
*
|
||||
* @author Andreas Gohr <andi@splitbrain.org>
|
||||
*/
|
||||
|
||||
$conf['debug'] = 0;
|
||||
$conf['dsn'] = '';
|
||||
$conf['user'] = '';
|
||||
$conf['pass'] = '';
|
||||
|
||||
/**
|
||||
* statement to select a single user identified by its login name
|
||||
*
|
||||
* input: :user
|
||||
* return: user, name, mail, (clear|hash), [uid], [*]
|
||||
*/
|
||||
$conf['select-user'] = '';
|
||||
|
||||
/**
|
||||
* statement to check the password in SQL, optional when above returned clear or hash
|
||||
*
|
||||
* input: :user, :clear, :hash, [uid], [*]
|
||||
* return: *
|
||||
*/
|
||||
$conf['check-pass'] = '';
|
||||
|
||||
/**
|
||||
* statement to select a single user identified by its login name
|
||||
*
|
||||
* input: :user, [uid]
|
||||
* return: group
|
||||
*/
|
||||
$conf['select-user-groups'] = '';
|
||||
|
||||
/**
|
||||
* Select all the existing group names
|
||||
*
|
||||
* return: group, [gid], [*]
|
||||
*/
|
||||
$conf['select-groups'] = '';
|
||||
|
||||
/**
|
||||
* Create a new user
|
||||
*
|
||||
* input: :user, :name, :mail, (:clear|:hash)
|
||||
*/
|
||||
$conf['insert-user'] = '';
|
||||
|
||||
/**
|
||||
* Remove a user
|
||||
*
|
||||
* input: :user, [:uid], [*]
|
||||
*/
|
||||
$conf['delete-user'] = '';
|
||||
|
||||
/**
|
||||
* list user names matching the given criteria
|
||||
*
|
||||
* Make sure the list is distinct and sorted by user name. Apply the given limit and offset
|
||||
*
|
||||
* input: :user, :name, :mail, :group, :start, :end, :limit
|
||||
* out: user
|
||||
*/
|
||||
$conf['list-users'] = '';
|
||||
|
||||
/**
|
||||
* count user names matching the given criteria
|
||||
*
|
||||
* Make sure the counted list is distinct
|
||||
*
|
||||
* input: :user, :name, :mail, :group
|
||||
* out: count
|
||||
*/
|
||||
$conf['count-users'] = '';
|
||||
|
||||
/**
|
||||
* Update user data (except password and user name)
|
||||
*
|
||||
* input: :user, :name, :mail, [:uid], [*]
|
||||
*/
|
||||
$conf['update-user-info'] = '';
|
||||
|
||||
/**
|
||||
* Update user name aka login
|
||||
*
|
||||
* input: :user, :newlogin, [:uid], [*]
|
||||
*/
|
||||
$conf['update-user-login'] = '';
|
||||
|
||||
/**
|
||||
* Update user password
|
||||
*
|
||||
* input: :user, :clear, :hash, [:uid], [*]
|
||||
*/
|
||||
$conf['update-user-pass'] = '';
|
||||
|
||||
/**
|
||||
* Create a new group
|
||||
*
|
||||
* input: :group
|
||||
*/
|
||||
$conf['insert-group'] = '';
|
||||
|
||||
/**
|
||||
* Make user join group
|
||||
*
|
||||
* input: :user, [:uid], group, [:gid], [*]
|
||||
*/
|
||||
$conf['join-group'] = '';
|
||||
|
||||
/**
|
||||
* Make user leave group
|
||||
*
|
||||
* input: :user, [:uid], group, [:gid], [*]
|
||||
*/
|
||||
$conf['leave-group'] = '';
|
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
/**
|
||||
* Options for the authpdo plugin
|
||||
*
|
||||
* @author Andreas Gohr <andi@splitbrain.org>
|
||||
*/
|
||||
|
||||
$meta['debug'] = array('onoff', '_caution' => 'security');
|
||||
$meta['dsn'] = array('string', '_caution' => 'danger');
|
||||
$meta['user'] = array('string', '_caution' => 'danger');
|
||||
$meta['pass'] = array('password', '_caution' => 'danger', '_code' => 'base64');
|
||||
$meta['select-user'] = array('', '_caution' => 'danger');
|
||||
$meta['check-pass'] = array('', '_caution' => 'danger');
|
||||
$meta['select-user-groups'] = array('', '_caution' => 'danger');
|
||||
$meta['select-groups'] = array('', '_caution' => 'danger');
|
||||
$meta['insert-user'] = array('', '_caution' => 'danger');
|
||||
$meta['delete-user'] = array('', '_caution' => 'danger');
|
||||
$meta['list-users'] = array('', '_caution' => 'danger');
|
||||
$meta['count-users'] = array('', '_caution' => 'danger');
|
||||
$meta['update-user-info'] = array('', '_caution' => 'danger');
|
||||
$meta['update-user-login'] = array('', '_caution' => 'danger');
|
||||
$meta['update-user-pass'] = array('', '_caution' => 'danger');
|
||||
$meta['insert-group'] = array('', '_caution' => 'danger');
|
||||
$meta['join-group'] = array('', '_caution' => 'danger');
|
||||
$meta['leave-group'] = array('', '_caution' => 'danger');
|
@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Kiril <neohidra@gmail.com>
|
||||
*/
|
||||
$lang['connectfail'] = 'Свързването с базата данни се провали.';
|
||||
$lang['userexists'] = 'За съжаление вече съществува потребител с това име.';
|
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Adolfo Jayme Barrientos <fito@libreoffice.org>
|
||||
*/
|
||||
$lang['connectfail'] = 'Ha fallat la connexió a la base de dades.';
|
||||
$lang['userexists'] = 'Ja existeix un usuari amb aquest nom.';
|
||||
$lang['writefail'] = 'No es poden modificar les dades de l’usuari. Informeu d’això a l’administrador del wiki';
|
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Marc Zulet <marczulet@gmail.com>
|
||||
* @author Adolfo Jayme Barrientos <fito@libreoffice.org>
|
||||
*/
|
||||
$lang['debug'] = 'Mostra missatges d\'error detallats. S\'hauria de desactivar després de la configuració.';
|
||||
$lang['dsn'] = 'El DNS per a connectar a la base de dades.';
|
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author qezwan <qezwan@gmail.com>
|
||||
*/
|
||||
$lang['connectfail'] = 'پەیوەندی کردن بە بنکەی زانیاری سەرکەوتوو نەبوو.';
|
||||
$lang['userexists'] = 'ببوورە، بەکارهێنەرێک بەم زانیارییە بوونی هەیە. ';
|
||||
$lang['writefail'] = 'ناتوانێت دەستکاری داتای بەکارهێنەر بکات. تکایە ویکی-بەڕێوەبەرەکە بکەرەوە';
|
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author qezwan <qezwan@gmail.com>
|
||||
*/
|
||||
$lang['debug'] = 'چاپکردنی پەیامەکانی هەڵەی ورد. پێویستە لە کاربخرێت پاش ئامادەکردن.';
|
||||
$lang['dsn'] = 'DSN بۆ پەیوەندی کردن بە بنکەی زانیارێکان.';
|
||||
$lang['user'] = ' (sqliteبەکارهێنەربۆ گرێدانی بنکەی زانیاری سەرەوە (بەتاڵ بۆ ';
|
||||
$lang['pass'] = ' (sqlite تێپەڕوشە بۆ گرێدانی بنکەی زانیاری سەرەوە (بەتاڵ بۆ';
|
||||
$lang['select-user'] = 'لێدوانی SQL بۆ دیاریکردنی داتای تاکە بەکارهێنەرێک';
|
||||
$lang['select-user-groups'] = 'لێدوانی SQL بۆ دیاریکردنی هەموو گرووپەکانی یەک بەکارهێنەر';
|
||||
$lang['select-groups'] = 'لێدوانی SQL بۆ دیاریکردنی هەموو گروپە بەردەستەکان';
|
||||
$lang['insert-user'] = 'SQL بەیاننامە بۆ دانانی بەکارهێنەرێکی نوێ بۆ ناو بنکەی زانیاری';
|
||||
$lang['delete-user'] = 'لێدوانی SQL بۆ لابردنی تاکە بەکارهێنەرێک لە بنکەی زانیارێکان';
|
||||
$lang['list-users'] = 'لێدوانی SQL بۆ لیستی بەکارهێنەران کە لەگەڵ فلتەرێکدا دەگونجێن';
|
||||
$lang['count-users'] = 'لێدوانی SQL بۆ ژماردنی بەکارهێنەران کە لەگەڵ فلتەرێکدا دەگونجێن';
|
||||
$lang['update-user-info'] = 'لێدوانی SQL بۆ نوێکردنەوەی ناوی تەواو و ناونیشانی ئیمەیلی تاکە بەکارهێنەرێک';
|
||||
$lang['update-user-login'] = 'لێدوانی SQL بۆ نوێکردنەوەی ناوی چوونەژوورەوەی تاکە بەکارهێنەرێک';
|
||||
$lang['update-user-pass'] = 'لێدوانی SQL بۆ نوێکردنەوەی نهێنوشەی تاکە بەکارهێنەرێک';
|
||||
$lang['insert-group'] = 'لێدوانی SQL بۆ دانانی گروپێکی نوێ بۆ ناو بنکەی زانیاری';
|
||||
$lang['join-group'] = 'لێدوانی SQL بۆ زیادکردنی بەکارهێنەرێک بۆ گروپی بەردەست';
|
||||
$lang['leave-group'] = 'لێدوانی SQL بۆ لابردنی بەکارهێنەرێک لە گروپێک';
|
||||
$lang['check-pass'] = 'SQL بەیاننامە بۆ پشکنینی نهێنوشە بۆ بەکارهێنەرێک. دەکرێت بە بەتاڵی بهێلدریت ئەگەر زانیاری نهێنوشە لە بەکارهێنەری دەسنیشانکراودا هێنرابێت.';
|
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Jaroslav Lichtblau <jlichtblau@seznam.cz>
|
||||
*/
|
||||
$lang['connectfail'] = 'Selhalo připojení k databázi.';
|
||||
$lang['userexists'] = 'Omlouváme se, ale uživatel s tímto jménem již existuje.';
|
||||
$lang['writefail'] = 'Nelze změnit údaje uživatele. Informujte prosím správce wiki';
|
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Robert Surý <rsurycz@seznam.cz>
|
||||
*/
|
||||
$lang['debug'] = 'Vytištění podrobných chybových zpráv. Po dokončení nastavení by mělo být deaktivováno.';
|
||||
$lang['dsn'] = 'DSN pro připojení k databázi.';
|
||||
$lang['user'] = 'Uživatel pro výše uvedené připojení k databázi (prázdný pro sqlite)';
|
||||
$lang['pass'] = 'Heslo pro výše uvedené připojení k databázi (prázdné pro sqlite)';
|
||||
$lang['select-user'] = 'Příkaz SQL pro výběr dat jednoho uživatele';
|
||||
$lang['select-user-groups'] = 'Příkaz SQL pro výběr všech skupin jednoho uživatele';
|
||||
$lang['select-groups'] = 'Příkaz SQL pro výběr všech dostupných skupin';
|
||||
$lang['insert-user'] = 'Příkaz SQL pro vložení nového uživatele do databáze';
|
||||
$lang['delete-user'] = 'Příkaz SQL pro odebrání jednoho uživatele z databáze';
|
||||
$lang['list-users'] = 'Příkaz SQL pro výpis seznamu uživatelů odpovídajících filtru';
|
||||
$lang['count-users'] = 'Příkaz SQL pro spočítání uživatelů odpovídajících filtru';
|
||||
$lang['update-user-info'] = 'Příkaz SQL pro aktualizaci celého jména a e-mailové adresy jednoho uživatele';
|
||||
$lang['update-user-login'] = 'Příkaz SQL pro aktualizaci přihlašovacího jména jednoho uživatele';
|
||||
$lang['update-user-pass'] = 'Příkaz SQL pro aktualizaci hesla jednoho uživatele';
|
||||
$lang['insert-group'] = 'Příkaz SQL pro vložení nové skupiny do databáze';
|
||||
$lang['join-group'] = 'Příkaz SQL pro přidání uživatele do existující skupiny';
|
||||
$lang['leave-group'] = 'Příkaz SQL pro odebrání uživatele ze skupiny';
|
||||
$lang['check-pass'] = 'Příkaz SQL ke kontrole hesla uživatele. Může zůstat prázdný, pokud jsou informace o heslech vyvolány ve vybraném uživateli.';
|
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
/**
|
||||
* Welsh language file for authmysql plugin
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
*/
|
||||
|
||||
$lang['connectfail'] = 'Method y cysylltiad i\'r databas.';
|
||||
$lang['userexists'] = 'Sori, mae defnyddiwr gyda\'r enw mewngofnodi hwn eisoes yn bodoli.';
|
||||
$lang['writefail'] = 'Methu â newid data defnyddiwr. Rhowch wybod i Weinyddwr y Wici';
|
||||
|
||||
//Setup VIM: ex: et ts=4 :
|
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Jacob Palm <mail@jacobpalm.dk>
|
||||
*/
|
||||
$lang['connectfail'] = 'Kunne ikke forbinde til database.';
|
||||
$lang['userexists'] = 'Beklager, en bruger med dette loginnavn findes allerede.';
|
||||
$lang['writefail'] = 'Kunne ikke ændre brugerdata. Informer venligst wikiens administrator.';
|
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Jacob Palm <mail@jacobpalm.dk>
|
||||
*/
|
||||
$lang['debug'] = 'Vis detaljerede fejlmeddelelser. Bør deaktiveres efter opsætning.';
|
||||
$lang['dsn'] = 'DSN der benyttes til at forbinde til databasen.';
|
||||
$lang['user'] = 'Brugerkonto til ovenstående databaseforbindelse (blank ved sqlite)';
|
||||
$lang['pass'] = 'Adgangskode til ovenstående databaseforbindelse (blank ved sqlite)';
|
||||
$lang['select-user'] = 'SQL statement til at selektere data for en enkelt bruger';
|
||||
$lang['select-user-groups'] = 'SQL statement til at selektere alle grupper en enkelt bruger er medlem af';
|
||||
$lang['select-groups'] = 'SQL statement til at selektere alle tilgængelige grupper';
|
||||
$lang['insert-user'] = 'SQL statement til at indsætte en ny bruger i databasen';
|
||||
$lang['delete-user'] = 'SQL statement til at fjerne en bruger fra databasen';
|
||||
$lang['list-users'] = 'SQL statement til at selektere brugere ud fra et filter';
|
||||
$lang['count-users'] = 'SQL statement til at tælle brugere der matcher et filter';
|
||||
$lang['update-user-info'] = 'SQL statement til at opdatere fulde navn og e-mail adresse på en enkelt bruger';
|
||||
$lang['update-user-login'] = 'SQL statement til at opdatere loginnavn på en enkelt bruger';
|
||||
$lang['update-user-pass'] = 'SQL statement til at opdatere adgangskode på en enkelt bruger';
|
||||
$lang['insert-group'] = 'SQL statement til at indsætte en ny gruppe i databasen';
|
||||
$lang['join-group'] = 'SQL statement til at tilføje en bruger til en eksisterende gruppe';
|
||||
$lang['leave-group'] = 'SQL statement til at fjerne en bruger fra en gruppe';
|
||||
$lang['check-pass'] = 'SQL statement til at kontrollere adgangskode for en bruger. Kan efterlades blank hvis adgangskode information hentes når brugeren selekteres.';
|
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Martin <martin@andev.de>
|
||||
*/
|
||||
$lang['connectfail'] = 'Verbindung zur Datenbank fehlgeschlagen.';
|
||||
$lang['userexists'] = 'Der Benutzername existiert leider schon.';
|
||||
$lang['writefail'] = 'Die Benutzerdaten konnten nicht geändert werden. Bitte wenden Sie sich an den Wiki-Admin.';
|
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author MaWi <drmaxxis@gmail.com>
|
||||
*/
|
||||
$lang['debug'] = 'Zeige detaillierte Fehlermeldungen. Diese sollten nach dem Setup deaktiviert werden.';
|
||||
$lang['dsn'] = 'Der DSN(Data Source Name) zur Verbindung mit der Datenbank';
|
||||
$lang['user'] = 'Der Benutzer für die obige Datenbankverbindung (leer lassen für SQLite)';
|
||||
$lang['pass'] = 'Das Passwort für die obige Datenbankverbindung (leer lassen für SQLite)';
|
||||
$lang['select-user'] = 'SQL Anweisung um einen einzelnen Benutzer abzufragen';
|
||||
$lang['select-user-groups'] = 'SQL Anweisung um alle Gruppen eines Benutzers abzufragen';
|
||||
$lang['select-groups'] = 'SQL Anweisung um alle verfügbaren Gruppen auszuwählen';
|
||||
$lang['insert-user'] = 'SQL Anweisung um einen neuen Benutzer in der Datenbank abzulegen';
|
||||
$lang['delete-user'] = 'SQL Anweisung um einen Benutzer aus der Datenbank zu entfernen';
|
||||
$lang['list-users'] = 'SQL Anweisung um eine Liste gefilterter Benutzer anzuzeigen';
|
||||
$lang['count-users'] = 'SQL Anweisung, welche die Anzahl der gefilterten Benutzer wiedergibt';
|
||||
$lang['update-user-info'] = 'SQL Anweisung um den vollen Namen sowie dessen E-Mail Adresse zu aktualisieren';
|
||||
$lang['update-user-login'] = 'SQL Anweisung um den Login-Namen eines Benutzers zu aktualisieren';
|
||||
$lang['update-user-pass'] = 'SQL Anweisung um das Passwort eines Benutzers zu aktualisieren';
|
||||
$lang['insert-group'] = 'SQL Anweisung um eine neue Gruppe in der Datenbank anzulegen';
|
||||
$lang['join-group'] = 'SQL Anweisung um einen Benutzer zu einer existierenden Gruppe hinzuzufügen';
|
||||
$lang['leave-group'] = 'SQL Anweisung um einen Benutzer aus einer Gruppe zu entfernen';
|
||||
$lang['check-pass'] = 'SQL Anweisung um das Passwort eines Benutzers zu überprüfen. Es kann leer gelassen werden wenn die Information über die Benutzerabfrage erhoben wurde.';
|
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Noel Tilliot <noeltilliot@byom.de>
|
||||
* @author Hendrik Diel <diel.hendrik@gmail.com>
|
||||
* @author Philip Knack <p.knack@stollfuss.de>
|
||||
*/
|
||||
$lang['connectfail'] = 'Verbindung zur Datenbank fehlgeschlagen.';
|
||||
$lang['userexists'] = 'Entschuldigung, aber dieser Benutzername ist bereits vergeben.';
|
||||
$lang['writefail'] = 'Die Benutzerdaten konnten nicht geändert werden. Bitte wenden Sie sich an den Wiki-Admin.';
|
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Jürgen Fredriksson <jfriedrich@gmx.at>
|
||||
*/
|
||||
$lang['debug'] = 'Zeige detaillierte Fehlermeldungen. Diese sollten nach dem Setup deaktiviert werden.';
|
||||
$lang['dsn'] = 'Der DSN(Data Source Name) zur Verbindung mit der Datenbank';
|
||||
$lang['user'] = 'Der Benutzer für die obige Datenbankverbindung (leer lassen für SQLite)';
|
||||
$lang['pass'] = 'Das Passwort für die obige Datenbankverbindung (leer lassen für SQLite)';
|
||||
$lang['select-user'] = 'SQL Anweisung um einen Benutzer abzufragen';
|
||||
$lang['select-user-groups'] = 'SQL Anweisung um alle Gruppen eines Benutzers abzufragen';
|
||||
$lang['select-groups'] = 'SQL Anweisung um alle verfügbaren Gruppen auszuwählen';
|
||||
$lang['insert-user'] = 'SQL Anweisung um einen neuen Benutzer in der Datenbank abzulegen';
|
||||
$lang['delete-user'] = 'SQL Anweisung um einen Benutzer aus der Datenbank zu entfernen';
|
||||
$lang['list-users'] = 'SQL Anweisung um eine Liste gefilterter Benutzer anzuzeigen';
|
||||
$lang['count-users'] = 'SQL Anweisung, welche die Anzahl der gefilterten Benutzer wiedergibt';
|
||||
$lang['update-user-info'] = 'SQL Anweisung um den vollen Namen sowie dessen E-Mail Adresse zu aktualisieren';
|
||||
$lang['update-user-login'] = 'SQL Anweisung um den Login-Namen eines Benutzers zu aktualisieren';
|
||||
$lang['update-user-pass'] = 'SQL Anweisung um das Passwort eines Benutzers zu aktualisieren';
|
||||
$lang['insert-group'] = 'SQL Anweisung um eine neue Gruppe in der Datenbank anzulegen';
|
||||
$lang['join-group'] = 'SQL Anweisung um einen Benutzer zu einer existierenden Gruppe hinzuzufügen';
|
||||
$lang['leave-group'] = 'SQL Anweisung um einen Benutzer aus einer Gruppe zu entfernen';
|
||||
$lang['check-pass'] = 'SQL Anweisung um das Passwort eines Benutzers zu überprüfen. Es kann leer gelassen werden wenn die Information über die Benutzerabfrage erhoben wurde.';
|
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Aikaterini Katapodi <extragold1234@hotmail.com>
|
||||
*/
|
||||
$lang['connectfail'] = 'Δεν μπόρεσε να κάνει σύνδεση με την βάση δεδομένων';
|
||||
$lang['userexists'] = 'Συγγνώμη υπάρχει ήδη χρήστης με αυτά τα στοιχεία';
|
||||
$lang['writefail'] = 'Δεν μπορέσαμε τα τροποποιήσουμε τα στοιχεία χρήστη. Παρακαλώ ενημερώστε το Wiki-Admin';
|
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Aikaterini Katapodi <extragold1234@hotmail.com>
|
||||
*/
|
||||
$lang['debug'] = 'Εκτύπωση μηνυμάτων σφαλμάτων λεπτομερώς. Αυτή η ρύθμιση πρέπει μετά να απενεργοποιηθεί.';
|
||||
$lang['dsn'] = 'Να συνδεθεί το DSN με τη βάση δεδομένων';
|
||||
$lang['user'] = 'Ο συνδεδεμένος χρήστης με την άνω βάση δεδομένων';
|
||||
$lang['pass'] = 'Ο κωδικός πρόσβασης της άνω βάσης δεδομένων';
|
||||
$lang['select-user'] = 'SQL Αντίγραφο επιλογής δεδομένων ενός απλού χρήστη';
|
||||
$lang['select-user-groups'] = 'SQL Αντίγραφο to select all groups of a single user ';
|
||||
$lang['select-groups'] = 'SQL Αντίγραφο για επιλογή όλων των διαθέσιμων ομάδων ';
|
||||
$lang['insert-user'] = 'Δηλωτικό SQL για να εισάγει έναν νέο χρήστη στη βάση δεδομένων';
|
||||
$lang['delete-user'] = 'Δηλωτικό SQL για αφαίρεση χρήστη από την βάση δεδομένων';
|
||||
$lang['list-users'] = 'Δηλωτικό SQL για να ταξινομήσει τους χρήστες με προσαρμογή φίλτρου';
|
||||
$lang['count-users'] = 'Δηλωτικό SQL για να μετρήσει τον αριθμό των χρηστών με τη χρήση ενός φίλτρου';
|
||||
$lang['update-user-info'] = 'Δηλωτικό SQL για ενημέρωση του ονόματος και της διεύθυνσης email ενός χρήστη';
|
||||
$lang['update-user-login'] = 'Δηλωτικό SQL για ενημέρωση του ονόματος σύνδεσης ενός απλού χρήστη ';
|
||||
$lang['update-user-pass'] = 'Δηλωτικό SQL για ενημέρωση του κωδικού πρόσβασης ενός χρήστη';
|
||||
$lang['insert-group'] = 'Δηλωτικό SQL για να εισάγει νέα ομάδα στην βάση δεδομένων';
|
||||
$lang['join-group'] = 'Δηλωτικό SQL για πρόσθεση χρήστη σε μια υπάρχουσα ομάδα';
|
||||
$lang['leave-group'] = 'Δηλωτικό SQL για αφαίρεση χρήστη από μια ομάδα';
|
||||
$lang['check-pass'] = 'Δηλωτικό SQL για να ελέγξει τον κωδικό πρόσβασης για έναν χρήστη. Μπορεί να μείνει κενό αν εισαχθεί κωδικός χρήστη στην ομάδα επιλογής χρήστη.';
|
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
/**
|
||||
* English language file for authpdo plugin
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
*/
|
||||
|
||||
$lang['connectfail'] = 'Failed to connect to database.';
|
||||
$lang['userexists'] = 'Sorry, a user with this login already exists.';
|
||||
$lang['writefail'] = 'Unable to modify user data. Please inform the Wiki-Admin';
|
||||
|
||||
//Setup VIM: ex: et ts=4 :
|
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
/**
|
||||
* english language file for authpdo plugin
|
||||
*
|
||||
* @author Andreas Gohr <andi@splitbrain.org>
|
||||
*/
|
||||
|
||||
$lang['debug'] = 'Print out detailed error messages. Should be disabled after setup.';
|
||||
$lang['dsn'] = 'The DSN to connect to the database.';
|
||||
$lang['user'] = 'The user for the above database connection (empty for sqlite)';
|
||||
$lang['pass'] = 'The password for the above database connection (empty for sqlite)';
|
||||
$lang['select-user'] = 'SQL Statement to select the data of a single user';
|
||||
$lang['select-user-groups'] = 'SQL Statement to select all groups of a single user';
|
||||
$lang['select-groups'] = 'SQL Statement to select all available groups';
|
||||
$lang['insert-user'] = 'SQL Statement to insert a new user into the database';
|
||||
$lang['delete-user'] = 'SQL Statement to remove a single user from the database';
|
||||
$lang['list-users'] = 'SQL Statement to list users matching a filter';
|
||||
$lang['count-users'] = 'SQL Statement to count users matching a filter';
|
||||
$lang['update-user-info'] = 'SQL Statement to update the full name and email address of a single user';
|
||||
$lang['update-user-login'] = 'SQL Statement to update the login name of a single user';
|
||||
$lang['update-user-pass'] = 'SQL Statement to update the password of a single user';
|
||||
$lang['insert-group'] = 'SQL Statement to insert a new group into the database';
|
||||
$lang['join-group'] = 'SQL Statement to add a user to an existing group';
|
||||
$lang['leave-group'] = 'SQL Statement to remove a user from a group';
|
||||
$lang['check-pass'] = 'SQL Statement to check the password for a user. Can be left empty if password info is fetched in select-user.';
|
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Yves Nevelsteen <yves.nevelsteen@gmail.com>
|
||||
*/
|
||||
$lang['connectfail'] = 'Malsukcesis konekti al datumbazo.';
|
||||
$lang['userexists'] = 'Pardonu, uzanto kun ĉi tiu salutnomo jam ekzistas.';
|
||||
$lang['writefail'] = 'Ne eblas modifi uzantajn datumojn. Bonvolu informi la Vikiadministranton';
|
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Yves Nevelsteen <yves.nevelsteen@gmail.com>
|
||||
*/
|
||||
$lang['debug'] = 'Presu detalajn erarmesaĝojn. Devus esti malŝaltita post agordo.';
|
||||
$lang['dsn'] = 'La DSN por konekti al la datumbazo.';
|
||||
$lang['user'] = 'La uzanto por ĉi-supra datumbaza konekto (malplena por sqlite)';
|
||||
$lang['pass'] = 'La pasvorto por la supra datumbaza konekto (malplena por sqlite)';
|
||||
$lang['select-user'] = 'SQL Statement por elekti la datumojn de ununura uzanto';
|
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Domingo Redal <docxml@gmail.com>
|
||||
*/
|
||||
$lang['connectfail'] = 'Error al conectar con la base de datos.';
|
||||
$lang['userexists'] = 'Lo sentimos, ya existe un usuario con ese inicio de sesión.';
|
||||
$lang['writefail'] = 'No es posible modificar los datos del usuario. Por favor, informa al Administrador del Wiki';
|
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author WIRESLINKEA <wireslinkea@gmail.com>
|
||||
*/
|
||||
$lang['debug'] = 'Imprime mensajes de error detallados. Debería ser deshabilitado después de la instalación.';
|
||||
$lang['dsn'] = 'El DSN para conectarse a la base de datos.';
|
||||
$lang['user'] = 'El usuario de la conexión de base de datos anterior (vacía para sqlite)';
|
||||
$lang['pass'] = 'La contraseña para la conexión de base de datos anterior (vacía para sqlite)';
|
||||
$lang['select-user'] = 'Declaración SQL para seleccionar los datos de un solo usuario';
|
||||
$lang['select-user-groups'] = 'Declaración SQL para seleccionar todos los grupos de un solo usuario';
|
||||
$lang['select-groups'] = 'Declaración SQL para seleccionar todos los grupos disponibles';
|
||||
$lang['insert-user'] = 'Declaración SQL para insertar un nuevo usuario en la base de datos';
|
||||
$lang['delete-user'] = 'Declaración SQL para eliminar un único usuario de la base de datos';
|
||||
$lang['list-users'] = 'Declaración SQL para mostrar los usuarios que coinciden con un filtro';
|
||||
$lang['count-users'] = 'Declaración SQL para contar usuarios que coinciden con un filtro';
|
||||
$lang['update-user-info'] = 'Declaración SQL para actualizar el nombre completo y la dirección de correo electrónico de un único usuario';
|
||||
$lang['update-user-login'] = 'Declaración SQL para actualizar el nombre de usuario de un solo usuario';
|
||||
$lang['update-user-pass'] = 'Declaración SQL para actualizar la contraseña de un solo usuario';
|
||||
$lang['insert-group'] = 'Declaración SQL para insertar un nuevo grupo en la base de datos';
|
||||
$lang['join-group'] = 'Declaración SQL para agregar un usuario a un grupo existente ';
|
||||
$lang['leave-group'] = 'Declaración SQL para eliminar un usuario de un grupo';
|
||||
$lang['check-pass'] = 'Declaración SQL para verificar la contraseña de un usuario. Puede dejarse vacío si se busca información de contraseña en el usuario de selección.';
|
@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Mohmmad Razavi <sepent@gmail.com>
|
||||
* @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir>
|
||||
*/
|
||||
$lang['connectfail'] = 'خطا در اتصال به دیتابیس';
|
||||
$lang['userexists'] = 'با عرض پوزش، یک کاربر با این نام از قبل وجود دارد.';
|
||||
$lang['writefail'] = 'امکان تغییر داده کاربر وجود نداشت. لطفا مسئول Wiki را آگاه کنید.';
|
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Masoud Sadrnezhaad <masoud@sadrnezhaad.ir>
|
||||
*/
|
||||
$lang['debug'] = 'جزئیات پیامهای خطا را نمایش بده. باید بعد از تنظیم غیرفعال شود.';
|
||||
$lang['dsn'] = 'دیاسان برای اتصال به پایگاه داده';
|
||||
$lang['user'] = 'کاربر برای اتصال پایگاه دادهٔ بالا (برای sqlite خالی)';
|
||||
$lang['pass'] = 'کلمهٔ عبور برای اتصال پایگاه دادهٔ بالا (برای sqlite خالی)';
|
||||
$lang['select-user'] = 'دستور SQL برای انتخاب دادهای از یک کاربر';
|
||||
$lang['select-user-groups'] = 'دستور SQL برای انتخاب همهٔ گروههای یک کاربر';
|
||||
$lang['select-groups'] = 'دستور SQL برای انتخاب گروههای موجود';
|
||||
$lang['insert-user'] = 'دستور SQL برای افزودن یک کاربر جدید به پایگاه داده';
|
||||
$lang['delete-user'] = 'دستور SQL برای ححذف یک کاربر از پایگاه داده';
|
||||
$lang['list-users'] = 'دستور SQL برای فهرست کردن کاربران دارای ویژگی مشخص';
|
||||
$lang['count-users'] = 'دستور SQL برای شمارش کاربران دارای ویژگی مشخص';
|
||||
$lang['update-user-info'] = 'دستور SQL برای بهروزرسانی نام کامل و ایمیل یک کاربر';
|
||||
$lang['update-user-login'] = 'دستور SQL برای بهروزرسانی نام ورود به سیستم برای یک کاربر';
|
||||
$lang['update-user-pass'] = 'دستور SQL برای بهروزرسانی کلمهٔ عبور برای یک کاربر';
|
||||
$lang['insert-group'] = 'دستور SQL برای افزودن گروه جدید به پایگاه داده';
|
||||
$lang['join-group'] = 'دستور SQL برای افزودن یک کاربر به یک گروه موجود';
|
||||
$lang['leave-group'] = 'دستور SQL برای حذف یک کاربر از یک گروه';
|
||||
$lang['check-pass'] = 'دستور SQL برای چک کردن کلمهٔ عبور یک کاربر. اگر اطلاعات کلمهٔ عبور در دریافت کاربر گرفته شده میتواند خالی بماند.';
|
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Pietroni <pietroni@informatique.univ-paris-diderot.fr>
|
||||
*/
|
||||
$lang['connectfail'] = 'Impossible de se connecter à la base de données.';
|
||||
$lang['userexists'] = 'Désolé, un utilisateur avec cet identifiant existe déjà.';
|
||||
$lang['writefail'] = 'Impossible de modifier les données utilisateur. Veuillez en informer l\'administrateur du Wiki.';
|
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Schplurtz le Déboulonné <schplurtz@laposte.net>
|
||||
*/
|
||||
$lang['debug'] = 'Afficher des messages d\'erreur détaillés. Devrait être désactivé passé la configuration.';
|
||||
$lang['dsn'] = 'Le DSN de connexion à la base de données.';
|
||||
$lang['user'] = 'L\'utilisateur pour la connexion à la base de donnée ci-dessus (vide pour sqlite)';
|
||||
$lang['pass'] = 'Le mot de passe pour la connexion à la base de donnée ci-dessus (vide pour sqlite)';
|
||||
$lang['select-user'] = 'Instruction SQL pour sélectionner les données d\'un seul utilisateur';
|
||||
$lang['select-user-groups'] = 'Instruction SQL pour sélectionner tous les groupes d\'un utilisateur donné';
|
||||
$lang['select-groups'] = 'Instruction SQL pour sélectionner tous les groupes disponibles';
|
||||
$lang['insert-user'] = 'Instruction SQL pour insérer un nouvel utilisateur dans la base de données';
|
||||
$lang['delete-user'] = 'Instruction SQL pour retirer un utilisateur de la base de données';
|
||||
$lang['list-users'] = 'Instruction SQL pour lister les utilisateurs correspondant à un filtre';
|
||||
$lang['count-users'] = 'Instruction SQL pour compter les utilisateurs correspondant à un filtre';
|
||||
$lang['update-user-info'] = 'Instruction SQL pour mettre à jour le nom complet et l\'adresse de courriel d\'un utilisateur donné';
|
||||
$lang['update-user-login'] = 'Instruction SQL pour mettre à jour l\'identifiant d\'un utilisateur donné';
|
||||
$lang['update-user-pass'] = 'Instruction SQL pour mettre à jour le mot de passe d\'un utilisateur donné';
|
||||
$lang['insert-group'] = 'Instruction SQL pour mettre insérer un nouveau groupe dans la base de données';
|
||||
$lang['join-group'] = 'Instruction SQL pour ajouter un utilisateur à un groupe existant';
|
||||
$lang['leave-group'] = 'Instruction SQL pour retirer un utilisateur d\'un groupe';
|
||||
$lang['check-pass'] = 'Instruction SQL pour vérifier le mot de passe d\'un utilisateur. Peut être laissé vide si l\'information de mot de passe est obtenue lors de la sélection d\'un utilisateur.';
|
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Davor Turkalj <turki.bsc@gmail.com>
|
||||
*/
|
||||
$lang['connectfail'] = 'Ne mogu se spojiti na bazu.';
|
||||
$lang['userexists'] = 'Oprostite ali korisnik s ovom prijavom već postoji.';
|
||||
$lang['writefail'] = 'Ne mogu izmijeniti podatke. Molim obavijestite Wiki administratora';
|
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Marton Sebok <sebokmarton@gmail.com>
|
||||
*/
|
||||
$lang['connectfail'] = 'Az adatbázishoz való csatlakozás sikertelen.';
|
||||
$lang['userexists'] = 'Sajnos már létezik ilyen azonosítójú felhasználó.';
|
||||
$lang['writefail'] = 'A felhasználói adatok módosítása sikertelen. Kérlek, fordulj a wiki rendszergazdájához!';
|
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Torpedo <dgtorpedo@gmail.com>
|
||||
*/
|
||||
$lang['connectfail'] = 'Connessione fallita al database.';
|
||||
$lang['userexists'] = 'Spiacente, esiste già un utente con queste credenziali.';
|
||||
$lang['writefail'] = 'Non è possibile cambiare le informazioni utente. Si prega di informare l\'Amministratore del wiki';
|
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Eddy <eddy@mail.it>
|
||||
* @author Riccardo <riccardo.furlato@gmail.com>
|
||||
*/
|
||||
$lang['debug'] = 'Stampa messaggi di errore dettagliati. Dovrebbe essere disabilitato dopo l\'installazione.';
|
||||
$lang['dsn'] = 'Il DSN per connettersi al database.';
|
||||
$lang['user'] = 'L\'utente per la connessione al database sopra (vuoto per sqlite)';
|
||||
$lang['pass'] = 'La password per la connessione al database sopra (vuoto per sqlite)';
|
||||
$lang['select-user'] = 'Istruzione SQL per selezionare i dati di un singolo utente';
|
||||
$lang['select-user-groups'] = 'Istruzione SQL per selezionare tutti i gruppi di un singolo utente';
|
||||
$lang['select-groups'] = 'Istruzione SQL per selezionare tutti i gruppi disponibili';
|
||||
$lang['insert-user'] = 'Istruzione SQL per inserire un nuovo utente nel database';
|
||||
$lang['delete-user'] = 'Istruzione SQL per rimuovere un singolo utente dal database';
|
||||
$lang['list-users'] = 'Istruzione SQL per elencare gli utenti che corrispondono a un filtro';
|
||||
$lang['count-users'] = 'Istruzione SQL per contare gli utenti che corrispondono a un filtro';
|
||||
$lang['update-user-info'] = 'Istruzione SQL per aggiornare nome completo ed indirizzo email di un singolo utente';
|
||||
$lang['update-user-login'] = 'Istruzione SQL per aggiornare il nome di login di un singolo utente';
|
||||
$lang['update-user-pass'] = 'Istruzione SQL per aggiornare la password di un singolo utente';
|
||||
$lang['insert-group'] = 'Istruzione SQL per inserire un nuovo gruppo nel database';
|
||||
$lang['join-group'] = 'Istruzione SQL per aggiungere un utente ad un gruppo esistente';
|
||||
$lang['leave-group'] = 'Istruzione SQL per rimuovere un utente da un gruppo';
|
||||
$lang['check-pass'] = 'Istruzione SQL per cercare la password di un utente. Può essere omessa se l\'informazioni sulla password è recuperate dalla selezione utente.';
|
@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author HokkaidoPerson <dosankomali@yahoo.co.jp>
|
||||
* @author Hideaki SAWADA <chuno@live.jp>
|
||||
*/
|
||||
$lang['connectfail'] = 'データベースへの接続に失敗しました。';
|
||||
$lang['userexists'] = '恐れ入りますが、このログイン名のユーザーが既に存在しています。';
|
||||
$lang['writefail'] = 'ユーザーデータを変更できません。Wiki の管理者に連絡してください。';
|
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author HokkaidoPerson <dosankomali@yahoo.co.jp>
|
||||
*/
|
||||
$lang['debug'] = '詳細なエラーメッセージを出力する(セットアップ後、このオプションはオフにすべきです)';
|
||||
$lang['dsn'] = 'データベースにアクセスするDSN';
|
||||
$lang['user'] = '上記データベースに接続するユーザー名(sqliteの場合は空欄にしておいて下さい)';
|
||||
$lang['pass'] = '上記データベースに接続するパスワード(sqliteの場合は空欄にしておいて下さい)';
|
||||
$lang['select-user'] = '個々のユーザーのデータを選ぶSQL命令文';
|
||||
$lang['select-user-groups'] = '個々のユーザーが属する全てのグループを選ぶSQL命令文';
|
||||
$lang['select-groups'] = '利用可能な全グループを選ぶSQL命令文';
|
||||
$lang['insert-user'] = 'データベースに新規ユーザーを追加するSQL命令文';
|
||||
$lang['delete-user'] = '個々のユーザーをデータベースから取り除くSQL命令文';
|
||||
$lang['list-users'] = 'フィルターに一致するユーザーを一覧にするSQL命令文';
|
||||
$lang['count-users'] = 'フィルターに一致するユーザーを数えるSQL命令文';
|
||||
$lang['update-user-info'] = '個々のユーザーのフルネームとメールアドレスを更新するSQL命令文';
|
||||
$lang['update-user-login'] = '個々のユーザーのログイン名を更新するSQL命令文';
|
||||
$lang['update-user-pass'] = '個々のユーザーのパスワードを更新するSQL命令文';
|
||||
$lang['insert-group'] = 'データベースに新規グループを追加するSQL命令文';
|
||||
$lang['join-group'] = '既にあるグループにユーザーを追加するSQL命令文';
|
||||
$lang['leave-group'] = 'グループからユーザーを取り除くSQL命令文';
|
||||
$lang['check-pass'] = 'ユーザーのパスワードをチェックするSQL命令文(select-userでパスワード情報を呼び出す場合は空欄にしておけます)';
|
@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author hyeonsoft <hyeonsoft@live.co.kr>
|
||||
* @author Myeongjin <aranet100@gmail.com>
|
||||
*/
|
||||
$lang['connectfail'] = '데이터베이스에 연결하는 데 실패했습니다.';
|
||||
$lang['userexists'] = '죄송하지만 이 계정으로 이미 로그인한 사용자가 있습니다.';
|
||||
$lang['writefail'] = '사용자 데이터를 수정할 수 없습니다. 위키 관리자에게 문의하시기 바랍니다';
|
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author merefox <admin@homerecz.com>
|
||||
* @author pavement <pavement@rael.cc>
|
||||
* @author Traend <Traend@ruu.kr>
|
||||
*/
|
||||
$lang['debug'] = '자세한 오류 메시지를 출력합니다. 설정 후 비활성화해야 합니다.';
|
||||
$lang['dsn'] = '데이터베이스에 연결할 DSN';
|
||||
$lang['user'] = '위의 데이터베이스 연결에 대한 사용자(sqlite의 경우 비어 있음)';
|
||||
$lang['pass'] = '위의 데이터베이스 연결에 대한 암호(sqlite의 경우 비어 있음)';
|
||||
$lang['select-user'] = '단일 사용자의 데이터를 선택하기 위한 SQL 문
|
||||
';
|
||||
$lang['select-user-groups'] = '단일 사용자의 모든 그룹을 선택하기 위한 SQL 문';
|
||||
$lang['select-groups'] = '사용 가능한 모든 그룹을 선택하기 위한 SQL 문
|
||||
';
|
||||
$lang['insert-user'] = '데이터베이스에 새 사용자를 삽입하는 SQL 문
|
||||
';
|
||||
$lang['delete-user'] = '데이터베이스에서 단일 사용자를 제거하기 위한 SQL 문';
|
||||
$lang['list-users'] = '필터와 일치하는 사용자를 나열하는 SQL 문';
|
||||
$lang['count-users'] = '필터와 일치하는 사용자를 계산하는 SQL 문';
|
||||
$lang['update-user-info'] = '단일 사용자의 전체 이름과 이메일 주소를 업데이트하는 SQL 문';
|
||||
$lang['update-user-login'] = '단일 사용자의 로그인 이름을 업데이트하는 SQL 문';
|
||||
$lang['update-user-pass'] = '단일 사용자의 암호를 업데이트하는 SQL 문';
|
||||
$lang['insert-group'] = '데이터베이스에 새 그룹을 삽입하는 SQL 문';
|
||||
$lang['join-group'] = '기존 그룹에 사용자를 추가하는 SQL 문';
|
||||
$lang['leave-group'] = '그룹에서 사용자를 제거하는 SQL 문';
|
||||
$lang['check-pass'] = '사용자의 암호를 확인하는 SQL 문입니다. 선택 사용자에서 암호 정보를 가져오는 경우 비워 둘 수 있습니다.';
|
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Hugo Smet <hugo.smet@scarlet.be>
|
||||
*/
|
||||
$lang['connectfail'] = 'Connectie met de database mislukt.';
|
||||
$lang['userexists'] = 'Sorry, een gebruiker met deze login bestaat reeds.';
|
||||
$lang['writefail'] = 'Onmogelijk om de gebruikers data te wijzigen. Gelieve de Wiki-Admin te informeren.';
|
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @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.';
|
||||
$lang['dsn'] = 'De DSN om verbinding te maken met de database.';
|
||||
$lang['user'] = 'De gebruikersnaam voor de bovengenoemde database verbinding (laat leeg voor sqlite)';
|
||||
$lang['pass'] = 'Het wachtwoord voor de bovengenoemde database verbinding (laat leeg voor sqlite)';
|
||||
$lang['select-user'] = 'SQL Statement om de data te selecteren van één gebruiker';
|
||||
$lang['select-user-groups'] = 'SQL Statement om alle groepen van één gebruiker te selecteren';
|
||||
$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';
|
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Przemek <p_kudriawcew@o2.pl>
|
||||
*/
|
||||
$lang['connectfail'] = 'Błąd łącznie się z bazą danych';
|
||||
$lang['userexists'] = 'Przepraszamy, użytkownik o tym loginie już istnieje';
|
||||
$lang['writefail'] = 'Nie można zmodyfikować danych użytkownika. Proszę skontaktować się z Administratorem';
|
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Marek Adamski <fevbew@wp.pl>
|
||||
* @author pavulondit <pavloo@vp.pl>
|
||||
* @author Bartek S <sadupl@gmail.com>
|
||||
* @author Przemek <p_kudriawcew@o2.pl>
|
||||
*/
|
||||
$lang['debug'] = 'Wyświetlanie szczegółowej wiadomości o błędzie. Powinno być wyłączone po ';
|
||||
$lang['dsn'] = 'Nazwa źródła danych do łączenia się z bazą danych';
|
||||
$lang['user'] = 'Użytkownik do powyższego połączenia z bazą danych (puste dla sqlite)';
|
||||
$lang['pass'] = 'Hasło do powyższego połączenia z bazą danych (puste dla sqlite)';
|
||||
$lang['select-user'] = 'Zapytanie SQL, aby wybrać dane jednego użytkownika';
|
||||
$lang['select-user-groups'] = 'Zapytanie SQL aby wybrać wszystkie grupy jednego użytkownika';
|
||||
$lang['select-groups'] = 'Instrukcja SQL do wybrania wszystkich dostępnych grup';
|
||||
$lang['insert-user'] = 'Instrukcja SQL do wstawienia nowego użytkownika do bazy danych';
|
||||
$lang['delete-user'] = 'Instrukcja SQL do usunięcia pojedynczego użytkownika z bazy danych';
|
||||
$lang['list-users'] = 'Instrukcja SQL do wyświetlenia listy użytkowników pasujących do filtra';
|
||||
$lang['count-users'] = 'Instrukcja SQL do zliczenia użytkowników pasujących do filtra';
|
||||
$lang['update-user-info'] = 'Wyrażenie SQL aby zaktualizować imię oraz adres email dla pojedynczego użytkownika';
|
||||
$lang['update-user-login'] = 'Wyrażenie SQL aby zaktualizować login dla pojedynczego użytkownika';
|
||||
$lang['update-user-pass'] = 'Zapytanie SQL do zaktualizowania hasła dla pojedynczego użytkownika';
|
||||
$lang['insert-group'] = 'Zapytanie SQL aby dodać nową grupę do bazy danych';
|
||||
$lang['join-group'] = 'Zapytanie SQL aby dodać użytkownika do istniejącej grupy';
|
||||
$lang['leave-group'] = 'Zapytanie SQL aby usunąć użytkownika z grupy';
|
||||
$lang['check-pass'] = 'Zapytanie SQL aby sprawdzić hasło użytkownika. Można pozostawić puste, jeśli informacje o haśle są pobierane w select-user.';
|
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
|
||||
*/
|
||||
$lang['connectfail'] = 'Não foi possível conectar ao banco de dados.';
|
||||
$lang['userexists'] = 'Desculpe, mas já existe esse nome de usuário.';
|
||||
$lang['writefail'] = 'Não foi possível modificar os dados do usuário. Por favor, informe ao administrador do Wiki.';
|
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Frederico Gonçalves Guimarães <frederico@teia.bio.br>
|
||||
*/
|
||||
$lang['debug'] = 'Exibir mensagens de erro detalhadas. Deve ser desabilitado após a configuração.';
|
||||
$lang['dsn'] = 'O DSN para conectar ao banco de dados.';
|
||||
$lang['user'] = 'O usuário para a conexão ao banco de dados acima (em branco para sqlite)';
|
||||
$lang['pass'] = 'A senha para a conexão ao banco de dados acima (em branco para sqlite)';
|
||||
$lang['select-user'] = 'Declaração SQL para selecionar os dados de um único usuário';
|
||||
$lang['select-user-groups'] = 'Declaração SQL para selecionar todos os grupos de um único usuário';
|
||||
$lang['select-groups'] = 'Declaração SQL para selecionar todos os grupos disponíveis';
|
||||
$lang['insert-user'] = 'Declaração SQL para inserir um novo usuário no banco de dados';
|
||||
$lang['delete-user'] = 'Declaração SQL para remover um único usuário do banco de dados';
|
||||
$lang['list-users'] = 'Declaração SQL para listar usuários correspondentes a um filtro';
|
||||
$lang['count-users'] = 'Declaração SQL para contar usuários correspondentes a um filtro';
|
||||
$lang['update-user-info'] = 'Declaração SQL para atualizar o nome completo e endereço de e-mail de um único usuário';
|
||||
$lang['update-user-login'] = 'Declaração SQL para atualizar o nome de usuário de e-mail de um único usuário';
|
||||
$lang['update-user-pass'] = 'Declaração SQL para atualizar a senha de um único usuário';
|
||||
$lang['insert-group'] = 'Declaração SQL para inserir um novo grupo no banco de dados';
|
||||
$lang['join-group'] = 'Declaração SQL para adicionar um usuário a um grupo existente';
|
||||
$lang['leave-group'] = 'Declaração SQL para remover um usuário de um grupo';
|
||||
$lang['check-pass'] = 'Declaração SQL para verificar a senha de um usuário. Pode ser deixada em branco se a informação da senha for obtida a partir do usuário selecionado.';
|
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Paulo Schopf <pschopf@gmail.com>
|
||||
* @author Maykon Oliveira <maykonoliveira850@gmail.com>
|
||||
* @author Paulo Carmino <contato@paulocarmino.com>
|
||||
*/
|
||||
$lang['connectfail'] = 'Erro ao conectar 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';
|
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Paulo Ricardo Schopf <pschopf@gmail.com>
|
||||
* @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';
|
||||
$lang['select-groups'] = 'Instrução SQL para selecionar todos os grupos disponíveis';
|
||||
$lang['insert-user'] = 'Instrução SQL para inserir um novo usuário no banco de dados';
|
||||
$lang['delete-user'] = 'Instrução SQL para remover um usuário do banco de dados';
|
||||
$lang['list-users'] = 'Instrução SQL para listar usuários que correspondam a um filtro';
|
||||
$lang['count-users'] = 'Instrução SQL para contar usuários que correspondam a um filtro';
|
||||
$lang['update-user-info'] = 'Instrução SQL para atualizar o nome completo e e-mail de um usuário';
|
||||
$lang['update-user-login'] = 'Instrução SQL para atualizar o nome de login de um usuário';
|
||||
$lang['update-user-pass'] = 'Instrução SQL para atualizar a senha de um usuário';
|
||||
$lang['insert-group'] = 'Instrução SQL para inserir um novo grupo no banco de dados';
|
||||
$lang['join-group'] = 'Instrução SQL para adicionar um usuário a um grupo existente';
|
||||
$lang['leave-group'] = 'Instrução SQL para remover um usuário de um grupo';
|
||||
$lang['check-pass'] = 'Instrução SQL para verificar a senha de um usuário. Pode ser deixado em branco se a informação da senha for buscada no usuário selecionado.';
|
@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Takumo <9206984@mail.ru>
|
||||
* @author Aleksandr Selivanov <alexgearbox@yandex.ru>
|
||||
*/
|
||||
$lang['connectfail'] = 'Ошибка соединения с базой данных.';
|
||||
$lang['userexists'] = 'Извините, пользователь с таким логином уже существует.';
|
||||
$lang['writefail'] = 'Невозможно изменить данные пользователя. Сообщите об этом администратору вики.';
|
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Aleksandr Selivanov <alexgearbox@yandex.ru>
|
||||
* @author Vyacheslav Strenadko <vyacheslav.strenadko@gmail.com>
|
||||
*/
|
||||
$lang['debug'] = 'Выводить подробные сообщения об ошибках. Должно быть отключено после настройки.';
|
||||
$lang['dsn'] = 'DSN (имя источника данных) для подключения к базе данных';
|
||||
$lang['user'] = 'Имя пользователя для подключения к базе данных (пустое для SQLite)';
|
||||
$lang['pass'] = 'Пароль для подключения к базе данных (пустой для SQLite)';
|
||||
$lang['select-user'] = 'SQL-выражение для выбора данных одного пользователя';
|
||||
$lang['select-user-groups'] = 'SQL-выражение для выбора всех групп одного пользователя';
|
||||
$lang['select-groups'] = 'SQL-выражение для выбора всех доступных групп';
|
||||
$lang['insert-user'] = 'SQL-выражение для добавления нового пользователя в базу данных';
|
||||
$lang['delete-user'] = 'SQL-выражение для удаления одного пользователя из базы данных';
|
||||
$lang['list-users'] = 'SQL-выражение для перечисления пользователей, соответствующих фильтру';
|
||||
$lang['count-users'] = 'SQL-выражение для подсчёта пользователей, соответствующих фильтру';
|
||||
$lang['update-user-info'] = 'SQL-выражение для обновления полного имени и адреса эл. почты одного пользователя';
|
||||
$lang['update-user-login'] = 'SQL-выражение для обновления логина одного пользователя';
|
||||
$lang['update-user-pass'] = 'SQL-выражение для обновления пароля одного пользователя';
|
||||
$lang['insert-group'] = 'SQL-выражение для добавления новой группы в базу данных';
|
||||
$lang['join-group'] = 'SQL-выражение для добавления пользователя в существующую группу';
|
||||
$lang['leave-group'] = 'SQL-выражение для удаления пользователя из группы';
|
||||
$lang['check-pass'] = 'SQL-выражение для проверки пароля пользователя. Может быть пустым, если информация о пароле выбрана пользователем. (Can be left empty if password info is fetched in select-user.)';
|
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Martin Michalek <michalek.dev@gmail.com>
|
||||
*/
|
||||
$lang['connectfail'] = 'Nepodarilo sa pripojiť k databáze.';
|
||||
$lang['userexists'] = 'Ľutujem, ale používateľ s týmto prihlasovacím menom už existuje.';
|
||||
$lang['writefail'] = 'Nie je možné zmeniť údaje používateľa, informujte prosím administrátora Wiki.';
|
@ -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.';
|
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Patrik K Lundberg <patrik.kotiranta.lundberg@gmail.com>
|
||||
*/
|
||||
$lang['connectfail'] = 'Misslyckades med att ansluta databas.';
|
||||
$lang['userexists'] = 'PHP mail() saknas eller är inaktiverad. Följande mejl skickades inte:';
|
||||
$lang['writefail'] = 'Wiki Markup';
|
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Patrik K Lundberg <patrik.kotiranta.lundberg@gmail.com>
|
||||
*/
|
||||
$lang['user'] = 'Användaren för databasen ovan (tom för sqlite)';
|
||||
$lang['pass'] = 'Lösenordet för databasen ovan (tom för sqlite)';
|
||||
$lang['select-user'] = 'SQL uttryck för att välja datan för en enda användare';
|
||||
$lang['select-user-groups'] = 'SQL uttryck för att välja alla grupper för en enda användare';
|
||||
$lang['select-groups'] = 'SQL uttryck för att välja alla tillgängliga grupper';
|
||||
$lang['insert-user'] = 'SQL uttryck för att lägga till en ny användare i databasen';
|
||||
$lang['delete-user'] = 'SQL uttryck för att ta bort en enda användare från databasen';
|
||||
$lang['list-users'] = 'SQL uttryck för att lista användare som matchar filtret';
|
||||
$lang['count-users'] = 'SQL uttryck för att räkna användare som matchar filtret';
|
||||
$lang['update-user-info'] = 'SQL uttryck för att uppdatera det fullständiga namnet och mejladressen för en användare';
|
||||
$lang['update-user-login'] = 'SQL uttryck för att uppdatera användarnamnet för en användare';
|
||||
$lang['update-user-pass'] = 'SQL uttryck för att uppdatera lösenordet för en användare';
|
||||
$lang['insert-group'] = 'SQL uttryck för att lägga till en ny grupp i databasen';
|
||||
$lang['join-group'] = 'SQL uttryck för att lägga till en användare i en existerande grupp';
|
||||
$lang['leave-group'] = 'SQL uttryck för att ta bort en användare från en grupp';
|
||||
$lang['check-pass'] = 'SQL uttryck för att kontrollera en användares lösenord. Kan lämnas tomt utifall informationen hämtas i "select-user".';
|
@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Mete Cuma <mcumax@gmail.com>
|
||||
*/
|
||||
$lang['connectfail'] = 'Veritabanına bağlantı kurulamadı.';
|
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Dmytro Marchenko <dmytro.marchenko1989@gmail.com>
|
||||
*/
|
||||
$lang['connectfail'] = 'Не вдалося підключитися до бази даних.';
|
||||
$lang['userexists'] = 'На жаль, користувач із цим логіном вже існує.';
|
||||
$lang['writefail'] = 'Неможливо змінити дані користувача. Будь-ласка, повідомте про це Wiki-Адміністратора';
|
@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Dmytro Marchenko <dmytro.marchenko1989@gmail.com>
|
||||
*/
|
||||
$lang['dsn'] = 'DSN для підключення до бази даних.';
|
||||
$lang['user'] = 'Користувач для вищевказаного з\'єднання з базою даних (порожній для sqlite)';
|
||||
$lang['pass'] = 'Пароль для вищезазначеного з\'єднання з базою даних (порожній для sqlite)';
|
||||
$lang['select-user'] = 'Запит SQL для вибору даних одного користувача';
|
||||
$lang['select-user-groups'] = 'Запит SQL для вибору всіх груп одного користувача';
|
||||
$lang['select-groups'] = 'Запит SQL для вибору всіх доступних груп';
|
||||
$lang['insert-user'] = 'Запит SQL для вставки нового користувача в базу даних';
|
||||
$lang['delete-user'] = 'Запит SQL для видалення одного користувача з бази даних';
|
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Thien Hau <thienhau.9a14@gmail.com>
|
||||
*/
|
||||
$lang['connectfail'] = 'Không thể kết nối với cơ sở dữ liệu.';
|
||||
$lang['userexists'] = 'Xin lỗi, thành viên có thông tin đăng nhập này đã tồn tại.';
|
||||
$lang['writefail'] = 'Không thể sửa đổi dữ liệu thành viên. Vui lòng thông báo cho Quản trị viên Wiki';
|
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Thien Hau <thienhau.9a14@gmail.com>
|
||||
*/
|
||||
$lang['debug'] = 'In ra các thông báo lỗi chi tiết. Nên bị vô hiệu hóa sau khi thiết lập.';
|
||||
$lang['dsn'] = 'DSN để kết nối với cơ sở dữ liệu.';
|
||||
$lang['user'] = 'Thành viên cho kết nối cơ sở dữ liệu trên (trống cho sqlite)';
|
||||
$lang['pass'] = 'Mật khẩu cho kết nối cơ sở dữ liệu trên (trống cho sqlite)';
|
||||
$lang['select-user'] = 'Câu lệnh SQL để chọn dữ liệu của một thành viên';
|
||||
$lang['select-user-groups'] = 'Câu lệnh SQL để chọn tất cả các nhóm của một thành viên';
|
||||
$lang['select-groups'] = 'Câu lệnh SQL để chọn tất cả các nhóm có sẵn';
|
||||
$lang['insert-user'] = 'Câu lệnh SQL để chèn thành viên mới vào cơ sở dữ liệu';
|
||||
$lang['delete-user'] = 'Câu lệnh SQL để xóa một thành viên khỏi cơ sở dữ liệu';
|
||||
$lang['list-users'] = 'Câu lệnh SQL để liệt kê thành viên khớp với bộ lọc';
|
||||
$lang['count-users'] = 'Câu lệnh SQL để đếm thành viên khớp với bộ lọc';
|
||||
$lang['update-user-info'] = 'Câu lệnh SQL để cập nhật tên đầy đủ và địa chỉ thư điện tử của một thành viên';
|
||||
$lang['update-user-login'] = 'Câu lệnh SQL để cập nhật tên đăng nhập của một thành viên';
|
||||
$lang['update-user-pass'] = 'Câu lệnh SQL để cập nhật mật khẩu của một thành viên';
|
||||
$lang['insert-group'] = 'Câu lệnh SQL để chèn một nhóm mới vào cơ sở dữ liệu';
|
||||
$lang['join-group'] = 'Câu lệnh SQL để thêm thành viên vào một nhóm hiện có';
|
||||
$lang['leave-group'] = 'Câu lệnh SQL để xóa thành viên khỏi một nhóm';
|
||||
$lang['check-pass'] = 'Câu lệnh SQL để kiểm tra mật khẩu của thành viên. Có thể để trống nếu thông tin mật khẩu được tìm nạp trong thành viên chọn.';
|
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Errol <errol@hotmail.com>
|
||||
*/
|
||||
$lang['connectfail'] = '连接数据库失败';
|
||||
$lang['userexists'] = '抱歉,用户名已被使用。';
|
||||
$lang['writefail'] = '无法修改用户数据。请通知管理员';
|
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
|
||||
*
|
||||
* @author Phy <dokuwiki@phy25.com>
|
||||
* @author Aaron Zhou <iradio@163.com>
|
||||
*/
|
||||
$lang['debug'] = '打印详细的错误信息。应该在设定完成后禁用。';
|
||||
$lang['dsn'] = '连接到数据库的DSN';
|
||||
$lang['user'] = '以上数据库连接的用户名(sqlite 留空)';
|
||||
$lang['pass'] = '以上数据库连接的密码 (sqlite 留空)';
|
||||
$lang['select-user'] = '选择单一用户数据的SQL语句';
|
||||
$lang['select-user-groups'] = '选择单一用户所有用户组的SQL语句';
|
||||
$lang['select-groups'] = '选择所有有效组的SQL语句';
|
||||
$lang['insert-user'] = '向数据库插入一个新用户的SQL语句';
|
||||
$lang['delete-user'] = '从数据库中移除单个用户的SQL语句';
|
||||
$lang['list-users'] = '列出与筛选条件匹配用户的SQL语句';
|
||||
$lang['count-users'] = '统计与筛选条件匹配的用户数量的SQL语句';
|
||||
$lang['update-user-info'] = '更新单一用户全名和email地址的SQL语句';
|
||||
$lang['update-user-login'] = '更新单一用户登录名的SQL语句';
|
||||
$lang['update-user-pass'] = '更新单一用户密码的SQL语句';
|
||||
$lang['insert-group'] = '向数据库中插入一个新组的SQL语句';
|
||||
$lang['join-group'] = '把用户增加到现有用户组的 SQL 语句';
|
||||
$lang['leave-group'] = '把用户移除出现有用户组的 SQL 语句';
|
||||
$lang['check-pass'] = '查询用户密码的 SQL 语句(如密码在 select-user 查询时已经获取,则本设置可留空)';
|
@ -0,0 +1,7 @@
|
||||
base authpdo
|
||||
author Andreas Gohr
|
||||
email andi@splitbrain.org
|
||||
date 2016-08-20
|
||||
name authpdo plugin
|
||||
desc Authenticate against a database via PDO
|
||||
url https://www.dokuwiki.org/plugin:authpdo
|
Reference in New Issue
Block a user