* Add boolean field "disable activity checks" to role, check for this field inside PilotLeave-Check, add tests * fix checkbox on form * CS fixes * CS fixes again :-) Co-authored-by: Andreas Palm <ap@ewsp.de>
This commit is contained in:
13
app/Database/factories/RoleFactory.php
Normal file
13
app/Database/factories/RoleFactory.php
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
use Faker\Generator as Faker;
|
||||
|
||||
$factory->define(App\Models\Role::class, function (Faker $faker) {
|
||||
return [
|
||||
'id' => null,
|
||||
'name' => $faker->name,
|
||||
'display_name' => $faker->name,
|
||||
'read_only' => false,
|
||||
'disable_activity_checks' => $faker->boolean(),
|
||||
];
|
||||
});
|
||||
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class AddDisableactivitychecksToRoles extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('roles', function (Blueprint $table) {
|
||||
$table->boolean('disable_activity_checks')
|
||||
->default(false)
|
||||
->after('read_only');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('roles', function (Blueprint $table) {
|
||||
$table->dropColumn('disable_activity_checks');
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,12 @@ namespace App\Models;
|
||||
use Laratrust\Models\LaratrustRole;
|
||||
|
||||
/**
|
||||
* @property int id
|
||||
* @property string name
|
||||
* @property string display_name
|
||||
* @property bool read_only
|
||||
* @property bool disable_activity_checks
|
||||
*
|
||||
* @mixin \Illuminate\Database\Eloquent\Builder
|
||||
*/
|
||||
class Role extends LaratrustRole
|
||||
@@ -14,10 +20,12 @@ class Role extends LaratrustRole
|
||||
'name',
|
||||
'display_name',
|
||||
'read_only',
|
||||
'disable_activity_checks',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'read_only' => 'boolean',
|
||||
'read_only' => 'boolean',
|
||||
'disable_activity_checks' => 'boolean',
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
@@ -282,9 +282,24 @@ class UserService extends Service
|
||||
}
|
||||
|
||||
// See if the difference is larger than what the setting calls for
|
||||
if ($date->diffInDays($diff_date) > $leave_days) {
|
||||
$return_users[] = $user;
|
||||
if ($date->diffInDays($diff_date) <= $leave_days) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$skip = false;
|
||||
// If any role for this user has the "disable_activity_check" feature activated, skip this user
|
||||
foreach ($user->roles()->get() as $role) {
|
||||
/** @var Role $role */
|
||||
if ($role->disable_activity_checks) {
|
||||
$skip = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($skip) {
|
||||
continue;
|
||||
}
|
||||
$return_users[] = $user;
|
||||
}
|
||||
|
||||
return $return_users;
|
||||
|
||||
Reference in New Issue
Block a user