1*cad27e80SAndreas Gohr<?php 2*cad27e80SAndreas Gohr 3*cad27e80SAndreas Gohrnamespace dokuwiki\plugin\usermanager\test; 4*cad27e80SAndreas Gohr 5*cad27e80SAndreas Gohr/** 6*cad27e80SAndreas Gohr * Simple Auth Plugin for testing 7*cad27e80SAndreas Gohr * 8*cad27e80SAndreas Gohr * All users are stored in a simple array 9*cad27e80SAndreas Gohr * @todo This might be useful for other tests and could replace the remaining mock auth plugins 10*cad27e80SAndreas Gohr */ 11*cad27e80SAndreas Gohrclass AuthPlugin extends \dokuwiki\Extension\AuthPlugin { 12*cad27e80SAndreas Gohr 13*cad27e80SAndreas Gohr public $loggedOff = false; 14*cad27e80SAndreas Gohr 15*cad27e80SAndreas Gohr /** @var array user storage */ 16*cad27e80SAndreas Gohr public $users = []; 17*cad27e80SAndreas Gohr 18*cad27e80SAndreas Gohr /** @inheritdoc */ 19*cad27e80SAndreas Gohr public function __construct($cando = []) { 20*cad27e80SAndreas Gohr parent::__construct(); // for compatibility 21*cad27e80SAndreas Gohr 22*cad27e80SAndreas Gohr // our own default capabilities 23*cad27e80SAndreas Gohr $this->cando['addUser'] = true; 24*cad27e80SAndreas Gohr $this->cando['delUser'] = true; 25*cad27e80SAndreas Gohr 26*cad27e80SAndreas Gohr // merge in given capabilities for testing 27*cad27e80SAndreas Gohr $this->cando = array_merge($this->cando, $cando); 28*cad27e80SAndreas Gohr } 29*cad27e80SAndreas Gohr 30*cad27e80SAndreas Gohr /** @inheritdoc */ 31*cad27e80SAndreas Gohr public function createUser($user, $pwd, $name, $mail, $grps = null) { 32*cad27e80SAndreas Gohr if (isset($this->users[$user])) { 33*cad27e80SAndreas Gohr return false; 34*cad27e80SAndreas Gohr } 35*cad27e80SAndreas Gohr $pass = md5($pwd); 36*cad27e80SAndreas Gohr $grps = (array) $grps; 37*cad27e80SAndreas Gohr $this->users[$user] = compact('pass', 'name', 'mail', 'grps'); 38*cad27e80SAndreas Gohr return true; 39*cad27e80SAndreas Gohr } 40*cad27e80SAndreas Gohr 41*cad27e80SAndreas Gohr /** @inheritdoc */ 42*cad27e80SAndreas Gohr public function deleteUsers($users) 43*cad27e80SAndreas Gohr { 44*cad27e80SAndreas Gohr $deleted = 0; 45*cad27e80SAndreas Gohr foreach ($users as $user) { 46*cad27e80SAndreas Gohr if (isset($this->users[$user])) { 47*cad27e80SAndreas Gohr unset($this->users[$user]); 48*cad27e80SAndreas Gohr $deleted++; 49*cad27e80SAndreas Gohr } 50*cad27e80SAndreas Gohr 51*cad27e80SAndreas Gohr } 52*cad27e80SAndreas Gohr return $deleted; 53*cad27e80SAndreas Gohr } 54*cad27e80SAndreas Gohr} 55