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 <jakub.mosci...@cern.ch> 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 <jakub.mosci...@cern.ch> 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 <voll...@nf.mpg.de>
>>  wrote:
>> 
>>> Dear CJ Keist,
>>> 
>>> On 27.09.2013, at 22:28, CJ Keist <cj.ke...@colostate.edu> 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: cj.ke...@colostate.edu
>>>> 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
>>>> Owncloud@kde.org
>>>> 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: voll...@nf.mpg.de   http://www.nf.mpg.de
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> Owncloud mailing list
>>> Owncloud@kde.org
>>> https://mail.kde.org/mailman/listinfo/owncloud
>> 
>> _______________________________________________
>> Owncloud mailing list
>> Owncloud@kde.org
>> https://mail.kde.org/mailman/listinfo/owncloud
> 
> _______________________________________________
> Owncloud mailing list
> Owncloud@kde.org
> 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: voll...@nf.mpg.de   http://www.nf.mpg.de



Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
Owncloud mailing list
Owncloud@kde.org
https://mail.kde.org/mailman/listinfo/owncloud

Reply via email to