From b97b8d9e6edbee25f746ef45b444923fc35539ec Mon Sep 17 00:00:00 2001 From: Pellaeon Lin Date: Wed, 24 Jun 2015 01:21:18 +0800 Subject: [PATCH] Update# actually add new user to configured group --- app/registration.php | 3 ++- controller/registercontroller.php | 21 ++++++++++++++++++++- controller/settingscontroller.php | 1 + 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/app/registration.php b/app/registration.php index 649aacf..5f8f8c6 100644 --- a/app/registration.php +++ b/app/registration.php @@ -38,7 +38,8 @@ class Registration extends App { $c->query('URLGenerator'), $c->query('PendingRegist'), $c->query('UserManager'), - $c->query('Config') + $c->query('Config'), + $c->query('GroupManager') ); }); diff --git a/controller/registercontroller.php b/controller/registercontroller.php index 2ce44d4..43450ef 100644 --- a/controller/registercontroller.php +++ b/controller/registercontroller.php @@ -30,15 +30,19 @@ class RegisterController extends Controller { private $pendingreg; private $usermanager; private $config; + private $groupmanager; + protected $appName; public function __construct($appName, IRequest $request, Wrapper\Mail $mail, IL10N $l10n, $urlgenerator, - $pendingreg, IUserManager $usermanager, IConfig $config){ + $pendingreg, IUserManager $usermanager, IConfig $config, IGroupManager $groupmanager){ $this->mail = $mail; $this->l10n = $l10n; $this->urlgenerator = $urlgenerator; $this->pendingreg = $pendingreg; $this->usermanager = $usermanager; $this->config = $config; + $this->groupmanager = $groupmanager; + $this->appName = $appName; parent::__construct($appName, $request); } @@ -172,6 +176,21 @@ class RegisterController extends Controller { 'errormsgs' => array($e->message, $username, $password)), 'guest'); } + // Add user to group + $registered_user_group = $this->config->getAppValue($this->appName, 'registered_user_group', 'none'); + if ( $registered_user_group !== 'none' ) { + try { + $group = $this->groupmanager->get($registered_user_group); + $group->addUser($user); + } catch (Exception $e) { + return new TemplateResponse('', 'error', array( + 'errors' => array(array( + 'error' => $e->message, + )) + ), 'error'); + } + } + // Delete pending reg request $res = $this->pendingreg->delete($email); if ( \OCP\DB::isError($res) ) { diff --git a/controller/settingscontroller.php b/controller/settingscontroller.php index ad15769..a989d02 100644 --- a/controller/settingscontroller.php +++ b/controller/settingscontroller.php @@ -80,6 +80,7 @@ class SettingsController extends Controller { foreach ( $groups as $group ) { $group_id_list[] = $group->getGid(); } + // TODO selected return new TemplateResponse('registration', 'admin', [ 'groups' => $group_id_list ], '');