summaryrefslogtreecommitdiffstats
path: root/settings
diff options
context:
space:
mode:
authorBjörn Schießle <schiessle@owncloud.com>2016-04-25 14:56:11 +0200
committerRoeland Jago Douma <roeland@famdouma.nl>2016-11-21 11:29:41 +0100
commit40b99734d3413ecee7c7ae1d71868c801b7c4188 (patch)
tree1b3ecdacf6152c3eff99bb7b535fb25e6e040119 /settings
parentd1233b47b0d96df364a1b5c043cabedc74d5eb01 (diff)
downloadnextcloud-server-40b99734d3413ecee7c7ae1d71868c801b7c4188.tar.gz
nextcloud-server-40b99734d3413ecee7c7ae1d71868c801b7c4188.zip
introduce accounts table and keep it up-to-date with the data added to the personal settings
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Diffstat (limited to 'settings')
-rw-r--r--settings/Application.php135
-rw-r--r--settings/Controller/UsersController.php26
2 files changed, 158 insertions, 3 deletions
diff --git a/settings/Application.php b/settings/Application.php
index d907cd666fb..d0eab02cdd3 100644
--- a/settings/Application.php
+++ b/settings/Application.php
@@ -35,8 +35,21 @@ use OC\App\AppStore\Fetcher\CategoryFetcher;
use OC\AppFramework\Utility\TimeFactory;
use OC\Authentication\Token\IProvider;
use OC\Server;
+use OC\Files\View;
+use OC\Server;
+use OC\Settings\Controller\AppSettingsController;
+use OC\Settings\Controller\AuthSettingsController;
+use OC\Settings\Controller\CertificateController;
+use OC\Settings\Controller\CheckSetupController;
+use OC\Settings\Controller\EncryptionController;
+use OC\Settings\Controller\GroupsController;
+use OC\Settings\Controller\LogSettingsController;
+use OC\Settings\Controller\MailSettingsController;
+use OC\Settings\Controller\SecuritySettingsController;
+use OC\Settings\Controller\UsersController;
use OC\Settings\Middleware\SubadminMiddleware;
use OCP\AppFramework\App;
+use OCP\AppFramework\IAppContainer;
use OCP\IContainer;
use OCP\Settings\IManager;
use OCP\Util;
@@ -57,7 +70,127 @@ class Application extends App {
// Register Middleware
$container->registerAlias('SubadminMiddleware', SubadminMiddleware::class);
- $container->registerMiddleWare('SubadminMiddleware');
+ /**
+ * Controllers
+ */
+ $container->registerService('MailSettingsController', function(IContainer $c) {
+ return new MailSettingsController(
+ $c->query('AppName'),
+ $c->query('Request'),
+ $c->query('L10N'),
+ $c->query('Config'),
+ $c->query('UserSession'),
+ $c->query('Defaults'),
+ $c->query('Mailer'),
+ $c->query('DefaultMailAddress')
+ );
+ });
+ $container->registerService('EncryptionController', function(IContainer $c) {
+ return new EncryptionController(
+ $c->query('AppName'),
+ $c->query('Request'),
+ $c->query('L10N'),
+ $c->query('Config'),
+ $c->query('DatabaseConnection'),
+ $c->query('UserManager'),
+ new View(),
+ $c->query('Logger')
+ );
+ });
+ $container->registerService('AppSettingsController', function(IContainer $c) {
+ return new AppSettingsController(
+ $c->query('AppName'),
+ $c->query('Request'),
+ $c->query('L10N'),
+ $c->query('Config'),
+ $c->query('ICacheFactory'),
+ $c->query('INavigationManager'),
+ $c->query('IAppManager'),
+ $c->query('OcsClient')
+ );
+ });
+ $container->registerService('AuthSettingsController', function(IContainer $c) {
+ return new AuthSettingsController(
+ $c->query('AppName'),
+ $c->query('Request'),
+ $c->query('ServerContainer')->query('OC\Authentication\Token\IProvider'),
+ $c->query('UserManager'),
+ $c->query('ServerContainer')->getSession(),
+ $c->query('ServerContainer')->getSecureRandom(),
+ $c->query('UserId')
+ );
+ });
+ $container->registerService('SecuritySettingsController', function(IContainer $c) {
+ return new SecuritySettingsController(
+ $c->query('AppName'),
+ $c->query('Request'),
+ $c->query('Config')
+ );
+ });
+ $container->registerService('AccountManager', function(IAppContainer $c) {
+ return new AccountManager($c->getServer()->getDatabaseConnection());
+ });
+ $container->registerService('CertificateController', function(IContainer $c) {
+ return new CertificateController(
+ $c->query('AppName'),
+ $c->query('Request'),
+ $c->query('CertificateManager'),
+ $c->query('SystemCertificateManager'),
+ $c->query('L10N'),
+ $c->query('IAppManager')
+ );
+ });
+ $container->registerService('GroupsController', function(IContainer $c) {
+ return new GroupsController(
+ $c->query('AppName'),
+ $c->query('Request'),
+ $c->query('GroupManager'),
+ $c->query('UserSession'),
+ $c->query('IsAdmin'),
+ $c->query('L10N')
+ );
+ });
+ $container->registerService('UsersController', function(IContainer $c) {
+ return new UsersController(
+ $c->query('AppName'),
+ $c->query('Request'),
+ $c->query('UserManager'),
+ $c->query('GroupManager'),
+ $c->query('UserSession'),
+ $c->query('Config'),
+ $c->query('IsAdmin'),
+ $c->query('L10N'),
+ $c->query('Logger'),
+ $c->query('Defaults'),
+ $c->query('Mailer'),
+ $c->query('DefaultMailAddress'),
+ $c->query('URLGenerator'),
+ $c->query('OCP\\App\\IAppManager'),
+ $c->query('OCP\\IAvatarManager'),
+ $c->query('AccountManager')
+ );
+ });
+ $container->registerService('LogSettingsController', function(IContainer $c) {
+ return new LogSettingsController(
+ $c->query('AppName'),
+ $c->query('Request'),
+ $c->query('Config'),
+ $c->query('L10N')
+ );
+ });
+ $container->registerService('CheckSetupController', function(IContainer $c) {
+ return new CheckSetupController(
+ $c->query('AppName'),
+ $c->query('Request'),
+ $c->query('Config'),
+ $c->query('ClientService'),
+ $c->query('URLGenerator'),
+ $c->query('Util'),
+ $c->query('L10N'),
+ $c->query('Checker')
+ );
+ });
+
/**
* Core class wrappers
diff --git a/settings/Controller/UsersController.php b/settings/Controller/UsersController.php
index 7529cedd196..35344234330 100644
--- a/settings/Controller/UsersController.php
+++ b/settings/Controller/UsersController.php
@@ -30,6 +30,7 @@
namespace OC\Settings\Controller;
+use OC\Accounts\AccountManager;
use OC\AppFramework\Http;
use OC\User\User;
use OCP\App\IAppManager;
@@ -80,6 +81,8 @@ class UsersController extends Controller {
private $isRestoreEnabled = false;
/** @var IAvatarManager */
private $avatarManager;
+ /** @var AccountManager */
+ private $accountManager;
/**
* @param string $appName
@@ -97,6 +100,7 @@ class UsersController extends Controller {
* @param IURLGenerator $urlGenerator
* @param IAppManager $appManager
* @param IAvatarManager $avatarManager
+ * @param AccountManager $accountManager
*/
public function __construct($appName,
IRequest $request,
@@ -112,7 +116,9 @@ class UsersController extends Controller {
$fromMailAddress,
IURLGenerator $urlGenerator,
IAppManager $appManager,
- IAvatarManager $avatarManager) {
+ IAvatarManager $avatarManager,
+ AccountManager $accountManager
+) {
parent::__construct($appName, $request);
$this->userManager = $userManager;
$this->groupManager = $groupManager;
@@ -126,6 +132,7 @@ class UsersController extends Controller {
$this->fromMailAddress = $fromMailAddress;
$this->urlGenerator = $urlGenerator;
$this->avatarManager = $avatarManager;
+ $this->accountManager = $accountManager;
// check for encryption state - TODO see formatUserForIndex
$this->isEncryptionAppEnabled = $appManager->isEnabledForUser('encryption');
@@ -519,7 +526,22 @@ class UsersController extends Controller {
$email, $emailScope,
$website, $websiteScope,
$address, $addressScope) {
- // TODO: implement
+
+ if($userId === null) {
+ $userId = $this->userSession->getUser()->getUID();
+ }
+
+ $data = [
+ 'avatar' => ['scope' => $avatarScope],
+ 'displayName' => ['value' => $displayname, 'scope' => $displaynameScope],
+ 'email' => ['value' => $email, 'scope' => $emailScope],
+ 'website' => ['value' => $website, 'scope' => $websiteScope],
+ 'address' => ['value' => $address, 'scope' => $addressScope],
+ 'phone' => ['value' => $phone, 'scope' => $phoneScope]
+ ];
+
+ $this->accountManager->updateUser($userId, $data);
+
return new DataResponse(
array(
'status' => 'success',