UnknownSec Bypass
403
:
/
mnt
/
lmsestudio-instance-vol002
/
lms_fc9b9b93c3b2
/
app
/
Services
/
Admin
/ [
drwxr-xr-x
]
Menu
Upload
Mass depes
Mass delete
Terminal
Info server
About
name :
BadgeService.php
<?php namespace EstudioLMS\Services\Admin; use Config; use EstudioLMS\Repositories\Gamification\BadgeInterface; use Image; use File; class BadgeService { /** * @var BadgeInterface */ private $badgeRepository; /** * BadgeService constructor. * @param BadgeInterface $badgeRepository */ public function __construct( BadgeInterface $badgeRepository ) { $this->badgeRepository = $badgeRepository; } public function getAllTranslations() { $badges = $this->badgeRepository->all(); $languages = Config::get('translatable.locales'); foreach ($badges as $key => $badge) { $lang = []; foreach ($languages as $language) { if ($badge->hasTranslation($language)) { $lang[] = $language; } } $lang = rtrim(implode(',', $lang), ','); $badges[$key]['languages'] = $lang; } return $badges; } public function getBadge($id) { return $this->badgeRepository->find($id); } public function getTitleByLocale($id, $locale) { if ($this->badgeRepository->find($id)->hasTranslation($locale)) { return $this->badgeRepository->find($id)->translate($locale)->title; } return null; } public function create($data, $file) { $baseFileName = uniqid(str_random(10)); $baseExtension = $file->guessExtension(); $bgBadge = $baseFileName . '_bg.' . $baseExtension; $mdBadge = $baseFileName . '_md.' . $baseExtension; $thBadge = $baseFileName . '_th.' . $baseExtension; $data['badge'] = $baseFileName; $data['extension'] = $baseExtension; $path = public_path() . '/storage/gamification/badges/'; if (!isset($data['published'])) { $data['published'] = false; } $title = $data['title']; unset($data['title']); $data[$data['locale']] = ['title' => $title]; //Make files $bgBadgeFile = Image::make($file->getRealPath())->resize(256, 256); $mdBadgeFile = Image::make($file->getRealPath())->resize(128, 128); $thBadgeFile = Image::make($file->getRealPath())->resize(64, 64); $sumFileSize = $bgBadgeFile->filesize() + $mdBadgeFile->filesize() + $thBadgeFile->filesize(); $sumFileSize = $sumFileSize / 1024; $planStorage = \Session::get('planLimite.plan_storage'); $usedStorage = \Session::get('planLimite.storageSize'); $storageBalance = (($planStorage - $usedStorage) * 1024); if ($storageBalance <= $sumFileSize) { return ['success' => false, 'message' => trans('badge.createError_StorageFull')]; } $created = $this->badgeRepository->create($data); if ($created) { if(!File::exists($path)) { File::makeDirectory($path, 0775, true); } $bgBadgeFile->save($path . $bgBadge); $mdBadgeFile->save($path . $mdBadge); $thBadgeFile->save($path . $thBadge); return ['success' => true, 'message' => trans('badge.createSuccess'), 'id' => $created['id']]; } return ['success' => false, 'message' => trans('badge.createError')]; } public function update($data, $file = null) { $badgeData = $this->badgeRepository->find($data['id']); $processImage = false; if (!empty($file)) { $baseFileName = uniqid(str_random(10)); $baseExtension = $file->guessExtension(); $bgBadge = $baseFileName . '_bg.' . $baseExtension; $mdBadge = $baseFileName . '_md.' . $baseExtension; $thBadge = $baseFileName . '_th.' . $baseExtension; $data['badge'] = $baseFileName; $data['extension'] = $baseExtension; $path = public_path() . '/storage/gamification/badges/'; $processImage = true; } $title = $data['title']; unset($data['title']); $data[$data['locale']] = ['title' => $title]; //Make files if ($processImage) { $bgBadgeFile = Image::make($file->getRealPath())->resize(256, 256); $mdBadgeFile = Image::make($file->getRealPath())->resize(128, 128); $thBadgeFile = Image::make($file->getRealPath())->resize(64, 64); $sumOldFileSize = 0; if (!empty($badgeData['badge'])) { if (File::exists($path . $badgeData['badge'] . '_bg.' . $badgeData['extension'])) { $bgBadgeOldFile = Image::make($path . $badgeData['badge'] . '_bg.' . $badgeData['extension']); $mdBadgeOldFile = Image::make($path . $badgeData['badge'] . '_md.' . $badgeData['extension']); $thBadgeOldFile = Image::make($path . $badgeData['badge'] . '_th.' . $badgeData['extension']); $sumOldFileSize = $bgBadgeOldFile->filesize() + $mdBadgeOldFile->filesize() + $thBadgeOldFile->filesize(); $sumOldFileSize = $sumOldFileSize / 1024; } } $sumFileSize = $bgBadgeFile->filesize() + $mdBadgeFile->filesize() + $thBadgeFile->filesize(); $sumFileSize = $sumFileSize / 1024; $sumFileSize = $sumFileSize - $sumOldFileSize; $planStorage = \Session::get('planLimite.plan_storage'); $usedStorage = \Session::get('planLimite.storageSize'); $storageBalance = (int)(($planStorage - $usedStorage) * 1024); if ($storageBalance <= $sumFileSize) { return ['success' => false, 'message' => trans('badge.updateError_StorageFull')]; } } $updated = $this->badgeRepository->update($data, $data['id']); if ($updated) { if ($processImage) { if(!File::exists($path)) { File::makeDirectory($path, 0775, true); } $bgBadgeFile->save($path . $bgBadge); $mdBadgeFile->save($path . $mdBadge); $thBadgeFile->save($path . $thBadge); if (File::exists($path . $badgeData['badge'] . '_bg.' . $badgeData['extension'])) { File::delete($path . $badgeData['badge'] . '_bg.' . $badgeData['extension']); File::delete($path . $badgeData['badge'] . '_md.' . $badgeData['extension']); File::delete($path . $badgeData['badge'] . '_th.' . $badgeData['extension']); } } return ['success' => true, 'message' => trans('badge.updateSuccess'), 'id' => $updated['id']]; } return ['success' => false, 'message' => trans('badge.updateError')]; } public function updateStatus($id, $status) { if ($this->badgeRepository->update(['published' => $status], $id)) { return ['success' => true, 'message' => trans('badge.updateStatusSuccess')]; } return ['success' => false, 'message' => trans('badge.updateStatusError')]; } }
Copyright © 2026 - UnknownSec