diff options
author | Evan Prodromou <evan@controlyourself.ca> | 2009-06-09 21:51:24 -0700 |
---|---|---|
committer | Evan Prodromou <evan@controlyourself.ca> | 2009-06-09 21:51:24 -0700 |
commit | 4df1ea49ec75ec9dd64bc8f58c01e64ea18bedc7 (patch) | |
tree | 91535b33cd2b62b0726821e4d217d587da7cd61b /classes/File.php | |
parent | b3628b78448266fda2368f1317e70d1cca45ac17 (diff) | |
parent | ed627bb4bd6424325478412055d295b185f9f662 (diff) |
Merge branch '0.8.x' into userdesign
Conflicts:
actions/designsettings.php
Diffstat (limited to 'classes/File.php')
-rw-r--r-- | classes/File.php | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/classes/File.php b/classes/File.php index e5913115b..24ab11b8e 100644 --- a/classes/File.php +++ b/classes/File.php @@ -120,4 +120,30 @@ class File extends Memcached_DataObject File_to_post::processNew($file_id, $notice_id); return $x; } + + function isRespectsQuota($user) { + if ($_FILES['attach']['size'] > common_config('attachments', 'file_quota')) { + return sprintf(_('No file may be larger than %d bytes ' . + 'and the file you sent was %d bytes. Try to upload a smaller version.'), + common_config('attachments', 'file_quota'), $_FILES['attach']['size']); + } + + $query = "select sum(size) as total from file join file_to_post on file_to_post.file_id = file.id join notice on file_to_post.post_id = notice.id where profile_id = {$user->id} and file.url like '%/notice/%/file'"; + $this->query($query); + $this->fetch(); + $total = $this->total + $_FILES['attach']['size']; + if ($total > common_config('attachments', 'user_quota')) { + return sprintf(_('A file this large would exceed your user quota of %d bytes.'), common_config('attachments', 'user_quota')); + } + + $query .= ' month(modified) = month(now()) and year(modified) = year(now())'; + $this->query($query); + $this->fetch(); + $total = $this->total + $_FILES['attach']['size']; + if ($total > common_config('attachments', 'monthly_quota')) { + return sprintf(_('A file this large would exceed your monthly quota of %d bytes.'), common_config('attachments', 'monthly_quota')); + } + return true; + } } + |