Files
sam-api/public/tenant/tenant/user_edit.php
hskwon cc206fdbed style: Laravel Pint 코드 포맷팅 적용
- PSR-12 스타일 가이드 준수
- 302개 파일 스타일 이슈 자동 수정
- 코드 로직 변경 없음 (포맷팅만)
2025-11-06 17:45:49 +09:00

125 lines
5.8 KiB
PHP

<?php
$CURRENT_SECTION = 'tenant';
include '../inc/header.php';
// 실제 환경에서는 ?id=...로 받아서 DB에서 해당 유저 정보 조회
// 샘플 데이터
$allowed_options = ['사번', '계좌번호']; // 이 테넌트(회사)에서 허용된 옵션
$users = [
1 => [
'id' => 1,
'user_id' => 'kevin',
'name' => '권혁성',
'email' => 'kevin@sample.com',
'phone' => '010-1111-2222',
'options' => json_encode(['사번' => 'A001', '계좌번호' => '111-2222-3333']),
'profile_photo_path' => '',
],
2 => [
'id' => 2,
'user_id' => 'sally',
'name' => '김슬기',
'email' => 'sally@sample.com',
'phone' => '010-3333-4444',
'options' => json_encode(['사번' => 'A002', '계좌번호' => '222-3333-4444']),
'profile_photo_path' => '',
],
];
$user_id = isset($_GET['id']) ? intval($_GET['id']) : 0;
$user = isset($users[$user_id]) ? $users[$user_id] : null;
if (! $user) {
echo '<div class="alert alert-danger mt-4 text-center">해당 회원을 찾을 수 없습니다.</div>';
include '../inc/footer.php';
exit;
}
$user_options = json_decode($user['options'], true);
?>
<div class="container" style="max-width:800px; margin-top:40px;">
<div class="card shadow p-4">
<h4 class="mb-3 text-center">회원 정보 수정</h4>
<form id="userEditForm" method="post" action="/tenant/tenant/user_edit_process.php" enctype="multipart/form-data" autocomplete="off">
<input type="hidden" name="user_id" value="<?= htmlspecialchars($user['id']) ?>">
<div class="mb-3">
<label class="form-label">회원 아이디</label>
<input type="text" class="form-control" name="user_id_display" value="<?= htmlspecialchars($user['user_id']) ?>" readonly>
</div>
<div class="mb-3">
<label class="form-label">이름 <span class="text-danger">*</span></label>
<input type="text" class="form-control" name="name" maxlength="100" value="<?= htmlspecialchars($user['name']) ?>" required>
</div>
<div class="mb-3">
<label class="form-label">이메일 <span class="text-danger">*</span></label>
<input type="email" class="form-control" name="email" maxlength="100" value="<?= htmlspecialchars($user['email']) ?>" required>
</div>
<div class="mb-3">
<label class="form-label">전화번호</label>
<input type="text" class="form-control" name="phone" maxlength="30" value="<?= htmlspecialchars($user['phone']) ?>">
</div>
<div class="mb-3">
<label class="form-label">프로필 사진</label>
<?php if ($user['profile_photo_path']) { ?>
<div class="mb-2"><img src="<?= htmlspecialchars($user['profile_photo_path']) ?>" alt="프로필" style="height:40px;"></div>
<?php } ?>
<input type="file" class="form-control" name="profile_photo" accept="image/*">
</div>
<div class="mb-3">
<label class="form-label">비밀번호 변경</label>
<input type="password" class="form-control" name="password" maxlength="30" placeholder="변경 시 입력">
</div>
<div class="mb-3">
<label class="form-label">비밀번호 확인</label>
<input type="password" class="form-control" name="password2" maxlength="30" placeholder="변경 시 입력">
</div>
<?php foreach ($allowed_options as $opt) { ?>
<div class="mb-3">
<label class="form-label"><?= htmlspecialchars($opt) ?></label>
<input type="text" class="form-control" name="option_<?= urlencode($opt) ?>" value="<?= isset($user_options[$opt]) ? htmlspecialchars($user_options[$opt]) : '' ?>">
</div>
<?php } ?>
<div class="d-flex gap-2">
<button type="submit" class="btn btn-primary w-50">수정</button>
<a href="/tenant/tenant/user_list.php" class="btn btn-secondary w-50">취소</a>
</div>
</form>
</div>
</div>
<script>
$(function(){
$('#userEditForm').on('submit', function(e){
var name = $('[name="name"]').val().trim();
var email = $('[name="email"]').val().trim();
var pw1 = $('[name="password"]').val();
var pw2 = $('[name="password2"]').val();
if (name.length < 2) {
alert('이름은 2글자 이상 입력하세요.');
$('[name="name"]').focus();
e.preventDefault(); return false;
}
if (!email || !/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(email)) {
alert('이메일을 올바르게 입력하세요.');
$('[name="email"]').focus();
e.preventDefault(); return false;
}
if (pw1 || pw2) {
if (pw1.length < 4) {
alert('비밀번호는 4글자 이상이어야 합니다.');
$('[name="password"]').focus();
e.preventDefault(); return false;
}
if (pw1 !== pw2) {
alert('비밀번호가 일치하지 않습니다.');
$('[name="password2"]').focus();
e.preventDefault(); return false;
}
}
});
});
</script>
<?php include '../inc/footer.php'; ?>