diff --git a/.gitlab-ci-files/deploy.yml b/.gitlab-ci-files/deploy.yml index b6b277b..8be5fcd 100644 --- a/.gitlab-ci-files/deploy.yml +++ b/.gitlab-ci-files/deploy.yml @@ -14,13 +14,13 @@ rocky9-deploy: - rocky9-package - rocky9-test -debian11-deploy: - extends: .deploy - script: - - ./deploy_packages.sh debian bullseye - needs: - - debian11-package - - debian11-test +#debian11-deploy: +# extends: .deploy +# script: +# - ./deploy_packages.sh debian bullseye +# needs: +# - debian11-package +# - debian11-test debian12-deploy: extends: .deploy diff --git a/.gitlab-ci-files/package.yml b/.gitlab-ci-files/package.yml index 6e5cc77..a697b33 100644 --- a/.gitlab-ci-files/package.yml +++ b/.gitlab-ci-files/package.yml @@ -16,9 +16,9 @@ rocky9-package: script: - make rpm-el9 -debian11-package: - extends: .debian_package - image: gitlab.linphone.org:4567/bc/public/docker/debian11-php:$DEBIAN_11_IMAGE_VERSION +#debian11-package: +# extends: .debian_package +# image: gitlab.linphone.org:4567/bc/public/docker/debian11-php:$DEBIAN_11_IMAGE_VERSION debian12-package: extends: .debian_package diff --git a/.gitlab-ci-files/test.yml b/.gitlab-ci-files/test.yml index eb8a3e4..09b7730 100644 --- a/.gitlab-ci-files/test.yml +++ b/.gitlab-ci-files/test.yml @@ -21,11 +21,11 @@ rocky9-test: - php artisan key:generate - vendor/bin/phpunit --log-junit $CI_PROJECT_DIR/flexiapi_phpunit.log -debian11-test: - extends: .debian-test - image: gitlab.linphone.org:4567/bc/public/docker/debian11-php:$DEBIAN_11_IMAGE_VERSION - needs: - - debian11-package +#debian11-test: +# extends: .debian-test +# image: gitlab.linphone.org:4567/bc/public/docker/debian11-php:$DEBIAN_11_IMAGE_VERSION +# needs: +# - debian11-package debian12-test: extends: .debian-test diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 84499dd..c1060d5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,8 +1,8 @@ variables: ROCKY_8_IMAGE_VERSION: 20241112_111033_update_package_and_dependencies ROCKY_9_IMAGE_VERSION: 20241112_115442_add_php_sodium - DEBIAN_11_IMAGE_VERSION: 20241112_113527_update_package_and_dependencies - DEBIAN_12_IMAGE_VERSION: 20241112_113948_update_package_and_dependencies +# DEBIAN_11_IMAGE_VERSION: 20241204_161845_update_download_linphone_org + DEBIAN_12_IMAGE_VERSION: 20241204_162237_update_download_linphone_org PHP_REDIS_REMI_VERSION: php-pecl-redis5-5.3.6-1 PHP_IGBINARY_REMI_VERSION: php-pecl-igbinary-3.2.14-1 PHP_MSGPACK_REMI_VERSION: php-pecl-msgpack-2.2.0-1 diff --git a/CHANGELOG.md b/CHANGELOG.md index 870bf4b..1dbb941 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ v1.6 - Fix FLEXIAPI-239 Ensure to return the correct error codes as stated in the RFC6750 section 3.1 - Fix FLEXIAPI-238 Replace Material Icons with Phosphor - Fix FLEXIAPI-240 Update the Docker images +- Fix GH-15 Add password import from CSV v1.5 --- diff --git a/flexiapi/app/Http/Controllers/Admin/AccountImportController.php b/flexiapi/app/Http/Controllers/Admin/AccountImportController.php index a7132cc..01ce23a 100644 --- a/flexiapi/app/Http/Controllers/Admin/AccountImportController.php +++ b/flexiapi/app/Http/Controllers/Admin/AccountImportController.php @@ -20,6 +20,7 @@ namespace App\Http\Controllers\Admin; use App\Account; +use App\Password; use App\Http\Controllers\Controller; use Illuminate\Support\Collection; use Illuminate\Http\Request; @@ -166,7 +167,7 @@ class AccountImportController extends Controller $accounts = []; $now = \Carbon\Carbon::now(); - $admins = $phones = []; + $admins = $phones = $passwords = []; foreach ($lines as $line) { if ($line->role == 'admin') { @@ -177,6 +178,10 @@ class AccountImportController extends Controller $phones[$line->username] = $line->phone; } + if (!empty($line->password)) { + $passwords[$line->username] = $line->password; + } + array_push($accounts, [ 'username' => $line->username, 'domain' => $request->get('domain'), @@ -199,6 +204,31 @@ class AccountImportController extends Controller $account->admin = true; } + // Set passwords + + $passwordsToInsert = []; + + $passwordAccounts = Account::whereIn('username', array_keys($passwords)) + ->where('domain', $request->get('domain')) + ->get(); + + $algorithm = config('app.account_default_password_algorithm'); + + foreach ($passwordAccounts as $passwordAccount) { + array_push($passwordsToInsert, [ + 'account_id' => $passwordAccount->id, + 'password' => bchash( + $passwordAccount->username, + config('app.account_realm') ?? $request->get('domain'), + $passwords[$passwordAccount->username], + $algorithm + ), + 'algorithm' => $algorithm + ]); + } + + Password::insert($passwordsToInsert); + // Set admins accounts foreach ($phones as $username => $phone) { $account = Account::where('username', $username) diff --git a/flexiapi/public/accounts_example.csv b/flexiapi/public/accounts_example.csv index f23198d..b982405 100644 --- a/flexiapi/public/accounts_example.csv +++ b/flexiapi/public/accounts_example.csv @@ -1,4 +1,4 @@ Username,Password,Role,Status,Phone,Email john,number9,user,active,+12341234,john@lennon.com paul,a_day_in_the_life,admin,active,,paul@apple.com -ringo,allUneedIsL3ve,user,unactove,+123456,ringo@star.co.uk \ No newline at end of file +ringo,allUneedIsL3ve,user,unactive,+123456,ringo@star.co.uk \ No newline at end of file