/** * Create a new user. * * @param \Orchestra\Contracts\Foundation\Listener\Account\ProfileCreator $listener * @param array $input * * @return mixed */ public function store(Listener $listener, array $input) { $password = Arr::get($input, 'password', Str::random(5)); $validation = $this->validator->on('register')->with($input); // Validate user registration, if any errors is found redirect it // back to registration page with the errors if ($validation->fails()) { return $listener->createProfileFailedValidation($validation->getMessageBag()); } $user = Foundation::make('orchestra.user'); try { $this->saving($user, $input, $password); } catch (Exception $e) { return $listener->createProfileFailed(['error' => $e->getMessage()]); } return $this->notifyCreatedUser($listener, $user, $password); }
/** * Destroy a user. * * @param \Orchestra\Contracts\Foundation\Listener\Account\UserRemover $listener * @param string|int $id * * @return mixed */ public function destroy(UserRemoverListener $listener, $id) { $user = Foundation::make('orchestra.user')->findOrFail($id); // Avoid self-deleting accident. if ((string) $user->id === (string) Auth::user()->id) { return $listener->selfDeletionFailed(); } try { $this->fireEvent('deleting', [$user]); DB::transaction(function () use($user) { $user->delete(); }); $this->fireEvent('deleted', [$user]); } catch (Exception $e) { return $listener->userDeletionFailed(['error' => $e->getMessage()]); } return $listener->userDeleted(); }
/** * Migrate Orchestra Platform components. * * @param \Orchestra\Contracts\Foundation\Listener\SystemUpdater $listener * * @return mixed */ public function migrate(SystemUpdateListener $listener) { Foundation::make('orchestra.publisher.asset')->foundation(); Foundation::make('orchestra.publisher.migrate')->foundation(); return $listener->systemHasUpdated(); }