diff --git a/public/site/blueprints/pages/project.yml b/public/site/blueprints/pages/project.yml index 10e1242..bc3480b 100644 --- a/public/site/blueprints/pages/project.yml +++ b/public/site/blueprints/pages/project.yml @@ -36,11 +36,6 @@ tabs: query: page.logo.toFile layout: cardlets required: true - managers: - label: Chefs de projet - type: users - help: Utilisateurs autorisés à intervenir sur ce projet et notifiés lorsque quelqu'un intervient dessus. - required: true - width: 2/3 sections: diff --git a/public/site/blueprints/users/client.yml b/public/site/blueprints/users/client.yml index 49210db..dbb0d2e 100644 --- a/public/site/blueprints/users/client.yml +++ b/public/site/blueprints/users/client.yml @@ -8,5 +8,9 @@ fields: type: pages max: 1 query: page('clients').children + projects: + label: Projets + type: pages + query: page('projects').children notifications: type: hidden diff --git a/public/site/blueprints/users/project-manager.yml b/public/site/blueprints/users/project-manager.yml index 16a2a13..53ba73e 100644 --- a/public/site/blueprints/users/project-manager.yml +++ b/public/site/blueprints/users/project-manager.yml @@ -1,7 +1,14 @@ title: fr: Chef·fe de projet en: Project Manager +permissions: + access: + users: false fields: + projects: + label: Projets + type: pages + query: page('projects').children notifications: type: hidden diff --git a/public/site/templates/projects.json.php b/public/site/templates/projects.json.php index c28bcfa..21eded7 100644 --- a/public/site/templates/projects.json.php +++ b/public/site/templates/projects.json.php @@ -1,19 +1,22 @@ children()->filter(function ($child) { - return kirby()->user()->role() === 'admin' || $child->managers()->toUsers()->has(kirby()->user()); -})->map(function ($child) { - return [ - 'title' => $child->title()->value(), - 'url' => $child->url(), - 'uri' => '/' . $child->uri(), - 'modified' => $child->modified('Y-MM-d'), - 'currentStep' => $child->currentStep()->value(), - 'status' => $child->status(), - 'logo' => $child->client()->toPage()->logo()->toFile()->url(), - 'steps' => $child->getSteps() +function getProjectData($project) { + return [ + 'title' => $project->title()->value(), + 'url' => $project->url(), + 'uri' => '/' . $project->uri(), + 'modified' => $project->modified('Y-MM-d'), + 'currentStep' => $project->currentStep()->value(), + 'status' => $project->status(), + 'logo' => $project->client()->toPage()->logo()->toFile()->url(), + 'steps' => $project->getSteps() ]; -})->values(); +} +try { + $children = $kirby->user()->role() == 'admin' ? $page->children()->map(fn($project) => getProjectData($project))->values() : $kirby->user()->projects()->toPages()->map(fn($project) => getProjectData($project))->values(); +} catch (\Throwable $th) { + $children = []; +} $specificData = [ "children" => $children,