diff options
author | Florin Peter <github@florin-peter.de> | 2013-05-13 22:34:11 +0200 |
---|---|---|
committer | Florin Peter <github@florin-peter.de> | 2013-05-13 22:34:11 +0200 |
commit | b2d021b2a5a603505c6c0e607472ee4e91962afe (patch) | |
tree | 2b3dec43adb152cf31fd823e969b25f894363bee | |
parent | 61ed347d26872bc62465be4df595da3391ea84bb (diff) | |
download | nextcloud-server-b2d021b2a5a603505c6c0e607472ee4e91962afe.tar.gz nextcloud-server-b2d021b2a5a603505c6c0e607472ee4e91962afe.zip |
added post_createUser hook
-rw-r--r-- | apps/files_encryption/hooks/hooks.php | 30 | ||||
-rwxr-xr-x | apps/files_encryption/lib/helper.php | 20 |
2 files changed, 38 insertions, 12 deletions
diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 71a0fc9268b..ebaa9c51452 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -47,17 +47,11 @@ class Hooks { $view = new \OC_FilesystemView( '/' );
$util = new Util( $view, $params['uid'] );
-
- // Check files_encryption infrastructure is ready for action
- if ( ! $util->ready() ) {
-
- \OC_Log::write( 'Encryption library', 'User account "' . $params['uid'] . '" is not ready for encryption; configuration started', \OC_Log::DEBUG );
-
- if(!$util->setupServerSide( $params['password'] )) {
- return false;
- }
- }
+ // setup user, if user not ready force relogin
+ if(Helper::setupUser($util, $params['password']) === false) {
+ return false;
+ }
\OC_FileProxy::$enabled = false;
@@ -120,8 +114,20 @@ class Hooks { return true;
}
-
- /**
+
+ /**
+ * @brief setup encryption backend upon user created
+ * @note This method should never be called for users using client side encryption
+ */
+ public static function postCreateUser( $params ) {
+ $view = new \OC_FilesystemView( '/' );
+
+ $util = new Util( $view, $params['uid'] );
+
+ Helper::setupUser($util, $params['password']);
+ }
+
+ /**
* @brief Change a user's encryption passphrase
* @param array $params keys: uid, password
*/
diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php index 9b8d9ffc5b1..3a5b2f78ce8 100755 --- a/apps/files_encryption/lib/helper.php +++ b/apps/files_encryption/lib/helper.php @@ -48,6 +48,7 @@ class Helper { \OCP\Util::connectHook( 'OC_User', 'post_login', 'OCA\Encryption\Hooks', 'login' ); \OCP\Util::connectHook( 'OC_User', 'pre_setPassword', 'OCA\Encryption\Hooks', 'setPassphrase' ); + \OCP\Util::connectHook( 'OC_User', 'post_createUser', 'OCA\Encryption\Hooks', 'postCreateUser' ); } /** @@ -68,5 +69,24 @@ class Helper { \OCP\Util::connectHook('OC_Filesystem', 'post_rename', 'OCA\Encryption\Hooks', 'postRename'); } + /** + * @brief setup user for files_encryption + * + * @param Util $util + * @param string $password + * @return bool + */ + public static function setupUser($util, $password) { + // Check files_encryption infrastructure is ready for action + if ( ! $util->ready() ) { + \OC_Log::write( 'Encryption library', 'User account "' . $util->getUserId() . '" is not ready for encryption; configuration started', \OC_Log::DEBUG ); + + if(!$util->setupServerSide( $password )) { + return false; + } + } + + return true; + } }
\ No newline at end of file |