component file sharing: quotas implementation:
quotas can now be specified using the `quotas_json` option of `component file_sharing`
section in settings. This must be a dict where:
- `users` key contains default quotas for all users
- `admins` key contains quotas for administrators (not implemented yet)
- `jids` contain bare JID to quota mapping, to have user-specific quota
The value can be either a int for quota in bytes, or a case insensitive string with an
optional multiplier symbol (e.g. "500 Mio"). `None` can be used for explicit unlimited
quota (which is the default is `users` is not set).
When a file size is too big for quota, upload is refused with an error message indicating
allowed quota, used space, and the size of the file that user wants to upload.
This commit is contained in:
parent
8ed9e310c5
commit
ac8f9f7817
1 changed files with 68 additions and 16 deletions
|
|
@ -266,7 +266,9 @@ class FilePlugin:
|
|||
)
|
||||
return True
|
||||
else:
|
||||
return self.getDestDir(client, peer_jid, transfer_data, file_data)
|
||||
return defer.ensureDeferred(
|
||||
self.getDestDir(client, peer_jid, transfer_data, file_data)
|
||||
)
|
||||
|
||||
exists_d = xml_tools.deferConfirm(
|
||||
self.host,
|
||||
|
|
@ -286,7 +288,9 @@ class FilePlugin:
|
|||
self.openFileWrite(client, file_path, transfer_data, file_data, stream_object)
|
||||
return True
|
||||
|
||||
def getDestDir(self, client, peer_jid, transfer_data, file_data, stream_object=False):
|
||||
async def getDestDir(
|
||||
self, client, peer_jid, transfer_data, file_data, stream_object=False
|
||||
):
|
||||
"""Request confirmation and destination dir to user
|
||||
|
||||
Overwrite confirmation is managed.
|
||||
|
|
@ -313,7 +317,7 @@ class FilePlugin:
|
|||
a stream.FileStreamObject will be used
|
||||
return (defer.Deferred): True if transfer is accepted
|
||||
"""
|
||||
cont, ret_value = self.host.trigger.returnPoint(
|
||||
cont, ret_value = await self.host.trigger.asyncReturnPoint(
|
||||
"FILE_getDestDir", client, peer_jid, transfer_data, file_data, stream_object
|
||||
)
|
||||
if not cont:
|
||||
|
|
|
|||
Loading…
Reference in a new issue