1

我正在使用owncloud 7,我想创建一个自定义api调用来创建一个用户并初始化用户的主目录(创建一些文件夹)。

owncloud 的文档存在(这是我发现的最好的东西)

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

4

2 回答 2

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/New Folder 下创建一个名为“New Folder”的新文件夹

要删除文件夹,假设默认创建的照片文件夹,使用这个

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

这将删除目录 /data//files/photos

要获得干净的代码,您必须注销 $new_user_username

OC_User::logout();

并重新登录进行 api 调用的用户。

您必须检查谁被允许执行这样的 api 调用。

于 2014-10-23T09:01:40.760 回答
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' => '',

于 2014-10-23T19:01:38.497 回答