feat: Add Gitlab id on user model
This commit is contained in:
parent
eba20accc4
commit
e12c48b829
6 changed files with 74 additions and 6 deletions
|
|
@ -8,13 +8,17 @@ enum GitlabUsersEnum: int
|
|||
{
|
||||
use BaseEnum;
|
||||
|
||||
// Each user is associated to his ID on gitlab.
|
||||
case nicolas = 24;
|
||||
/**
|
||||
* Each user is associated to his ID on gitlab.
|
||||
*
|
||||
* 24 is Nicolas Demangeat
|
||||
*/
|
||||
case default = 24;
|
||||
|
||||
/**
|
||||
* Optionnal labels definition
|
||||
*/
|
||||
private const LABELS = [
|
||||
self::nicolas->name => "Nicolas Demangeat",
|
||||
self::default->name => "Default",
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -755,6 +755,12 @@ class TicketController extends Controller
|
|||
TicketTypeEnum::evolution, TicketTypeEnum::newsletter => 'c-feature',
|
||||
};
|
||||
|
||||
$assigneeId = match ($ticket->type) {
|
||||
TicketTypeEnum::bug => GitlabUsersEnum::default->value,
|
||||
TicketTypeEnum::evolution,
|
||||
TicketTypeEnum::newsletter => $ticket->site->projectManager?->gitlab_id ?? GitlabUsersEnum::default->value
|
||||
};
|
||||
|
||||
try {
|
||||
foreach ($ticket->getFiles() as $key => $file) {
|
||||
if (!\is_null($file)) {
|
||||
|
|
@ -770,7 +776,7 @@ class TicketController extends Controller
|
|||
'c-support',
|
||||
$cLabel
|
||||
]),
|
||||
'assignee_id' => GitlabUsersEnum::nicolas,
|
||||
'assignee_id' => $assigneeId,
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
\report($e);
|
||||
|
|
|
|||
|
|
@ -34,7 +34,8 @@ class StoreUserRequest extends FormRequest
|
|||
Rule::in(collect(RoleEnum::cases())->pluck('value')->all()),
|
||||
],
|
||||
'sites' => 'nullable|array',
|
||||
'sites.*.id' => 'required|exists:sites,id'
|
||||
'sites.*.id' => 'required|exists:sites,id',
|
||||
'gitlab_id' => 'nullable|integer|unique:users,gitlab_id'
|
||||
];
|
||||
}
|
||||
|
||||
|
|
@ -51,6 +52,7 @@ class StoreUserRequest extends FormRequest
|
|||
'role' => trans('Rôle de l\'utilisateur'),
|
||||
'sites' => trans('Sites associés à l\'utilisateur'),
|
||||
'sites.*.id' => trans('Élément parmis les sites associés à l\'utilisateur'),
|
||||
'gitlab_id' => trans("ID de l'utilisateur Gitlab")
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,7 +45,8 @@ class User extends Authenticatable
|
|||
'email',
|
||||
'password',
|
||||
'role',
|
||||
'sites'
|
||||
'sites',
|
||||
'gitlab_id'
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
$table->unsignedInteger('gitlab_id')
|
||||
->unique()
|
||||
->nullable()
|
||||
->comment("ID du user Gitlab")
|
||||
->after('remember_token');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
$table->dropColumn('gitlab_id');
|
||||
});
|
||||
}
|
||||
};
|
||||
|
|
@ -118,6 +118,25 @@
|
|||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
{{-- GITLAB_USER_ID --}}
|
||||
<div class="col-12 col-md-6 mb-3">
|
||||
<fieldset class="h-100 border bg-white p-3">
|
||||
<legend>{{ __("ID de l'utilisateur Gitlab") }}</legend>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
@include('bo.partials.inputs.int-number', [
|
||||
'id' => 'siteGitlabUserId',
|
||||
'label' => __("ID de l'utilisateur Gitlab"),
|
||||
'name' => 'gitlab_id',
|
||||
'required' => false,
|
||||
'model' => $userModel ?? null,
|
||||
'helper' => __("ID de l'utilisateur Gitlab"),
|
||||
'step' => 1,
|
||||
])
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@push('scripts')
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue