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\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Modules\User\Models\User;
|
use Modules\User\Models\User;
|
||||||
|
use Modules\User\Models\UserRole;
|
||||||
|
use Modules\User\Models\Role;
|
||||||
use Modules\Main\Models\City;
|
use Modules\Main\Models\City;
|
||||||
class CityManager extends Model
|
class CityManager extends Model
|
||||||
{
|
{
|
||||||
@ -21,4 +23,14 @@ public function city()
|
|||||||
{
|
{
|
||||||
return $this->belongsTo(City::class, 'city_id');
|
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;
|
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\User\Models\User;
|
||||||
|
|
||||||
use Modules\Main\Models\Agent\Agent;
|
use Modules\Main\Models\Agent\Agent;
|
||||||
use Modules\Bitrix\Traits\Bitrixable;
|
use Modules\Bitrix\Traits\Bitrixable;
|
||||||
class Client extends User
|
class Client extends User
|
||||||
@ -39,8 +34,4 @@ public function ofAgent(Agent $agent)
|
|||||||
{
|
{
|
||||||
return $this->deals->where('agent_id', $agent->id);
|
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;
|
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 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
|
class User extends Authenticatable
|
||||||
{
|
{
|
||||||
use HasApiTokens, HasFactory, Notifiable, ForcedPassword;
|
use HasApiTokens, HasFactory, Notifiable, ForcedPassword;
|
||||||
@ -54,4 +57,22 @@ public function getPartialsName()
|
|||||||
'familyName' => (array_key_exists(2, $name) ? $name[2] : '')
|
'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');
|
return $this->belongsTo(Role::class, 'role_id');
|
||||||
}
|
}
|
||||||
|
public static function create(array $attributes = [])
|
||||||
|
{
|
||||||
|
return parent::updateOrCreate($attributes);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
@extends('layouts.app')
|
@extends('layouts.app')
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div style="max-width:700px">
|
<div style="max-width:700px">
|
||||||
<form method="POST" action="">
|
<form method="POST" action="">
|
||||||
@ -68,7 +67,7 @@ class="form-control rounded-4 bg-white @error('user.phone') is-invalid @enderror
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="form-floating mb-3">
|
<div class="form-floating">
|
||||||
<input id="details.address" name="details[address]" value=""
|
<input id="details.address" name="details[address]" value=""
|
||||||
class="form-control rounded-4 bg-white @error('details.address') is-invalid @enderror" required
|
class="form-control rounded-4 bg-white @error('details.address') is-invalid @enderror" required
|
||||||
placeholder="Телеграм ник">
|
placeholder="Телеграм ник">
|
||||||
@ -79,7 +78,16 @@ class="form-control rounded-4 bg-white @error('details.address') is-invalid @end
|
|||||||
</span>
|
</span>
|
||||||
@enderror
|
@enderror
|
||||||
</div>
|
</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 class="btn rounded-4 text-light fw-bold fs-5 w-100 py-3" style="background-color: #20184d;">
|
||||||
Сохранить изменения
|
Сохранить изменения
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user