{"action":"created","issue":{"url":"https://api.github.com/repos/splitbrain/dokuwiki/issues/1457","repository_url":"https://api.github.com/repos/splitbrain/dokuwiki","labels_url":"https://api.github.com/repos/splitbrain/dokuwiki/issues/1457/labels{/name}","comments_url":"https://api.github.com/repos/splitbrain/dokuwiki/issues/1457/comments","events_url":"https://api.github.com/repos/splitbrain/dokuwiki/issues/1457/events","html_url":"https://github.com/splitbrain/dokuwiki/pull/1457","id":130017762,"number":1457,"title":"AuthPDO Plugin implements #1029, replaces #1143","user":{"login":"splitbrain","id":86426,"avatar_url":"https://avatars.githubusercontent.com/u/86426?v=3","gravatar_id":"","url":"https://api.github.com/users/splitbrain","html_url":"https://github.com/splitbrain","followers_url":"https://api.github.com/users/splitbrain/followers","following_url":"https://api.github.com/users/splitbrain/following{/other_user}","gists_url":"https://api.github.com/users/splitbrain/gists{/gist_id}","starred_url":"https://api.github.com/users/splitbrain/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/splitbrain/subscriptions","organizations_url":"https://api.github.com/users/splitbrain/orgs","repos_url":"https://api.github.com/users/splitbrain/repos","events_url":"https://api.github.com/users/splitbrain/events{/privacy}","received_events_url":"https://api.github.com/users/splitbrain/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/splitbrain/dokuwiki/labels/Category:%20ACL%20&%20Authentication","name":"Category: ACL & Authentication","color":"F7F6DF"},{"url":"https://api.github.com/repos/splitbrain/dokuwiki/labels/Category:%20Backend","name":"Category: Backend","color":"F7F6DF"},{"url":"https://api.github.com/repos/splitbrain/dokuwiki/labels/Needs%20Feedback/Discussion","name":"Needs Feedback/Discussion","color":"cc317c"},{"url":"https://api.github.com/repos/splitbrain/dokuwiki/labels/ToDo:%20has%20patch","name":"ToDo: has patch","color":"fbca04"},{"url":"https://api.github.com/repos/splitbrain/dokuwiki/labels/ToDo:%20needDocUpdate","name":"ToDo: needDocUpdate","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-01-30T17:52:55Z","updated_at":"2016-02-12T15:37:38Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/splitbrain/dokuwiki/pulls/1457","html_url":"https://github.com/splitbrain/dokuwiki/pull/1457","diff_url":"https://github.com/splitbrain/dokuwiki/pull/1457.diff","patch_url":"https://github.com/splitbrain/dokuwiki/pull/1457.patch"},"body":"This implements a new auth plugin which is supposed to replace the authmysql and authpgsql plugins. This also takes care of the problem that the mysql extension is gone since PHP7.\r\n\r\nThe goal of this plugin was to have a generic database auth plugin that is compatible with any database supported by PDO. To do so it does not contain any hard coded SQL code. Instead it relies on a bunch of SQL statements as configuration. this makes sure it is not dependent on any database dialect.\r\n\r\nTo keep the configuration reasonable simple and flexible at the same time, actions in this plugin are not optimized for performance - eg. often more queries are used than would be strictly necessary with specialized SQL. The reasoning is that, auth requests or user modifications are rare enough and get cached within DokuWiki's auth cache to make this not matter too much.\r\n\r\nThere's a few things to do before this should be merged:\r\n\r\n- [ ] cache the all groups retrieval (we do not redo this multiple time during a single request)\r\n- [ ] copy over the lang.php file from the authmysql plugin and remove the one unused line (usernotexists)\r\n- [ ] have real world tests (mailing list post follows)\r\n- [ ] have mysql and postgres tests (unsure how to do that)\r\n- [ ] decide on how to cope with MyISAM, the plugin relies on working transactions. we should probably deny modification actions on MyISAM\r\n- [ ] mark authmysql and authpgsql as deprecated\r\n- [ ] write documentation https://www.dokuwiki.org/plugin:authpdo"},"comment":{"url":"https://api.github.com/repos/splitbrain/dokuwiki/issues/comments/183377192","html_url":"https://github.com/splitbrain/dokuwiki/pull/1457#issuecomment-183377192","issue_url":"https://api.github.com/repos/splitbrain/dokuwiki/issues/1457","id":183377192,"user":{"login":"scrutinizer-notifier","id":6398257,"avatar_url":"https://avatars.githubusercontent.com/u/6398257?v=3","gravatar_id":"","url":"https://api.github.com/users/scrutinizer-notifier","html_url":"https://github.com/scrutinizer-notifier","followers_url":"https://api.github.com/users/scrutinizer-notifier/followers","following_url":"https://api.github.com/users/scrutinizer-notifier/following{/other_user}","gists_url":"https://api.github.com/users/scrutinizer-notifier/gists{/gist_id}","starred_url":"https://api.github.com/users/scrutinizer-notifier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scrutinizer-notifier/subscriptions","organizations_url":"https://api.github.com/users/scrutinizer-notifier/orgs","repos_url":"https://api.github.com/users/scrutinizer-notifier/repos","events_url":"https://api.github.com/users/scrutinizer-notifier/events{/privacy}","received_events_url":"https://api.github.com/users/scrutinizer-notifier/received_events","type":"User","site_admin":false},"created_at":"2016-02-12T15:37:38Z","updated_at":"2016-02-12T15:37:38Z","body":"A [new inspection](https://scrutinizer-ci.com/g/splitbrain/dokuwiki/inspections/04d74450-dfc5-4530-be8b-29dbaff10c74) was created."}}