Add per-store managers for Woo Business accounts.
Deploy Ladill Woo Manager / deploy (push) Successful in 39s
Deploy Ladill Woo Manager / deploy (push) Successful in 39s
Agencies can invite store-scoped managers via Identity, with access limited to one WooCommerce store while owners retain full multi-store control. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -3,12 +3,40 @@
|
||||
namespace App\Http\Controllers\Woo;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Controllers\Woo\Concerns\ResolvesWooContext;
|
||||
use App\Models\WooStore;
|
||||
use App\Models\WooStoreMember;
|
||||
use App\Services\Woo\SubscriptionService;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class SettingsController extends Controller
|
||||
{
|
||||
use ResolvesWooContext;
|
||||
|
||||
public function __construct(private SubscriptionService $subscriptions) {}
|
||||
|
||||
public function edit(): View
|
||||
{
|
||||
return view('woo.settings');
|
||||
$account = ladill_account() ?? auth()->user();
|
||||
$ownerRef = (string) $account?->public_id;
|
||||
$storeScope = request()->attributes->get('woo.storeIds');
|
||||
|
||||
$stores = $account
|
||||
? WooStore::query()
|
||||
->where('user_id', $account->id)
|
||||
->where('status', WooStore::STATUS_ACTIVE)
|
||||
->when($storeScope !== null, fn ($q) => $q->whereIn('id', $storeScope))
|
||||
->orderBy('site_name')
|
||||
->get()
|
||||
: collect();
|
||||
|
||||
return view('woo.settings', [
|
||||
'teamStores' => $stores,
|
||||
'members' => $ownerRef !== ''
|
||||
? WooStoreMember::owned($ownerRef)->with('store')->orderBy('created_at')->get()
|
||||
: collect(),
|
||||
'roles' => config('woo.roles', []),
|
||||
'hasStoreTeamFeatures' => $account ? $this->subscriptions->canManageStoreTeam($account) : false,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user