fix(Core): fix bug is lock
This commit is contained in:
@@ -26,6 +26,13 @@ class ArtController extends Controller
|
|||||||
|
|
||||||
public function index(GetApiRequest $request)
|
public function index(GetApiRequest $request)
|
||||||
{
|
{
|
||||||
|
$book = Book::find($request->book_id);
|
||||||
|
$law = Law::find($book?->law_id);
|
||||||
|
|
||||||
|
if ($this->isLockedForCurrentUser($law)) {
|
||||||
|
return $this->failed([], ['title' => 'Subscription Required', 'message' => 'This content requires an active subscription.'], 403);
|
||||||
|
}
|
||||||
|
|
||||||
$arts = Art::with(['chapter', 'part', 'volum', 'law', 'book', 'section', 'gate'])->where('book_id', $request->book_id)->orderBy('number')->get();
|
$arts = Art::with(['chapter', 'part', 'volum', 'law', 'book', 'section', 'gate'])->where('book_id', $request->book_id)->orderBy('number')->get();
|
||||||
|
|
||||||
$arts = $arts->map(function ($art) {
|
$arts = $arts->map(function ($art) {
|
||||||
@@ -84,6 +91,10 @@ class ArtController extends Controller
|
|||||||
|
|
||||||
$law = Law::find($art?->law_id);
|
$law = Law::find($art?->law_id);
|
||||||
|
|
||||||
|
if ($this->isLockedForCurrentUser($law)) {
|
||||||
|
return $this->failed([], ['title' => 'Subscription Required', 'message' => 'This content requires an active subscription.'], 403);
|
||||||
|
}
|
||||||
|
|
||||||
$art->is_like = $this->isLiked($art->id);
|
$art->is_like = $this->isLiked($art->id);
|
||||||
$art->note = Note::select('id', 'note', 'color_code','created_at')->where('user_id', auth()->user()->id)->where('art_id', $id)->get();
|
$art->note = Note::select('id', 'note', 'color_code','created_at')->where('user_id', auth()->user()->id)->where('art_id', $id)->get();
|
||||||
$art->category = $law?->category?->name;
|
$art->category = $law?->category?->name;
|
||||||
@@ -152,16 +163,23 @@ class ArtController extends Controller
|
|||||||
->exists();
|
->exists();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function isLockedForCurrentUser(?Law $law): bool
|
||||||
|
{
|
||||||
|
return !auth()->user()->isSubscriber() && (bool) $law?->is_locked;
|
||||||
|
}
|
||||||
|
|
||||||
public function likes()
|
public function likes()
|
||||||
{
|
{
|
||||||
$likes = LikeArt::query()->where('user_id', auth()->user()->id)
|
$likes = LikeArt::query()->where('user_id', auth()->user()->id)
|
||||||
->with('art')
|
->with('art.law')
|
||||||
->get()
|
->get()
|
||||||
->map(function ($q) {
|
->map(function ($q) {
|
||||||
|
$isLocked = $this->isLockedForCurrentUser($q->art?->law);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'id' => $q->art->id,
|
'id' => $q->art->id,
|
||||||
'title' => $q->art->title,
|
'title' => $q->art->title,
|
||||||
'text' => $q->art->text
|
'text' => $isLocked ? null : $q->art->text
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -257,12 +275,13 @@ class ArtController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
$law = Law::find($item->law_id);
|
$law = Law::find($item->law_id);
|
||||||
|
$isLocked = $this->isLockedForCurrentUser($law);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'id' => $item->id,
|
'id' => $item->id,
|
||||||
'title' => $item->title,
|
'title' => $item->title,
|
||||||
'text' => $context,
|
'text' => $isLocked ? null : $context,
|
||||||
'is_locked' => auth()->user()->isSubscriber() !== false ? false : optional($law)->is_locked,
|
'is_locked' => $isLocked,
|
||||||
'type' => 'art',
|
'type' => 'art',
|
||||||
'route' => array_values($this->route($modelClass, $item)),
|
'route' => array_values($this->route($modelClass, $item)),
|
||||||
'category' => optional($law->category)->name,
|
'category' => optional($law->category)->name,
|
||||||
@@ -466,11 +485,13 @@ class ArtController extends Controller
|
|||||||
$context = $text;
|
$context = $text;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$isLocked = $this->isLockedForCurrentUser($law);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'id' => $q->id,
|
'id' => $q->id,
|
||||||
'title' => $q->title,
|
'title' => $q->title,
|
||||||
'text' => $context,
|
'text' => $isLocked ? null : $context,
|
||||||
'is_locked' => auth()->user()->isSubscriber() !== false ? false : $law->is_locked,
|
'is_locked' => $isLocked,
|
||||||
'type' => 'art',
|
'type' => 'art',
|
||||||
'route' => $route,
|
'route' => $route,
|
||||||
'category' => $law?->category?->name,
|
'category' => $law?->category?->name,
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ class BookController extends Controller
|
|||||||
$books = Book::where('volum_id', $validated['volum_id'])->paginate($perPage, ['*'], 'page', $page);
|
$books = Book::where('volum_id', $validated['volum_id'])->paginate($perPage, ['*'], 'page', $page);
|
||||||
|
|
||||||
$books->getCollection()->transform(function ($section) {
|
$books->getCollection()->transform(function ($section) {
|
||||||
$section['is_locked'] = auth()->user()->isSubscriber() !== true ? true : Law::where('is_locked',$section['law_id'])->first()?->is_locked ?? false;
|
$section['is_locked'] = auth()->user()->isSubscriber() !== false ? false : Law::where('id', $section['law_id'])->first()?->is_locked ?? false;
|
||||||
|
|
||||||
unset($section['law_id']);
|
unset($section['law_id']);
|
||||||
unset($section['volum_id']);
|
unset($section['volum_id']);
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ class ChapterController extends Controller
|
|||||||
|
|
||||||
$chapters->getCollection()->transform(function ($section) {
|
$chapters->getCollection()->transform(function ($section) {
|
||||||
|
|
||||||
$section['is_locked'] = auth()->user()->isSubscriber() !== false ? false : Law::where('is_locked', $section['law_id'])->first()?->is_locked;
|
$section['is_locked'] = auth()->user()->isSubscriber() !== false ? false : Law::where('id', $section['law_id'])->first()?->is_locked;
|
||||||
|
|
||||||
unset($section['law_id']);
|
unset($section['law_id']);
|
||||||
unset($section['section_id']);
|
unset($section['section_id']);
|
||||||
|
|||||||
@@ -83,13 +83,14 @@ class FolderController extends Controller
|
|||||||
} else {
|
} else {
|
||||||
$shortText = $text;
|
$shortText = $text;
|
||||||
}
|
}
|
||||||
|
$isLocked = !auth()->user()->isSubscriber() && (bool) $art->law?->is_locked;
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'id' => $art->id,
|
'id' => $art->id,
|
||||||
'title' => $art->title,
|
'title' => $art->title,
|
||||||
'text' => $shortText,
|
'text' => $isLocked ? null : $shortText,
|
||||||
'number' => $art->number,
|
'number' => $art->number,
|
||||||
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('is_locked', $art->law->id)->first()?->is_locked,
|
'is_locked' => $isLocked,
|
||||||
'chapter' => $art->chapter != null ? [
|
'chapter' => $art->chapter != null ? [
|
||||||
'id' => $art->chapter->id,
|
'id' => $art->chapter->id,
|
||||||
'title' => $art->chapter->title,
|
'title' => $art->chapter->title,
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ class GateController extends Controller
|
|||||||
|
|
||||||
$gates->getCollection()->transform(function ($gate) {
|
$gates->getCollection()->transform(function ($gate) {
|
||||||
unset($gate['book_id']);
|
unset($gate['book_id']);
|
||||||
$gate['is_locked'] = auth()->user()->isSubscriber() !== false ? false : Law::where('is_locked', $gate['law_id'])->first()?->is_locked;
|
$gate['is_locked'] = auth()->user()->isSubscriber() !== false ? false : Law::where('id', $gate['law_id'])->first()?->is_locked;
|
||||||
|
|
||||||
unset($gate['law_id']);
|
unset($gate['law_id']);
|
||||||
|
|
||||||
|
|||||||
@@ -25,11 +25,11 @@ class PartController extends Controller
|
|||||||
|
|
||||||
$parts->getCollection()->transform(function ($part) {
|
$parts->getCollection()->transform(function ($part) {
|
||||||
unset($part['book_id']);
|
unset($part['book_id']);
|
||||||
$gate['is_locked'] = auth()->user()->isSubscriber() !== false ? false : Law::where('is_locked', $part['law_id'])->first()?->is_locked;
|
$part['is_locked'] = auth()->user()->isSubscriber() !== false ? false : Law::where('id', $part['law_id'])->first()?->is_locked;
|
||||||
|
|
||||||
unset($gate['law_id']);
|
unset($part['law_id']);
|
||||||
|
|
||||||
return $gate;
|
return $part;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ class SectionController extends Controller
|
|||||||
|
|
||||||
$section->getCollection()->transform(function ($section) {
|
$section->getCollection()->transform(function ($section) {
|
||||||
unset($section['book_id']);
|
unset($section['book_id']);
|
||||||
$section['is_locked'] = auth()->user()->isSubscriber() !== false ? false : Law::where('is_locked',$section['law_id'])->first()?->is_locked;
|
$section['is_locked'] = auth()->user()->isSubscriber() !== false ? false : Law::where('id', $section['law_id'])->first()?->is_locked;
|
||||||
|
|
||||||
unset($section['law_id']);
|
unset($section['law_id']);
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ class VolumController extends Controller
|
|||||||
|
|
||||||
$volumes->getCollection()->transform(function ($volume) {
|
$volumes->getCollection()->transform(function ($volume) {
|
||||||
$volume['has_book'] = Book::where('volum_id', $volume->id)->exists();
|
$volume['has_book'] = Book::where('volum_id', $volume->id)->exists();
|
||||||
$volume['is_locked'] = auth()->user()->isSubscriber() !== false ? false : Law::where('is_locked', $volume['law_id'])->first()?->is_locked;
|
$volume['is_locked'] = auth()->user()->isSubscriber() !== false ? false : Law::where('id', $volume['law_id'])->first()?->is_locked;
|
||||||
|
|
||||||
unset($volume['law_id']);
|
unset($volume['law_id']);
|
||||||
|
|
||||||
@@ -79,7 +79,7 @@ class VolumController extends Controller
|
|||||||
'title' => $item->title,
|
'title' => $item->title,
|
||||||
'number' => $item->number,
|
'number' => $item->number,
|
||||||
'type' => $relation,
|
'type' => $relation,
|
||||||
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('is_locked', $item->law_id)->first()?->is_locked
|
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('id', $item->law_id)->first()?->is_locked
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
$paginationData = [
|
$paginationData = [
|
||||||
@@ -117,7 +117,7 @@ class VolumController extends Controller
|
|||||||
'title' => $item->title,
|
'title' => $item->title,
|
||||||
'number' => $item->number,
|
'number' => $item->number,
|
||||||
'type' => $relation,
|
'type' => $relation,
|
||||||
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('is_locked', $item->law_id)->first()?->is_locked
|
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('id', $item->law_id)->first()?->is_locked
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -151,7 +151,7 @@ class VolumController extends Controller
|
|||||||
'title' => $item->title,
|
'title' => $item->title,
|
||||||
'number' => $item->number,
|
'number' => $item->number,
|
||||||
'type' => $relation,
|
'type' => $relation,
|
||||||
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('is_locked', $item->law_id)->first()?->is_locked
|
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('id', $item->law_id)->first()?->is_locked
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -184,7 +184,7 @@ class VolumController extends Controller
|
|||||||
'title' => $item->title,
|
'title' => $item->title,
|
||||||
'number' => $item->number,
|
'number' => $item->number,
|
||||||
'type' => $relation,
|
'type' => $relation,
|
||||||
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('is_locked', $item->law_id)->first()?->is_locked
|
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('id', $item->law_id)->first()?->is_locked
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -218,7 +218,7 @@ class VolumController extends Controller
|
|||||||
'title' => $item->title,
|
'title' => $item->title,
|
||||||
'number' => $item->number,
|
'number' => $item->number,
|
||||||
'type' => $relation,
|
'type' => $relation,
|
||||||
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('is_locked', $item->law_id)->first()?->is_locked
|
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('id', $item->law_id)->first()?->is_locked
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -252,7 +252,7 @@ class VolumController extends Controller
|
|||||||
'title' => $item->title,
|
'title' => $item->title,
|
||||||
'number' => $item->number,
|
'number' => $item->number,
|
||||||
'type' => $relation,
|
'type' => $relation,
|
||||||
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('is_locked', $item->law_id)->first()?->is_locked
|
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('id', $item->law_id)->first()?->is_locked
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -286,7 +286,7 @@ class VolumController extends Controller
|
|||||||
'title' => $item->title,
|
'title' => $item->title,
|
||||||
'number' => $item->number,
|
'number' => $item->number,
|
||||||
'type' => $relation,
|
'type' => $relation,
|
||||||
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('is_locked', $item->law_id)->first()?->is_locked
|
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('id', $item->law_id)->first()?->is_locked
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -321,7 +321,7 @@ class VolumController extends Controller
|
|||||||
'title' => $item->title,
|
'title' => $item->title,
|
||||||
'number' => $item->number,
|
'number' => $item->number,
|
||||||
'type' => $relation,
|
'type' => $relation,
|
||||||
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('is_locked', $item->law_id)->first()?->is_locked
|
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('id', $item->law_id)->first()?->is_locked
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -355,7 +355,7 @@ class VolumController extends Controller
|
|||||||
'title' => $item->title,
|
'title' => $item->title,
|
||||||
'number' => $item->number,
|
'number' => $item->number,
|
||||||
'type' => $relation,
|
'type' => $relation,
|
||||||
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('is_locked', $item->law_id)->first()?->is_locked
|
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('id', $item->law_id)->first()?->is_locked
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -399,7 +399,7 @@ class VolumController extends Controller
|
|||||||
'title' => $item->title,
|
'title' => $item->title,
|
||||||
'number' => $item->number,
|
'number' => $item->number,
|
||||||
'type' => 'volume',
|
'type' => 'volume',
|
||||||
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('is_locked', $item->law_id)->first()?->is_locked
|
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('id', $law->id)->first()?->is_locked
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
return $this->success($data, 'Success');
|
return $this->success($data, 'Success');
|
||||||
@@ -423,7 +423,7 @@ class VolumController extends Controller
|
|||||||
'title' => $item->title,
|
'title' => $item->title,
|
||||||
'number' => $item->number,
|
'number' => $item->number,
|
||||||
'type' => 'art',
|
'type' => 'art',
|
||||||
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('is_locked', $item->law_id)->first()?->is_locked
|
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('id', $law->id)->first()?->is_locked
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
return $this->success($data, 'Success');
|
return $this->success($data, 'Success');
|
||||||
@@ -570,7 +570,7 @@ class VolumController extends Controller
|
|||||||
'title' => $item->title,
|
'title' => $item->title,
|
||||||
'number' => $item->number,
|
'number' => $item->number,
|
||||||
'type' => 'laws',
|
'type' => 'laws',
|
||||||
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('is_locked', $item->law_id)->first()?->is_locked,
|
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('id', $item->id)->first()?->is_locked,
|
||||||
'image' => $item?->image,
|
'image' => $item?->image,
|
||||||
'law' => $item?->title,
|
'law' => $item?->title,
|
||||||
'count_art' => $item->arts->count(),
|
'count_art' => $item->arts->count(),
|
||||||
@@ -724,7 +724,7 @@ class VolumController extends Controller
|
|||||||
'number' => $item->number,
|
'number' => $item->number,
|
||||||
'type' => $type,
|
'type' => $type,
|
||||||
'route' => $this->route($item, $item),
|
'route' => $this->route($item, $item),
|
||||||
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('is_locked', $item->law_id)->first()?->is_locked,
|
'is_locked' => auth()->user()->isSubscriber() !== false ? false : Law::where('id', $item->law_id)->first()?->is_locked,
|
||||||
'law' => $law?->title,
|
'law' => $law?->title,
|
||||||
'image' => $law?->image,
|
'image' => $law?->image,
|
||||||
'count_art' => $law?->arts?->count() ?? 0,
|
'count_art' => $law?->arts?->count() ?? 0,
|
||||||
|
|||||||
Reference in New Issue
Block a user