/** * @param DeleteGroup $command * @return \Flarum\Core\Group * @throws PermissionDeniedException */ public function handle(DeleteGroup $command) { $actor = $command->actor; $group = $this->groups->findOrFail($command->groupId, $actor); $this->assertCan($actor, 'delete', $group); $this->events->fire(new GroupWillBeDeleted($group, $actor, $command->data)); $group->delete(); $this->dispatchEventsFor($group, $actor); return $group; }
/** * @param EditGroup $command * @return Group * @throws PermissionDeniedException */ public function handle(EditGroup $command) { $actor = $command->actor; $data = $command->data; $group = $this->groups->findOrFail($command->groupId, $actor); $this->assertCan($actor, 'edit', $group); $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']; } $this->events->fire(new GroupWillBeSaved($group, $actor, $data)); $this->validator->assertValid($group->getDirty()); $group->save(); $this->dispatchEventsFor($group, $actor); return $group; }