public function edit($id)
{
$user = $this->handler->users()->with('groups', 'emails', 'accounts')->find($id);
if ($user === null) {
$e = new InvalidArgumentHttpException();
$e->setMessage('존재하지 않는 회원입니다.');
throw $e;
}
$ratings = Rating::getUsableAll();
$ratingNames = ['member' => xe_trans('xe::memberRatingNormal'), 'manager' => xe_trans('xe::memberRatingManager'), 'super' => xe_trans('xe::memberRatingAdministrator')];
foreach ($ratings as $key => $rating) {
$ratings[$key] = ['value' => $rating, 'text' => $ratingNames[$rating]];
if ($rating === $user->rating) {
$ratings[$key]['selected'] = 'selected';
}
}
$groupList = $this->handler->groups()->all();
$groups = $this->getGroupInfo($groupList);
foreach ($user->groups as $group) {
$groups[$group->id]['checked'] = 'checked';
}
$status = [\XeUser::STATUS_ACTIVATED => ['value' => \XeUser::STATUS_ACTIVATED, 'text' => xe_trans('xe::permitted')], \XeUser::STATUS_DENIED => ['value' => \XeUser::STATUS_DENIED, 'text' => xe_trans('xe::rejected')]];
$status[$user->status]['selected'] = 'selected';
// profileImage config
$profileImgSize = config('xe.user.profileImage.size');
// dynamic field
$dynamicField = app('xe.dynamicField');
$fieldTypes = $dynamicField->gets('user');
$defaultAccount = null;
if (isset($user->accounts)) {
foreach ($user->accounts as $account) {
if ($account->provider === \XeUser::PROVIDER_DEFAULT) {
$defaultAccount = $account;
}
}
}
return XePresenter::make('user.settings.user.edit', compact('user', 'ratings', 'groups', 'status', 'defaultAccount', 'fieldTypes', 'profileImgSize'));
}