Commit workspace changes
This commit is contained in:
@@ -19,6 +19,7 @@ use App\Http\Requests\Collections\UpdateCollectionPresentationRequest;
|
||||
use App\Http\Requests\Collections\UpdateCollectionSeriesRequest;
|
||||
use App\Models\Artwork;
|
||||
use App\Models\Collection;
|
||||
use App\Models\Group;
|
||||
use App\Services\CollectionCollaborationService;
|
||||
use App\Services\CollectionCampaignService;
|
||||
use App\Services\CollectionCommentService;
|
||||
@@ -56,6 +57,12 @@ class CollectionManageController extends Controller
|
||||
$initialMode = $request->query('mode') === Collection::MODE_SMART
|
||||
? Collection::MODE_SMART
|
||||
: Collection::MODE_MANUAL;
|
||||
$group = null;
|
||||
|
||||
if ($request->filled('group')) {
|
||||
$group = Group::query()->with(['owner.profile', 'members'])->where('slug', (string) $request->query('group'))->first();
|
||||
abort_if($group && ! $group->canManageCollections($request->user()), 403);
|
||||
}
|
||||
|
||||
return Inertia::render('Collection/CollectionManage', [
|
||||
'mode' => 'create',
|
||||
@@ -67,7 +74,7 @@ class CollectionManageController extends Controller
|
||||
'smartRuleOptions' => $this->collections->getSmartRuleOptions($request->user()),
|
||||
'initialMode' => $initialMode,
|
||||
'featuredLimit' => (int) config('collections.featured_limit', 3),
|
||||
'owner' => $this->ownerPayload($request),
|
||||
'owner' => $this->ownerPayload($request, $group),
|
||||
'members' => [],
|
||||
'submissions' => [],
|
||||
'comments' => [],
|
||||
@@ -75,7 +82,7 @@ class CollectionManageController extends Controller
|
||||
'canonicalTarget' => null,
|
||||
'inviteExpiryDays' => (int) config('collections.invites.expires_after_days', 7),
|
||||
'endpoints' => [
|
||||
'store' => route('settings.collections.store'),
|
||||
'store' => route('settings.collections.store', $group ? ['group' => $group->slug] : []),
|
||||
'smartPreview' => route('settings.collections.smart.preview'),
|
||||
'profileCollections' => route('profile.tab', [
|
||||
'username' => strtolower((string) $request->user()->username),
|
||||
@@ -337,7 +344,11 @@ class CollectionManageController extends Controller
|
||||
{
|
||||
$artwork = $this->resolveArtworkFromRequest($request, 4);
|
||||
|
||||
abort_unless((int) $artwork->user_id === (int) $request->user()->id, 404);
|
||||
if ((int) ($artwork->group_id ?? 0) > 0) {
|
||||
abort_unless($artwork->group?->canManageCollections($request->user()) ?? false, 404);
|
||||
} else {
|
||||
abort_unless((int) $artwork->user_id === (int) $request->user()->id, 404);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'data' => $this->collections->getCollectionOptionsForArtwork($request->user(), $artwork),
|
||||
@@ -464,6 +475,21 @@ class CollectionManageController extends Controller
|
||||
{
|
||||
$user = $request->user();
|
||||
|
||||
if ($request->filled('group')) {
|
||||
$group = Group::query()->with('owner.profile')->where('slug', (string) $request->query('group'))->first();
|
||||
|
||||
if ($group && $group->canManageCollections($user)) {
|
||||
return [
|
||||
'id' => $group->id,
|
||||
'username' => null,
|
||||
'name' => $group->name,
|
||||
'avatar_url' => $group->avatarUrl(),
|
||||
'group_slug' => $group->slug,
|
||||
'profile_url' => $group->publicUrl(),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
return [
|
||||
'id' => $user->id,
|
||||
'username' => $user->username,
|
||||
|
||||
Reference in New Issue
Block a user