mirror of
https://github.com/snipe/snipe-it.git
synced 2025-01-11 22:07:29 -08:00
Merge remote-tracking branch 'origin/develop'
Signed-off-by: snipe <snipe@snipe.net> # Conflicts: # public/css/dist/all.css # public/css/dist/bootstrap-table.css # public/js/dist/bootstrap-table.js # public/mix-manifest.json
This commit is contained in:
commit
42f0975414
2
.github/workflows/docker-alpine.yml
vendored
2
.github/workflows/docker-alpine.yml
vendored
|
@ -76,7 +76,7 @@ jobs:
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
file: ./Dockerfile.alpine
|
file: ./Dockerfile.alpine
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64,linux/arm64
|
||||||
# For pull requests, we run the Docker build (to ensure no PR changes break the build),
|
# For pull requests, we run the Docker build (to ensure no PR changes break the build),
|
||||||
# but we ONLY do an image push to DockerHub if it's NOT a PR
|
# but we ONLY do an image push to DockerHub if it's NOT a PR
|
||||||
push: ${{ github.event_name != 'pull_request' }}
|
push: ${{ github.event_name != 'pull_request' }}
|
||||||
|
|
2
.github/workflows/docker.yml
vendored
2
.github/workflows/docker.yml
vendored
|
@ -76,7 +76,7 @@ jobs:
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
file: ./Dockerfile
|
file: ./Dockerfile
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64,linux/arm64
|
||||||
# For pull requests, we run the Docker build (to ensure no PR changes break the build),
|
# For pull requests, we run the Docker build (to ensure no PR changes break the build),
|
||||||
# but we ONLY do an image push to DockerHub if it's NOT a PR
|
# but we ONLY do an image push to DockerHub if it's NOT a PR
|
||||||
push: ${{ github.event_name != 'pull_request' }}
|
push: ${{ github.event_name != 'pull_request' }}
|
||||||
|
|
|
@ -62,6 +62,7 @@ class LdapSync extends Command
|
||||||
$ldap_result_phone = Setting::getSettings()->ldap_phone_field;
|
$ldap_result_phone = Setting::getSettings()->ldap_phone_field;
|
||||||
$ldap_result_jobtitle = Setting::getSettings()->ldap_jobtitle;
|
$ldap_result_jobtitle = Setting::getSettings()->ldap_jobtitle;
|
||||||
$ldap_result_country = Setting::getSettings()->ldap_country;
|
$ldap_result_country = Setting::getSettings()->ldap_country;
|
||||||
|
$ldap_result_location = Setting::getSettings()->ldap_location;
|
||||||
$ldap_result_dept = Setting::getSettings()->ldap_dept;
|
$ldap_result_dept = Setting::getSettings()->ldap_dept;
|
||||||
$ldap_result_manager = Setting::getSettings()->ldap_manager;
|
$ldap_result_manager = Setting::getSettings()->ldap_manager;
|
||||||
$ldap_default_group = Setting::getSettings()->ldap_default_group;
|
$ldap_default_group = Setting::getSettings()->ldap_default_group;
|
||||||
|
@ -209,8 +210,11 @@ class LdapSync extends Command
|
||||||
$item['country'] = $results[$i][$ldap_result_country][0] ?? '';
|
$item['country'] = $results[$i][$ldap_result_country][0] ?? '';
|
||||||
$item['department'] = $results[$i][$ldap_result_dept][0] ?? '';
|
$item['department'] = $results[$i][$ldap_result_dept][0] ?? '';
|
||||||
$item['manager'] = $results[$i][$ldap_result_manager][0] ?? '';
|
$item['manager'] = $results[$i][$ldap_result_manager][0] ?? '';
|
||||||
|
$item['location'] = $results[$i][$ldap_result_location][0] ?? '';
|
||||||
|
|
||||||
|
$location = Location::firstOrCreate([
|
||||||
|
'name' => $item['location'],
|
||||||
|
]);
|
||||||
$department = Department::firstOrCreate([
|
$department = Department::firstOrCreate([
|
||||||
'name' => $item['department'],
|
'name' => $item['department'],
|
||||||
]);
|
]);
|
||||||
|
@ -236,6 +240,7 @@ class LdapSync extends Command
|
||||||
$user->jobtitle = $item['jobtitle'];
|
$user->jobtitle = $item['jobtitle'];
|
||||||
$user->country = $item['country'];
|
$user->country = $item['country'];
|
||||||
$user->department_id = $department->id;
|
$user->department_id = $department->id;
|
||||||
|
$user->location_id = $location->id;
|
||||||
|
|
||||||
if($item['manager'] != null) {
|
if($item['manager'] != null) {
|
||||||
// Check Cache first
|
// Check Cache first
|
||||||
|
|
|
@ -961,6 +961,7 @@ class SettingsController extends Controller
|
||||||
$setting->ldap_phone_field = $request->input('ldap_phone');
|
$setting->ldap_phone_field = $request->input('ldap_phone');
|
||||||
$setting->ldap_jobtitle = $request->input('ldap_jobtitle');
|
$setting->ldap_jobtitle = $request->input('ldap_jobtitle');
|
||||||
$setting->ldap_country = $request->input('ldap_country');
|
$setting->ldap_country = $request->input('ldap_country');
|
||||||
|
$setting->ldap_location = $request->input('ldap_location');
|
||||||
$setting->ldap_dept = $request->input('ldap_dept');
|
$setting->ldap_dept = $request->input('ldap_dept');
|
||||||
$setting->ldap_client_tls_cert = $request->input('ldap_client_tls_cert');
|
$setting->ldap_client_tls_cert = $request->input('ldap_client_tls_cert');
|
||||||
$setting->ldap_client_tls_key = $request->input('ldap_client_tls_key');
|
$setting->ldap_client_tls_key = $request->input('ldap_client_tls_key');
|
||||||
|
|
|
@ -213,6 +213,7 @@ class Ldap extends Model
|
||||||
$ldap_result_phone = Setting::getSettings()->ldap_phone;
|
$ldap_result_phone = Setting::getSettings()->ldap_phone;
|
||||||
$ldap_result_jobtitle = Setting::getSettings()->ldap_jobtitle;
|
$ldap_result_jobtitle = Setting::getSettings()->ldap_jobtitle;
|
||||||
$ldap_result_country = Setting::getSettings()->ldap_country;
|
$ldap_result_country = Setting::getSettings()->ldap_country;
|
||||||
|
$ldap_result_location = Setting::getSettings()->ldap_location;
|
||||||
$ldap_result_dept = Setting::getSettings()->ldap_dept;
|
$ldap_result_dept = Setting::getSettings()->ldap_dept;
|
||||||
$ldap_result_manager = Setting::getSettings()->ldap_manager;
|
$ldap_result_manager = Setting::getSettings()->ldap_manager;
|
||||||
// Get LDAP user data
|
// Get LDAP user data
|
||||||
|
@ -227,6 +228,7 @@ class Ldap extends Model
|
||||||
$item['country'] = $ldapattributes[$ldap_result_country][0] ?? '';
|
$item['country'] = $ldapattributes[$ldap_result_country][0] ?? '';
|
||||||
$item['department'] = $ldapattributes[$ldap_result_dept][0] ?? '';
|
$item['department'] = $ldapattributes[$ldap_result_dept][0] ?? '';
|
||||||
$item['manager'] = $ldapattributes[$ldap_result_manager][0] ?? '';
|
$item['manager'] = $ldapattributes[$ldap_result_manager][0] ?? '';
|
||||||
|
$item['location'] = $ldapattributes[$ldap_result_location][0] ?? '';
|
||||||
|
|
||||||
return $item;
|
return $item;
|
||||||
}
|
}
|
||||||
|
|
|
@ -341,7 +341,15 @@ class Setting extends Model
|
||||||
'ad_domain',
|
'ad_domain',
|
||||||
'ad_append_domain',
|
'ad_append_domain',
|
||||||
'ldap_client_tls_key',
|
'ldap_client_tls_key',
|
||||||
'ldap_client_tls_cert'
|
'ldap_client_tls_cert',
|
||||||
|
'ldap_default_group',
|
||||||
|
'ldap_dept',
|
||||||
|
'ldap_emp_num',
|
||||||
|
'ldap_phone_field',
|
||||||
|
'ldap_jobtitle',
|
||||||
|
'ldap_manager',
|
||||||
|
'ldap_country',
|
||||||
|
'ldap_location',
|
||||||
])->first()->getAttributes();
|
])->first()->getAttributes();
|
||||||
|
|
||||||
return collect($ldapSettings);
|
return collect($ldapSettings);
|
||||||
|
|
|
@ -70,7 +70,11 @@ class SnipeSCIMConfig extends \ArieTimmerman\Laravel\SCIMServer\SCIMConfig
|
||||||
// Map a SCIM attribute to an attribute of the object.
|
// Map a SCIM attribute to an attribute of the object.
|
||||||
'mapping' => [
|
'mapping' => [
|
||||||
|
|
||||||
'id' => AttributeMapping::eloquent("id")->disableWrite(),
|
'id' => (new AttributeMapping())->setRead(
|
||||||
|
function (&$object) {
|
||||||
|
return (string)$object->id;
|
||||||
|
}
|
||||||
|
)->disableWrite(),
|
||||||
|
|
||||||
'externalId' => AttributeMapping::eloquent('scim_externalid'), // FIXME - I have a PR that changes a lot of this.
|
'externalId' => AttributeMapping::eloquent('scim_externalid'), // FIXME - I have a PR that changes a lot of this.
|
||||||
|
|
||||||
|
@ -174,7 +178,6 @@ class SnipeSCIMConfig extends \ArieTimmerman\Laravel\SCIMServer\SCIMConfig
|
||||||
'$ref' => null,
|
'$ref' => null,
|
||||||
'display' => null,
|
'display' => null,
|
||||||
'type' => null,
|
'type' => null,
|
||||||
'type' => null
|
|
||||||
]],
|
]],
|
||||||
|
|
||||||
'entitlements' => null,
|
'entitlements' => null,
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class AddsLdapLocationToSettingsTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::table('settings', function (Blueprint $table) {
|
||||||
|
$table->string('ldap_location')->after('ldap_country')->nullable()->default(null);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::table('settings', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('ldap_location');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
6
package-lock.json
generated
6
package-lock.json
generated
|
@ -1329,9 +1329,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@fortawesome/fontawesome-free": {
|
"@fortawesome/fontawesome-free": {
|
||||||
"version": "6.3.0",
|
"version": "6.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.0.tgz",
|
||||||
"integrity": "sha512-qVtd5i1Cc7cdrqnTWqTObKQHjPWAiRwjUPaXObaeNPcy7+WKxJumGBx66rfSFgK6LNpIasVKkEgW8oyf0tmPLA=="
|
"integrity": "sha512-0NyytTlPJwB/BF5LtRV8rrABDbe3TdTXqNB3PdZ+UUUZAEIrdOJdmABqKjt4AXwIoJNaRVVZEXxpNrqvE1GAYQ=="
|
||||||
},
|
},
|
||||||
"@jridgewell/gen-mapping": {
|
"@jridgewell/gen-mapping": {
|
||||||
"version": "0.1.1",
|
"version": "0.1.1",
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
"vue-template-compiler": "2.4.4"
|
"vue-template-compiler": "2.4.4"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fortawesome/fontawesome-free": "^6.3.0",
|
"@fortawesome/fontawesome-free": "^6.4.0",
|
||||||
"acorn": "^8.8.2",
|
"acorn": "^8.8.2",
|
||||||
"acorn-import-assertions": "^1.8.0",
|
"acorn-import-assertions": "^1.8.0",
|
||||||
"admin-lte": "^2.4.18",
|
"admin-lte": "^2.4.18",
|
||||||
|
|
BIN
public/css/dist/all.css
vendored
BIN
public/css/dist/all.css
vendored
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
public/js/dist/bootstrap-table.js
vendored
BIN
public/js/dist/bootstrap-table.js
vendored
Binary file not shown.
|
@ -18,20 +18,20 @@
|
||||||
"/css/dist/skins/skin-green.css": "/css/dist/skins/skin-green.css?id=b48f4d8af0e1ca5621c161e93951109f",
|
"/css/dist/skins/skin-green.css": "/css/dist/skins/skin-green.css?id=b48f4d8af0e1ca5621c161e93951109f",
|
||||||
"/css/dist/skins/skin-contrast.css": "/css/dist/skins/skin-contrast.css?id=f0fbbb0ac729ea092578fb05ca615460",
|
"/css/dist/skins/skin-contrast.css": "/css/dist/skins/skin-contrast.css?id=f0fbbb0ac729ea092578fb05ca615460",
|
||||||
"/css/dist/skins/skin-red.css": "/css/dist/skins/skin-red.css?id=b9a74ec0cd68f83e7480d5ae39919beb",
|
"/css/dist/skins/skin-red.css": "/css/dist/skins/skin-red.css?id=b9a74ec0cd68f83e7480d5ae39919beb",
|
||||||
"/css/dist/all.css": "/css/dist/all.css?id=06f08e03169ffa22e079e47d5681a471",
|
"/css/dist/all.css": "/css/dist/all.css?id=422928bd7d4860a3a4dfe601cf7d9472",
|
||||||
"/css/dist/signature-pad.css": "/css/dist/signature-pad.css?id=6a89d3cd901305e66ced1cf5f13147f7",
|
"/css/dist/signature-pad.css": "/css/dist/signature-pad.css?id=6a89d3cd901305e66ced1cf5f13147f7",
|
||||||
"/css/dist/signature-pad.min.css": "/css/dist/signature-pad.min.css?id=6a89d3cd901305e66ced1cf5f13147f7",
|
"/css/dist/signature-pad.min.css": "/css/dist/signature-pad.min.css?id=6a89d3cd901305e66ced1cf5f13147f7",
|
||||||
"/css/webfonts/fa-brands-400.ttf": "/css/webfonts/fa-brands-400.ttf?id=2df05d4beaa48550d71234e8dca79141",
|
"/css/webfonts/fa-brands-400.ttf": "/css/webfonts/fa-brands-400.ttf?id=e2e2b1797606a266ed55549f5bb5a179",
|
||||||
"/css/webfonts/fa-brands-400.woff2": "/css/webfonts/fa-brands-400.woff2?id=682885a4f72597322017a9fcd0683831",
|
"/css/webfonts/fa-brands-400.woff2": "/css/webfonts/fa-brands-400.woff2?id=fe912d1c4a7e0e1db87a64eb7e54c945",
|
||||||
"/css/webfonts/fa-regular-400.ttf": "/css/webfonts/fa-regular-400.ttf?id=e7a7f9dd9376f68614860d920255d4df",
|
"/css/webfonts/fa-regular-400.ttf": "/css/webfonts/fa-regular-400.ttf?id=31a6b5ecfc8d018d0e3a294f0c80e9e9",
|
||||||
"/css/webfonts/fa-regular-400.woff2": "/css/webfonts/fa-regular-400.woff2?id=204fc700c679395e6aa9bebc3cada64e",
|
"/css/webfonts/fa-regular-400.woff2": "/css/webfonts/fa-regular-400.woff2?id=bf8eabe300a00a3adb0293596987abc4",
|
||||||
"/css/webfonts/fa-solid-900.ttf": "/css/webfonts/fa-solid-900.ttf?id=c9d3294ec75b843a31ef711069a0f0b6",
|
"/css/webfonts/fa-solid-900.ttf": "/css/webfonts/fa-solid-900.ttf?id=cd687455c6d6c058e2e9f84f409e2965",
|
||||||
"/css/webfonts/fa-solid-900.woff2": "/css/webfonts/fa-solid-900.woff2?id=6707d0247b0bca1b4964bab435e3c0d6",
|
"/css/webfonts/fa-solid-900.woff2": "/css/webfonts/fa-solid-900.woff2?id=eea38615e7b5dbbaf88c263f2230cc32",
|
||||||
"/css/webfonts/fa-v4compatibility.ttf": "/css/webfonts/fa-v4compatibility.ttf?id=a947172f4fde88e43b4c1a60b01db061",
|
"/css/webfonts/fa-v4compatibility.ttf": "/css/webfonts/fa-v4compatibility.ttf?id=6ebbf5afc34f54463abc2b81ca637364",
|
||||||
"/css/webfonts/fa-v4compatibility.woff2": "/css/webfonts/fa-v4compatibility.woff2?id=bbc23038a6067c78310d3f19432a3ebf",
|
"/css/webfonts/fa-v4compatibility.woff2": "/css/webfonts/fa-v4compatibility.woff2?id=67b8a78b7e80e805cfa4ee0421895ba4",
|
||||||
"/css/dist/bootstrap-table.css": "/css/dist/bootstrap-table.css?id=418917c053841ab1aa1b78610a1825e0",
|
"/css/dist/bootstrap-table.css": "/css/dist/bootstrap-table.css?id=2265e072e44c782c901dce8e037d97fc",
|
||||||
"/js/build/vendor.js": "/js/build/vendor.js?id=3843eca1b2e670b29c1e1cb57e1d7aa7",
|
"/js/build/vendor.js": "/js/build/vendor.js?id=3843eca1b2e670b29c1e1cb57e1d7aa7",
|
||||||
"/js/dist/bootstrap-table.js": "/js/dist/bootstrap-table.js?id=7a506bf59323cf5b5fe97f7080fc5ee0",
|
"/js/dist/bootstrap-table.js": "/js/dist/bootstrap-table.js?id=a0e44dba789031b34ef150a01318b865",
|
||||||
"/js/dist/all.js": "/js/dist/all.js?id=abb8cd9afe481e321ed279c6a2dfed3d",
|
"/js/dist/all.js": "/js/dist/all.js?id=abb8cd9afe481e321ed279c6a2dfed3d",
|
||||||
"/css/dist/skins/skin-green.min.css": "/css/dist/skins/skin-green.min.css?id=b48f4d8af0e1ca5621c161e93951109f",
|
"/css/dist/skins/skin-green.min.css": "/css/dist/skins/skin-green.min.css?id=b48f4d8af0e1ca5621c161e93951109f",
|
||||||
"/css/dist/skins/skin-green-dark.min.css": "/css/dist/skins/skin-green-dark.min.css?id=15eb3805c9016a4ec8171a69d2830d51",
|
"/css/dist/skins/skin-green-dark.min.css": "/css/dist/skins/skin-green-dark.min.css?id=15eb3805c9016a4ec8171a69d2830d51",
|
||||||
|
|
|
@ -86,6 +86,8 @@ return [
|
||||||
'ldap_settings' => 'LDAP Settings',
|
'ldap_settings' => 'LDAP Settings',
|
||||||
'ldap_client_tls_cert_help' => 'Client-Side TLS Certificate and Key for LDAP connections are usually only useful in Google Workspace configurations with "Secure LDAP." Both are required.',
|
'ldap_client_tls_cert_help' => 'Client-Side TLS Certificate and Key for LDAP connections are usually only useful in Google Workspace configurations with "Secure LDAP." Both are required.',
|
||||||
'ldap_client_tls_key' => 'LDAP Client-Side TLS key',
|
'ldap_client_tls_key' => 'LDAP Client-Side TLS key',
|
||||||
|
'ldap_location' => 'LDAP Location',
|
||||||
|
'ldap_location_help' => 'The Ldap Location field should be used if <strong>an OU is not being used in the Base Bind DN.</strong> Leave this blank if an OU search is being used.',
|
||||||
'ldap_login_test_help' => 'Enter a valid LDAP username and password from the base DN you specified above to test whether your LDAP login is configured correctly. YOU MUST SAVE YOUR UPDATED LDAP SETTINGS FIRST.',
|
'ldap_login_test_help' => 'Enter a valid LDAP username and password from the base DN you specified above to test whether your LDAP login is configured correctly. YOU MUST SAVE YOUR UPDATED LDAP SETTINGS FIRST.',
|
||||||
'ldap_login_sync_help' => 'This only tests that LDAP can sync correctly. If your LDAP Authentication query is not correct, users may still not be able to login. YOU MUST SAVE YOUR UPDATED LDAP SETTINGS FIRST.',
|
'ldap_login_sync_help' => 'This only tests that LDAP can sync correctly. If your LDAP Authentication query is not correct, users may still not be able to login. YOU MUST SAVE YOUR UPDATED LDAP SETTINGS FIRST.',
|
||||||
'ldap_manager' => 'LDAP Manager',
|
'ldap_manager' => 'LDAP Manager',
|
||||||
|
|
|
@ -499,6 +499,20 @@
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- LDAP Location -->
|
||||||
|
<div class="form-group {{ $errors->has('ldap_location') ? 'error' : '' }}">
|
||||||
|
<div class="col-md-3">
|
||||||
|
{{ Form::label('ldap_location', trans('admin/settings/general.ldap_location')) }}
|
||||||
|
</div>
|
||||||
|
<div class="col-md-9">
|
||||||
|
{{ Form::text('ldap_location', Request::old('ldap_location', $setting->ldap_location), ['class' => 'form-control','placeholder' => trans('general.example') .'physicaldeliveryofficename', $setting->demoMode]) }}
|
||||||
|
<p class="help-block">{!! trans('admin/settings/general.ldap_location_help') !!}</p>
|
||||||
|
{!! $errors->first('ldap_location', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
|
||||||
|
@if (config('app.lock_passwords')===true)
|
||||||
|
<p class="text-warning"><i class="fas fa-lock" aria-hidden="true"></i> {{ trans('general.feature_disabled') }}</p>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@if ($setting->ldap_enabled)
|
@if ($setting->ldap_enabled)
|
||||||
|
|
||||||
<!-- LDAP test -->
|
<!-- LDAP test -->
|
||||||
|
|
|
@ -12,7 +12,7 @@ class UpdateUserTest extends TestCase
|
||||||
|
|
||||||
public function testUsersCanBeActivated()
|
public function testUsersCanBeActivated()
|
||||||
{
|
{
|
||||||
$admin = User::factory()->admin()->create();
|
$admin = User::factory()->superuser()->create();
|
||||||
$user = User::factory()->create(['activated' => false]);
|
$user = User::factory()->create(['activated' => false]);
|
||||||
|
|
||||||
$this->actingAs($admin)
|
$this->actingAs($admin)
|
||||||
|
@ -27,7 +27,7 @@ class UpdateUserTest extends TestCase
|
||||||
|
|
||||||
public function testUsersCanBeDeactivated()
|
public function testUsersCanBeDeactivated()
|
||||||
{
|
{
|
||||||
$admin = User::factory()->admin()->create();
|
$admin = User::factory()->superuser()->create();
|
||||||
$user = User::factory()->create(['activated' => true]);
|
$user = User::factory()->create(['activated' => true]);
|
||||||
|
|
||||||
$this->actingAs($admin)
|
$this->actingAs($admin)
|
||||||
|
@ -44,7 +44,7 @@ class UpdateUserTest extends TestCase
|
||||||
|
|
||||||
public function testUsersUpdatingThemselvesDoNotDeactivateTheirAccount()
|
public function testUsersUpdatingThemselvesDoNotDeactivateTheirAccount()
|
||||||
{
|
{
|
||||||
$admin = User::factory()->admin()->create(['activated' => true]);
|
$admin = User::factory()->superuser()->create(['activated' => true]);
|
||||||
|
|
||||||
$this->actingAs($admin)
|
$this->actingAs($admin)
|
||||||
->put(route('users.update', $admin), [
|
->put(route('users.update', $admin), [
|
||||||
|
|
Loading…
Reference in a new issue