. */ namespace OrangeHRM\Installer\Util\V1\Dto; class AllowedPermission { private bool $read; private bool $create; private bool $update; private bool $delete; /** * @param bool $read * @param bool $create * @param bool $update * @param bool $delete */ public function __construct(bool $read, bool $create = false, bool $update = false, bool $delete = false) { $this->read = $read; $this->create = $create; $this->update = $update; $this->delete = $delete; } /** * @param array $permission ['read' => true, 'create' => false, 'update' => true, 'delete' => false] * @return self */ public static function createFromArray(array $permission): self { return new self( $permission['read'] ?? false, $permission['create'] ?? false, $permission['update'] ?? false, $permission['delete'] ?? false ); } /** * @return bool */ public function canRead(): bool { return $this->read; } /** * @return bool */ public function canCreate(): bool { return $this->create; } /** * @return bool */ public function canUpdate(): bool { return $this->update; } /** * @return bool */ public function canDelete(): bool { return $this->delete; } }