实现下载分享文件/文件夹时日志记录

This commit is contained in:
Chenx221 2024-04-06 13:12:53 +08:00
parent 8996158fb5
commit 03333cd180
Signed by: chenx221
GPG Key ID: D7A9EC07024C3021

View File

@ -2,6 +2,7 @@
namespace app\controllers; namespace app\controllers;
use app\models\DownloadLogs;
use app\models\Share; use app\models\Share;
use app\models\ShareSearch; use app\models\ShareSearch;
use RecursiveDirectoryIterator; use RecursiveDirectoryIterator;
@ -60,18 +61,20 @@ class ShareController extends Controller
] ]
); );
} }
public function init(): void public function init(): void
{ {
parent::init(); parent::init();
if (Yii::$app->user->can('admin')) { if (Yii::$app->user->can('admin')) {
$this->layout = 'admin_main'; $this->layout = 'admin_main';
}elseif (Yii::$app->user->isGuest) { } elseif (Yii::$app->user->isGuest) {
$this->layout = 'guest_main'; $this->layout = 'guest_main';
} else { } else {
$this->layout = 'main'; $this->layout = 'main';
} }
} }
/** /**
* Lists all Share models. * Lists all Share models.
* *
@ -267,7 +270,7 @@ class ShareController extends Controller
} }
$model = $this->findModel($share_id, true); $model = $this->findModel($share_id, true);
DownloadLogs::addLog(Yii::$app->user->id, $model->share_id, Yii::$app->request->userIP, Yii::$app->request->userAgent); // logging for access(DL)
$absolutePath = Yii::getAlias(Yii::$app->params['dataDirectory']) . '/' . $model->sharer_id . '/' . $model->file_relative_path; $absolutePath = Yii::getAlias(Yii::$app->params['dataDirectory']) . '/' . $model->sharer_id . '/' . $model->file_relative_path;
if (is_file($absolutePath)) { if (is_file($absolutePath)) {
return Yii::$app->response->sendFile($absolutePath); return Yii::$app->response->sendFile($absolutePath);
@ -290,4 +293,7 @@ class ShareController extends Controller
throw new NotFoundHttpException('异常,文件不存在'); throw new NotFoundHttpException('异常,文件不存在');
} }
} }
// TODO
// Preview file
} }