nextcloud / groupquota

Allow setting disk quota for an entire group
https://apps.nextcloud.com/apps/groupquota
GNU Affero General Public License v3.0
28 stars 7 forks source link

Set storage quotas for Groups #51

Open enoch85 opened 7 years ago

enoch85 commented 7 years ago

It would be nice if we could implement quiotas for Groups in the same way as it's possible to set quotas for users.

-----------

EXAMPLE User A belongs to Group A User B belongs to Group A User C belongs to Group B User D belongs to group B User E has no group but is limited to 20 GB

Group Quota Group B = 50 GB Group Quota Group A = 100 GB

User A + B shares 100 GB among themselves User C +D shares 50 GB among themselves User E is limited to 20 GB for him/herself

-----------

This is previously a requested feature in ownCloud since 2013: https://github.com/owncloud/core/issues/1347

rullzer commented 7 years ago

How would this look then if User F is a member of Group A and Group B.

enoch85 commented 7 years ago

@rullzer

Is the quota the max?

The quota is the maximum, yes

Does it add up?

Not sure what you mean by "add up", but if User F joins Group A and Group B then User F get totally 150 GB shared among the other users in those Groups.

And more importantly from which Group quota is the quota deducted if they upload a file?

Didn't think of that, but what about a master Group? I know that @jancborchardt isn't a fan of settings but it should be controllable somehow. Or maybe equally from each Group, so that if User F is a member of three Groups (100 GB in total among the three Groups) and uploads a file of 9 GB to his user, it would deduct 3 GB from each Group he is a member of. Still all files would be saved to the users data folder, so if he/she leaves the Group the quota would disappear and be re-set to the specific user instead. Idk, brainstorming here.

Anyway, a first step would be to develop the possibility to do quotas for Groups in general, and in the first stage it should only be possible to add a user to 1 Group that has a set quota.

What I'm getting at here is that if you have a shared cloud, you want to divide users into their company and set the quota for the company rather than the specific user.

cal940 commented 7 years ago

Does it add up?

I would say no. I have an Synology NAS at home and only the highest qroup quota counts (if no user quota is set).

Example: User A is in group A and group B.

The quota from group A (10 GB) counts.

Also it's possible to set a custom user quota. If you do so only this user quota counts.

And more importantly from which Group quota is the quota deducted if they upload a file?

Does it add up?

No, only the highest group quota or the user quota counts.

cal940 commented 7 years ago

Also nice would be an option to assign groups admin privileges to a group and not only to a user (see nextcloud/server#4360)

styx-tdo commented 7 years ago

i think the group model needs revaming. Suggestion: Groups give a specific limit and are limited to x users (e.g. group A 10G, 10 users -> max 100G usage in total) In create user or user view, add "maximum (group has xxx GB) in the dropdown for admins so, User X is an admin of group A and can add users with 10G limit. User X may be a member of group D, that has 100G limit, nevertheless

I think groups have: limit per user, user limit only superadmins can create groups and assign one (or more) admins admins can create users in a group with max the group limit

if user Y is admin of group a (10G,10 users) and b (50G, 5 users), he can set the quota of all A users to up to 10G, all B users up to 100. Also, he can add himself to group a or b.

Highest limit counds - if someone is member of a and b, the max is 50G

Group change: on group change, quota needs to be recalculated. If a user has exceeded the new limit, he should be notified.

Matthewcloud commented 7 years ago

Do you know when the group quota could be implemented?

ynott commented 7 years ago

:+1:

manwegit commented 7 years ago

Just to add my 2cents worth. I'm already using owncloud and nextcloud with quota restricted "groups". The user home is either with really low quota or read-only (with owncloud app). I have "diskusers" that don't belong to any particular user. These users have quotas depending on the type of usage and folders from them are shared for a group. Now when you add user to a group it automatically gets the shared folder and inside that folder is the origin "diskusers" quota.

User can belong to multiple groups and all of them have different limits. So the available space for real user is sum of what is left of the quota limit on all shares/groups the user belongs to.

GitHubUser4234 commented 7 years ago

In my case I would like to have group quotas that are shared in a way that all group members get a slice of the group quota. The group admin decides how big a slice a group member gets by setting the member's user quota. The goal is to avoid certain members to eat up all the group quota at the expense of others.

From the above discussion alone it can be seen that there are various requirements and ideas on how group quotas should be implemented. It would certainly be great to see some configuration options in that regard.

bpcurse commented 7 years ago

I have submitted a similar request regarding the app "groupfolders", with another example how the management of storage quotas for folders could be done. The principle is similar.

https://github.com/nextcloud/groupfolders/issues/17

MorrisJobke commented 6 years ago

Similar to the quota for the whole instance: nextcloud/server#2016

DrEVILish commented 6 years ago

I'd like to Request this feature again, I have a use case where I have 3 User Groups each with different levels of available storage/permissions. I currently have to set each users quota manually. I'd like to say each member of a Group gets X GB Quota

User levels: Standard - 1GB Pro - 5GB Ultimate - 100GB

cl4x commented 5 years ago

I have similar request, because if more users share few large folder, the managing of single user quota is difficulty, i prefer manage a group TOTAL SUM quota. A little asynchronous method with OCC_Web is in https://github.com/nextcloud/server/issues/13993

joe-average-user commented 5 years ago

My 2cts: A plain and simple solution should be possible: Group quota as a maximum for all included users. User A Group X User B Group X User C Group Y User D Group X,Y

Group quota X 100 GB Group quota Y 200 GB

Quota for A + B MAX 100 GB Quota for C MAX 200 GB Quota for D MAX 200 GB All users are summed at the highest Group quota, the lower Group Quota is simply ignored. If D uses 150 GB and leaves Group Y, he stays in Group X and fills the quota. Drawback: The Quotas in sum can be overridden in such a case, nevertheless every corner case is clearly managed.

joe-average-user commented 5 years ago

BTW the groupquota app (0.1.0) does not work. Shows correct values in the User Admin Interface, but fails during uploads.

sachaz commented 4 years ago

Ping on group quotas, is it integrated now ?

bpcurse commented 4 years ago

FTR: The above mentioned app can be found here and is v0.1.2 as of now: https://github.com/nextcloud/groupquota

michel-thomas commented 4 years ago

Integrated but when using it, it replace personnal quota in UI. So impossible to see what is personnal quota, and the whole group shows the same quota and usage.

I suggest to have a separate view for group quota instead of replacing personnal quota view.

chiragob commented 3 years ago

Add GroupQuota as App

Create two group Company1, Company2 and set quota to each group using OCS-APIRequest

curl -u admin:admin -H 'OCS-APIRequest: true' http://localhost/nextcloud/index.php/apps/groupquota/quota/Company1 -X POST -d 'quota=2MB' curl -u admin:admin -H 'OCS-APIRequest: true' http://localhost/nextcloud/index.php/apps/groupquota/quota/Company2 -X POST -d 'quota=3MB'

its works for me

GoudronViande24 commented 3 years ago

The GroupQuota app does not work for me, and there is no easy way to manage it since you have to update the settings through curl... And it also does not work for me, curl always gives me an error when I want to change the quota.

luminous706 commented 2 years ago

The GroupQuota app does not work for me either, can't set a quota of 0, and managed through API is painful.

purejosh commented 2 months ago

Unfortunately, GroupQuota is not a good solution. Managing something through API is ridiculous, when the entire system is UI based. I believe a group quota should be added natively.

joshtrichards commented 2 months ago

Unfortunately, GroupQuota is not a good solution. Managing something through API is ridiculous, when the entire system is UI based. I believe a group quota should be added natively.

Subscribe/upvote #9