Hello, please find attached a script for setting the quota for existing users. It was inspired by Jakub's email and also aims at automated, scriptable administration of an owncloud instance.
<?php
# Set quota for existing user.
# Author: Stefan Vollmar, 2013, MPI for Neurological Research, Cologne
# using code from Jakub T. Moscicki, 2013, CERN/IT
#
# run on the owncloud application server:
# php -f set-quota.php USER QUOTA
# e.g. php -f set-quota.php aeinstein 3g
# e.g. php -f set-quota.php aeinstein "3 GB"
set_include_path(get_include_path() . PATH_SEPARATOR . '/var/www/owncloud');
require_once 'lib/base.php';
$login = $argv[1];
$quota = $argv[2];
if(OC_User::userExists($login)) {
if($quota!='none' and $quota!='default') {
$quota = OC_Helper::computerFileSize($quota);
$quota = OC_Helper::humanFileSize($quota);
}
print "setting quota of user \"".$login."\" to ".$quota."\n";
OC_Preferences::setValue($login, 'files', 'quota', $quota);
print "done.\n";
}
else {
print "*** ERROR: user \"".$login."\" does not exist.\n";
}
?>
Warm regards,
Stefan
On 28.09.2013, at 13:16, Jakub Moscicki <[email protected]> wrote:
> Hello again,
>
> Let me share a small script that I recently wrote by analysing the API. I
> would appreciate if the owncloud developers could comment if this is a right
> approach - it works for me but it has been developed purely experimentally
> and maybe there are some loopholes.
>
> It creates a user account and sets up the filesystem. Just run this script on
> the server possibly adjusting the location of your ownloud path.
>
> I use it for creating test accounts.
>
> I hope this will be useful for you, too.
>
> kuba
>
> --
>
> create_test_user.php:
>
> <?php
>
> # Create local user account.
> #
> # Author: Jakub T. Moscicki, 2013, CERN/IT
> #
> # To be placed and run on the owncloud application server:
> #
> # php -f create_test_user.php USER PASSWORD
> #
>
> set_include_path(get_include_path() . PATH_SEPARATOR .
> '/var/www/html/owncloud');
>
> require_once 'lib/base.php';
>
> $login = $argv[1];
> $password = $argv[2];
>
> if(OC_User::userExists($login)) {
> print "user already exists:".$login."\n";
> OC_User::setPassword($login,$password);
> print "password overwritten\n";
> }
> else
> {
> print "creating user... \n";
> OC_User::createUser($login,$password);
> print "user created and password set:".$login."\n";
> OC_Util::setupFS($login);
> print "setup FS done\n";
> }
>
> ?>
>
>
>
>
> On Sep 28, 2013, at 10:35 AM, Jakub Moscicki <[email protected]> wrote:
>
>> Hello,
>>
>> I found this tool - I have not tested all functionality (only file upload
>> with admin masquerading) but it also has the set_quota option:
>>
>> http://forum.owncloud.org/viewtopic.php?t=8684
>>
>> kuba
>>
>> --
>>
>> On Sep 28, 2013, at 12:18 AM, Stefan Vollmar <[email protected]>
>> wrote:
>>
>>> Dear CJ Keist,
>>>
>>> On 27.09.2013, at 22:28, CJ Keist <[email protected]> wrote:
>>>
>>>> The web interface doesn't look to have the ability to list thousands of
>>>> users on my owncloud system. So there is no way for me to set custom disk
>>>> quotas for users that are not displayed on the web interface. I have
>>>> tried the search function on the page but that doesn't work.
>>>> So I tried to see where disk quota settings are stored on the mysql
>>>> database but have not had any luck finding where that value is set per
>>>> user account. Could someone direct me on how I can set default disk quota
>>>> for users on my system?
>>>
>>> I am not sure that this is the "official" way of doing things but I would
>>> suggest a different approach: if you use the MySQL backend, it seems to be
>>> pretty straightforward to set all sorts of parameters with a few lines of
>>> SQL code. In fact, this is similar to our own automated method of creating
>>> a large number of users in OwnCloud and sending automatically generated
>>> E-mails with activation links (tokens).
>>>
>>> With OwnCloud 5, you can look up user data in the oc_user table (here:
>>> "aeinstein" is the "uid" of "Albert Einstein"), you can then set a quota of
>>> 10 GB like this:
>>>
>>> INSERT INTO `oc_preferences` VALUES
>>> ('aeinstein','files','quota','10 GB');
>>>
>>> If you have a list of uids it is very easy to repeat that line as often as
>>> required.
>>>
>>> Warm regards,
>>> Stefan
>>>
>>>>
>>>>
>>>> --
>>>> C. J. Keist Email: [email protected]
>>>> Systems Group Manager Solaris 10 OS (SAI)
>>>> Engineering Network Services Phone: 970-491-0630
>>>> College of Engineering, CSU Fax: 970-491-5569
>>>> Ft. Collins, CO 80523-1301
>>>>
>>>> All I want is a chance to prove 'Money can't buy happiness'
>>>>
>>>> _______________________________________________
>>>> Owncloud mailing list
>>>> [email protected]
>>>> https://mail.kde.org/mailman/listinfo/owncloud
>>>
>>> --
>>> Dr. Stefan Vollmar, Dipl.-Phys.
>>> Head of IT group
>>> Max-Planck-Institut für neurologische Forschung
>>> Gleueler Str. 50, 50931 Köln, Germany
>>> Tel.: +49-221-4726-213 FAX +49-221-4726-298
>>> Tel.: +49-221-478-5713 Mobile: 0160-93874279
>>> E-Mail: [email protected] http://www.nf.mpg.de
>>>
>>>
>>>
>>> _______________________________________________
>>> Owncloud mailing list
>>> [email protected]
>>> https://mail.kde.org/mailman/listinfo/owncloud
>>
>> _______________________________________________
>> Owncloud mailing list
>> [email protected]
>> https://mail.kde.org/mailman/listinfo/owncloud
>
> _______________________________________________
> Owncloud mailing list
> [email protected]
> https://mail.kde.org/mailman/listinfo/owncloud
--
Dr. Stefan Vollmar, Dipl.-Phys.
Head of IT group
Max-Planck-Institut für neurologische Forschung
Gleueler Str. 50, 50931 Köln, Germany
Tel.: +49-221-4726-213 FAX +49-221-4726-298
Tel.: +49-221-478-5713 Mobile: 0160-93874279
E-Mail: [email protected] http://www.nf.mpg.de
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Owncloud mailing list [email protected] https://mail.kde.org/mailman/listinfo/owncloud
