Создать пользователя и инициализировать папки домашнего каталога в owncloud

Я использую owncloud 7 и хочу создать пользовательский вызов API, который создает пользователя и инициализирует домашний каталог пользователя (создает некоторую папку).

Документация для owncloud существует (это лучшее, что я нашел)

http://fossies.org/dox/owncloud-7.0.2/annotated.html

1

Решение

Для создания пользовательского вызова API я использовал \ OCP \ API :: register.

Чтобы проверить, существует ли пользователь

OC_User::userExists( $new_user_username ); // return boolean

Создать нового пользователя

OC_User::createUser( $new_user_username, $new_user_password );

Чтобы создать папку внутри этого домашнего каталога пользователей

Первый выход из системы любого зарегистрированного пользователя

OC_User::logout();

Затем войдите как новый пользователь

OC_User::login( $new_user_username, $new_user_password );

Если вы хотите быть уверены, что новый пользователь зарегистрирован, вы можете использовать

$logged_user_username = OC_User::getUser(); // If( $logged_user_username == $new_user_username ) you are ok!

Для инициализации домашнего каталога пользователя вы должны запустить эти два


\OC\Files\Filesystem::initMounts();
\OC\Files\Filesystem::initMountPoints( $new_user_username );

Для создания новой папки внутри домашнего каталога пользователей используйте

OC\Files\Filesystem::mkdir( 'New folder' );

сделав это, вы создадите новую папку с именем «Новая папка» в
/ data // files / Новая папка

Чтобы удалить папку, скажем, папку с фотографиями, созданную по умолчанию, используйте эту

OC\Files\Filesystem::rmdir( 'photos' );

Это удалит каталог
/ данных // файлы / фотографии

Чтобы получить чистый код, вы должны выйти из $ new_user_username

OC_User::logout();

и повторно зарегистрировать пользователя, который сделал вызов API.

Вы должны проверить, кому разрешено выполнять такой вызов API.

1

Другие решения

Об инициализации домашней страницы пользователя: если содержимое папки одинаково для всех новых пользователей, вы можете создать каталог шаблонов с содержимым и указать его в config.php


/**
* The directory where the skeleton files are located. These files will be
* copied to the data directory of new users. Leave empty to not copy any
* skeleton files.
*/
'skeletondirectory' => '',

1

По вопросам рекламы [email protected]