shell bypass 403
<?php
namespace Modules\CourseSetting\Entities;
use App\LessonComplete;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Auth;
use Modules\Org\Entities\OrgMaterial;
use Modules\Quiz\Entities\OnlineQuiz;
use Illuminate\Database\Eloquent\Model;
use Rennokki\QueryCache\Traits\QueryCacheable;
use Modules\Assignment\Entities\InfixAssignment;
class Lesson extends Model
{
protected $fillable = [];
public function chapter()
{
return $this->belongsTo(Chapter::class)->withDefault();
}
public function course()
{
return $this->belongsTo(Course::class)->withDefault();
}
public function quiz()
{
return $this->hasMany(OnlineQuiz::class, 'id', 'quiz_id');
}
public function assignment()
{
return $this->hasMany(InfixAssignment::class, 'id', 'assignment_id');
}
public function assignmentInfo()
{
return $this->hasOne(InfixAssignment::class, 'id', 'assignment_id');
}
public function completed()
{
$id = 0;
if (Auth::check()) {
$id = Auth::user()->id;
}
return $this->hasOne(LessonComplete::class, 'lesson_id', 'id')->where('user_id', $id);
}
public function lessonQuiz()
{
return $this->belongsTo(OnlineQuiz::class, 'quiz_id')->withDefault();
}
protected static function boot()
{
parent::boot();
static::created(function ($lesson) {
$self_hosts = ['Self', 'Image', 'PDF', 'Word', 'Excel', 'Text', 'Zip', 'PowerPoint'];
if (in_array($lesson->host, $self_hosts)) {
$file = $lesson->video_url;
$filesize = filesize($file); // bytes
// $filesize = round($filesize / 1024 / 1024, 1); //MB
$filesize = round($filesize / 1024, 2); //KB
$lesson->old_file_size = $filesize;
$lesson->file_size = $filesize;
$lesson->save();
}
if (isModuleActive('LmsSaas')) {
if (in_array($lesson->host, $self_hosts)) {
saasPlanManagement('upload_limit', 'create', $filesize);
}
}
});
self::deleting(function ($lesson) {
saasPlanManagement('upload_limit', 'delete', $lesson->filesize);
});
}
public function files()
{
return $this->hasMany(LessonFile::class, 'lesson_id')->orderByDesc('version');
}
public function orgMaterial()
{
return $this->belongsTo(OrgMaterial::class)->withDefault();
}
}