/** * @param DeleteGroup $command * @return Group * @throws \Flarum\Core\Exceptions\PermissionDeniedException */ public function handle(DeleteGroup $command) { $actor = $command->actor; $group = $this->groups->findOrFail($command->groupId, $actor); $group->assertCan($actor, 'delete'); event(new GroupWillBeDeleted($group, $actor, $command->data)); $group->delete(); $this->dispatchEventsFor($group); return $group; }
/** * @param EditGroup $command * @return Group * @throws \Flarum\Core\Exceptions\PermissionDeniedException */ public function handle(EditGroup $command) { $actor = $command->actor; $data = $command->data; $group = $this->groups->findOrFail($command->groupId, $actor); $group->assertCan($actor, 'edit'); $attributes = array_get($data, 'attributes', []); if (isset($attributes['nameSingular']) && isset($attributes['namePlural'])) { $group->rename($attributes['nameSingular'], $attributes['namePlural']); } if (isset($attributes['color'])) { $group->color = $attributes['color']; } if (isset($attributes['icon'])) { $group->icon = $attributes['icon']; } event(new GroupWillBeSaved($group, $actor, $data)); $group->save(); $this->dispatchEventsFor($group); return $group; }