123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- <?php
- function tripal_get_user_quota($uid) {
- $quota = db_select('tripal_custom_quota', 'tgcq')->fields('tgcq', [
- 'custom_quota',
- 'custom_expiration'
- ])
- ->condition('uid', $uid)
- ->execute()
- ->fetchObject();
- if (! $quota) {
- $quota = new stdClass();
- $quota->custom_quota = variable_get('tripal_default_file_quota', pow(20, 6));
- $quota->custom_expiration = variable_get('tripal_default_file_expiration', '60');
- }
- return $quota;
- }
- function tripal_set_user_quota($uid, $quota, $expriation) {
- $values = [
- 'uid' => $uid,
- 'custom_quota' => $quota,
- 'custom_expiration' => $expriation
- ];
- return db_insert('tripal_custom_quota')->fields($values)->execute();
- }
- function tripal_remove_user_quota($uid) {
- db_delete('tripal_custom_quota')->condition('uid', $uid)->execute();
- }
- function tripal_get_user_usage($uid) {
-
- $sql = "
- SELECT SUM(filesize) FROM (
- SELECT DISTINCT FM.fid, FM.filename, FM.filesize
- FROM file_usage FU
- INNER JOIN file_managed FM ON FM.fid = FU.fid and FU.module = 'tripal'
- WHERE FM.uid = :uid) AS foo
- ";
- $total_usage = db_query($sql, [':uid' => $uid])->fetchField();
- return ($total_usage);
- }
- function tripal_expire_files(TripalJob $job = NULL) {
- $results = db_select('tripal_expiration_files', 'tgfe')
- ->fields('tgfe')
- ->execute();
- while ($result = $results->fetchObject()) {
- if (time() > $result->expiration_date) {
-
- $file = file_load($result->fid);
- if ($file) {
- if ($job) {
- $job->logMessage('File "' . $file->filename . '" has expired. Removing...');
- }
-
- file_delete($file, TRUE);
-
-
- $query = db_delete('tripal_expiration_files');
- $query->condition('fid', $result->fid);
- $query->execute();
- }
- }
- }
- }
- function tripal_reset_file_expiration($fid) {
-
- $file = file_load($fid);
- try {
- $quota = tripal_get_user_quota($file->uid);
- $custom_expiration = $quota->custom_expiration;
- $expiration_date = time() + $custom_expiration * 24 * 60 * 60;
-
- db_delete('tripal_expiration_files')
- ->condition('fid', $fid)
- ->execute();
- db_insert('tripal_expiration_files')
- ->fields([
- 'fid' => $file->fid,
- 'expiration_date' => $expiration_date,
- ])
- ->execute();
- }
- catch (Exception $e) {
- tripal_report_error('trp_quota', TRIPAL_ERROR, $e->getMessage());
- return FALSE;
- }
- return TRUE;
- }
|