diff --git a/app/Http/Controllers/Api/V1/ApiController.php b/app/Http/Controllers/Api/V1/ApiController.php index 6c283a6..b751eca 100644 --- a/app/Http/Controllers/Api/V1/ApiController.php +++ b/app/Http/Controllers/Api/V1/ApiController.php @@ -2,7 +2,7 @@ namespace App\Http\Controllers\Api\V1; -use App\Models\Member; +use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Str; @@ -73,7 +73,7 @@ public function login(Request $request) } - $user = Member::where('mb_id', $userId)->first(); + $user = User::where('user_id', $userId)->first(); if (!$user) { return response()->json(['error' => '사용자를 찾을 수 없습니다.'], 404); @@ -81,12 +81,12 @@ public function login(Request $request) $isValid = false; - if (Str::startsWith($user->mb_pass, '$2y$')) { + if (Str::startsWith($user->password, '$2y$')) { // bcrypt로 해싱된 경우 - $isValid = Hash::check($userPwd, $user->mb_pass); + $isValid = Hash::check($userPwd, $user->password); } else { // sha256으로 해싱된 경우 - $isValid = strtoupper(hash('sha256', $userPwd)) === strtoupper($user->mb_pass); + $isValid = strtoupper(hash('sha256', $userPwd)) === strtoupper($user->password); } if (!$isValid) { @@ -126,7 +126,7 @@ public function logout(Request $request) $token = $request->header('X-API-KEY'); // 또는 Authorization 헤더 // 회원 테이블에서 해당 토큰으로 유저 찾기 - $user = Member::where('remember_token', $token)->first(); + $user = User::where('remember_token', $token)->first(); if ($user) { $user->remember_token = null; diff --git a/app/Http/Middleware/ApiKeyMiddleware.php b/app/Http/Middleware/ApiKeyMiddleware.php index 78351b9..cfea678 100644 --- a/app/Http/Middleware/ApiKeyMiddleware.php +++ b/app/Http/Middleware/ApiKeyMiddleware.php @@ -5,7 +5,7 @@ use Closure; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; -use App\Models\Member; +use App\Models\User; use Illuminate\Support\Facades\Log; use Laravel\Sanctum\PersonalAccessToken; @@ -44,7 +44,7 @@ public function handle(Request $request, Closure $next) $user = []; if($token = $request->bearerToken()) { $accessToken = PersonalAccessToken::findToken($token); - if ($accessToken && $accessToken->tokenable instanceof Member) { + if ($accessToken && $accessToken->tokenable instanceof User) { $user = $accessToken->tokenable; if ($user) { diff --git a/app/Models/User.php b/app/Models/User.php index 42dfed1..33181fc 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -2,23 +2,31 @@ namespace App\Models; +use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Laravel\Fortify\TwoFactorAuthenticatable; use Laravel\Sanctum\HasApiTokens; +use App\Traits\ModelTrait; class User extends Authenticatable { - use HasApiTokens, Notifiable, TwoFactorAuthenticatable, SoftDeletes; + use HasApiTokens, Notifiable, TwoFactorAuthenticatable, SoftDeletes, ModelTrait; + + protected $hidden = [ + 'password', 'remember_token', + 'two_factor_secret', 'two_factor_recovery_codes', 'two_factor_confirmed_at' + ]; public function userTenants() { return $this->hasMany(UserTenant::class); } - public function tenants() + public function userTenant() // 단일 기본 테넌트 { - return $this->belongsToMany(Tenant::class, 'user_tenants'); + // 예시: 첫 번째(기본) 테넌트 반환 + return $this->hasOne(UserTenant::class)->where('is_active', 1); } public function userRoles() @@ -31,4 +39,9 @@ public function roles() return $this->belongsToMany(Role::class, 'user_roles') ->withPivot('tenant_id', 'assigned_at'); } + + public function userTenantById($tenantId) + { + return $this->hasOne(UserTenant::class)->where('tenant_id', $tenantId); + } } diff --git a/app/Models/UserTenant.php b/app/Models/UserTenant.php index 3361721..6c6b114 100644 --- a/app/Models/UserTenant.php +++ b/app/Models/UserTenant.php @@ -4,10 +4,12 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; +use App\Traits\ModelTrait; +use App\Traits\BelongsToTenant; class UserTenant extends Model { - use SoftDeletes; + use SoftDeletes, ModelTrait, BelongsToTenant; protected $fillable = [ 'user_id', 'tenant_id', 'is_active', 'joined_at', 'left_at' diff --git a/app/Services/MemberService.php b/app/Services/MemberService.php index 0fccc1d..645dfb8 100644 --- a/app/Services/MemberService.php +++ b/app/Services/MemberService.php @@ -3,8 +3,7 @@ namespace App\Services; use App\Helpers\ApiResponse; -use App\Models\Member; -use App\Models\MemberCompany; +use App\Models\User; use Illuminate\Support\Facades\DB; class MemberService @@ -27,10 +26,10 @@ public static function getMembers(string $userToken, bool $debug = false) */ public static function getMember(int $userNo, bool $debug = false) { - - $query = Member::where('mb_num', $userNo); - - return ApiResponse::response('first', $query, $debug); + $query = User::whereHas('userTenants', function($q) { + $q->active(); + })->where('id', $userNo); + return ApiResponse::response('first', $query); } @@ -40,8 +39,9 @@ public static function getMember(int $userNo, bool $debug = false) public static function getMyInfo($request, bool $debug = false) { - $member = $request->user(); - $company = MemberCompany::where('mc_num',$member->tn_num)->first(); + $apiUser = app('api_user'); + + $user = User::find($apiUser); $data=[ 'member' => $member, 'company' => $company diff --git a/app/Services/ProductService.php b/app/Services/ProductService.php index 8101641..03602c8 100644 --- a/app/Services/ProductService.php +++ b/app/Services/ProductService.php @@ -3,9 +3,7 @@ namespace App\Services; use App\Helpers\ApiResponse; -use App\Models\MemberCompany; use App\Models\Products\CommonCode; -use Illuminate\Support\Facades\DB; class ProductService { @@ -20,18 +18,5 @@ public static function getCategory(string $userToken, bool $debug = false) return ApiResponse::response('get', $query, true); } - public static function getMyInfo($request, bool $debug = false) - { - - $member = $request->user(); - $company = MemberCompany::where('mc_num',$member->tn_num)->first(); - $data=[ - 'member' => $member, - 'company' => $company - ]; - - return ApiResponse::response('result', $data, $debug); - } - }