Compare commits
2 Commits
561ef84570
...
75b587131f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
75b587131f | ||
|
|
3bc3407657 |
@ -5,6 +5,8 @@
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Modules\User\Models\User;
|
||||
use Modules\User\Models\UserRole;
|
||||
use Modules\User\Models\Role;
|
||||
use Modules\Main\Models\City;
|
||||
class CityManager extends Model
|
||||
{
|
||||
@ -21,4 +23,14 @@ public function city()
|
||||
{
|
||||
return $this->belongsTo(City::class, 'city_id');
|
||||
}
|
||||
protected static function booted()
|
||||
{
|
||||
static::created(function (CityManager $cityManager)
|
||||
{
|
||||
UserRole::create([
|
||||
'user_id' => $cityManager->user_id,
|
||||
'role_id' => Role::CITY_MANAGER
|
||||
]);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('docs_cities', function (Blueprint $table)
|
||||
{
|
||||
$table->id();
|
||||
$table->foreignId('docs_id')->references('id')->on('docs')->onDelete('cascade');
|
||||
$table->foreignId('city_id')->references('id')->on('cities')->onDelete('cascade');
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('news');
|
||||
}
|
||||
};
|
||||
@ -2,13 +2,8 @@
|
||||
|
||||
namespace Modules\Main\Models\Deal;
|
||||
|
||||
use Illuminate\Contracts\Auth\MustVerifyEmail;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||
use Illuminate\Notifications\Notifiable;
|
||||
use Laravel\Sanctum\HasApiTokens;
|
||||
|
||||
use Modules\User\Models\User;
|
||||
|
||||
use Modules\Main\Models\Agent\Agent;
|
||||
use Modules\Bitrix\Traits\Bitrixable;
|
||||
class Client extends User
|
||||
@ -39,8 +34,4 @@ public function ofAgent(Agent $agent)
|
||||
{
|
||||
return $this->deals->where('agent_id', $agent->id);
|
||||
}
|
||||
public function create()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
\DB::delete('DELETE t1 FROM user_roles t1
|
||||
INNER JOIN user_roles t2
|
||||
WHERE t1.id < t2.id AND t1.user_id = t2.user_id AND t1.role_id = t2.role_id
|
||||
');
|
||||
|
||||
Schema::table('user_roles', function (Blueprint $table)
|
||||
{
|
||||
$table->unique(['user_id', 'role_id']);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
}
|
||||
};
|
||||
@ -2,13 +2,16 @@
|
||||
|
||||
namespace Modules\User\Models;
|
||||
|
||||
use Illuminate\Contracts\Auth\MustVerifyEmail;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||
use Illuminate\Notifications\Notifiable;
|
||||
use Laravel\Sanctum\HasApiTokens;
|
||||
|
||||
use App\Models\ForcedPassword;
|
||||
use Laravel\Sanctum\HasApiTokens;
|
||||
use Illuminate\Notifications\Notifiable;
|
||||
use Illuminate\Contracts\Auth\MustVerifyEmail;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
use Illuminate\Database\Eloquent\Relations\HasManyThrough;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
|
||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||
|
||||
class User extends Authenticatable
|
||||
{
|
||||
use HasApiTokens, HasFactory, Notifiable, ForcedPassword;
|
||||
@ -54,4 +57,22 @@ public function getPartialsName()
|
||||
'familyName' => (array_key_exists(2, $name) ? $name[2] : '')
|
||||
];
|
||||
}
|
||||
|
||||
public function roles(): HasManyThrough
|
||||
{
|
||||
return $this->hasManyThrough(
|
||||
Role::class
|
||||
,
|
||||
UserRole::class
|
||||
,
|
||||
'user_id'
|
||||
,
|
||||
'id'
|
||||
,
|
||||
'id'
|
||||
,
|
||||
'role_id'
|
||||
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -20,4 +20,8 @@ public function role()
|
||||
{
|
||||
return $this->belongsTo(Role::class, 'role_id');
|
||||
}
|
||||
public static function create(array $attributes = [])
|
||||
{
|
||||
return parent::updateOrCreate($attributes);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('content')
|
||||
<div style="max-width:700px">
|
||||
<form method="POST" action="">
|
||||
@ -68,7 +67,7 @@ class="form-control rounded-4 bg-white @error('user.phone') is-invalid @enderror
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-floating mb-3">
|
||||
<div class="form-floating">
|
||||
<input id="details.address" name="details[address]" value=""
|
||||
class="form-control rounded-4 bg-white @error('details.address') is-invalid @enderror" required
|
||||
placeholder="Телеграм ник">
|
||||
@ -79,7 +78,16 @@ class="form-control rounded-4 bg-white @error('details.address') is-invalid @end
|
||||
</span>
|
||||
@enderror
|
||||
</div>
|
||||
|
||||
<div class="my-3 d-flex">
|
||||
<div class="me-2">Мои права: </div>
|
||||
<div class="hstack gap-2">
|
||||
@foreach (auth()->user()->roles as $role)
|
||||
<div class="badge bg-secondary">
|
||||
{{ __($role->name) }}
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn rounded-4 text-light fw-bold fs-5 w-100 py-3" style="background-color: #20184d;">
|
||||
Сохранить изменения
|
||||
</button>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user