add disable user method

This commit is contained in:
xiaomlove
2021-05-14 02:11:57 +08:00
parent 0742ed33f8
commit 6d3068eb8c
4 changed files with 40 additions and 0 deletions

View File

@@ -6,7 +6,9 @@ use App\Http\Resources\UserResource;
use App\Models\ExamUser;
use App\Models\Setting;
use App\Models\User;
use App\Models\UserBanLog;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\DB;
class UserRepository extends BaseRepository
{
@@ -96,4 +98,21 @@ class UserRepository extends BaseRepository
}
return $out;
}
public function disableUser(User $operator, $uid, $reason)
{
$targetUser = User::query()->findOrFail(['id', 'username']);
$banLog = [
'uid' => $uid,
'username' => $targetUser->username,
'reason' => $reason,
'operator' => $operator->id,
];
$modCommentText = sprintf("Disable by %s, reason: %s.", $operator->username, $reason);
DB::transaction(function () use ($targetUser, $banLog, $modCommentText) {
$targetUser->updateWithModComment(['enable' => User::ENABLED_NO], $modCommentText);
UserBanLog::query()->insert($banLog);
});
return true;
}
}