Files
sam-manage/app/Services/ProfileService.php

60 lines
1.7 KiB
PHP

<?php
namespace App\Services;
use App\Models\User;
use Illuminate\Support\Facades\Hash;
class ProfileService
{
/**
* 프로필 정보 수정 (이름, 전화번호)
* 이름은 최고관리자만 수정 가능
*/
public function updateProfile(User $user, array $data): bool
{
// 최고관리자만 이름 수정 가능
if ($user->isSuperAdmin() && isset($data['name'])) {
$user->name = $data['name'];
}
$user->phone = $data['phone'] ?? null;
$user->updated_by = $user->id;
return $user->save();
}
/**
* 비밀번호 변경
*/
public function changePassword(User $user, string $currentPassword, string $newPassword): array
{
// 현재 비밀번호 확인
if (! Hash::check($currentPassword, $user->password)) {
return [
'success' => false,
'message' => '현재 비밀번호가 일치하지 않습니다.',
];
}
// 새 비밀번호가 현재 비밀번호와 동일한지 확인
if (Hash::check($newPassword, $user->password)) {
return [
'success' => false,
'message' => '새 비밀번호는 현재 비밀번호와 다르게 설정해주세요.',
];
}
// 비밀번호 업데이트 + 비밀번호 변경 필요 플래그 해제
$user->password = Hash::make($newPassword);
$user->must_change_password = false;
$user->updated_by = $user->id;
$user->save();
return [
'success' => true,
'message' => '비밀번호가 변경되었습니다.',
];
}
}