mirror of
https://gitlab.linphone.org/BC/public/flexisip-account-manager.git
synced 2026-01-17 10:08:05 +00:00
43 lines
1.3 KiB
PHP
43 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use Carbon\Carbon;
|
|
|
|
use App\Account;
|
|
use App\Password;
|
|
use App\Helpers\Utils;
|
|
|
|
class AccountController extends Controller
|
|
{
|
|
public function store(Request $request)
|
|
{
|
|
$request->validate([
|
|
'username' => 'required|unique:external.accounts,username|min:6',
|
|
'algorithm' => 'required|in:SHA-256,MD5',
|
|
'password' => 'required|min:6',
|
|
]);
|
|
|
|
$algorithm = $request->has('password_sha256') ? 'SHA-256' : 'MD5';
|
|
|
|
$account = new Account;
|
|
$account->username = $request->get('username');
|
|
$account->email = $request->get('email');
|
|
$account->activated = true;
|
|
$account->domain = config('app.sip_domain');
|
|
$account->ip_address = $request->ip();
|
|
$account->creation_time = Carbon::now();
|
|
$account->user_agent = config('app.name');
|
|
$account->save();
|
|
|
|
$password = new Password;
|
|
$password->account_id = $account->id;
|
|
$password->password = Utils::bchash($account->username, $account->domain, $request->get('password'), $request->get('algorithm'));
|
|
$password->algorithm = $request->get('algorithm');
|
|
$password->save();
|
|
|
|
return response()->json($account);
|
|
}
|
|
}
|