diff --git a/app/Http/Requests/StudentPostRequest.php b/app/Http/Requests/StudentPostRequest.php index 132c34d..c726119 100644 --- a/app/Http/Requests/StudentPostRequest.php +++ b/app/Http/Requests/StudentPostRequest.php @@ -2,7 +2,9 @@ namespace App\Http\Requests; +use App\Models\User; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Validation\Rule; class StudentPostRequest extends FormRequest { @@ -27,7 +29,7 @@ class StudentPostRequest extends FormRequest 'middle_name' => 'required|max:255', 'birthday' => 'required|date', 'grade_id' => 'required|exists:grades,id', - 'email' => 'required|max:255|lowercase|unique:users,email', + 'email' => ['required', 'string', 'lowercase', 'email', 'max:255', Rule::unique(User::class)->ignore($this->route('student')?->user->id)], 'password' => 'required|max:255', ]; } diff --git a/app/Http/Requests/TeacherPostRequest.php b/app/Http/Requests/TeacherPostRequest.php index e3aea8a..062dde2 100644 --- a/app/Http/Requests/TeacherPostRequest.php +++ b/app/Http/Requests/TeacherPostRequest.php @@ -2,7 +2,9 @@ namespace App\Http\Requests; +use App\Models\User; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Validation\Rule; class TeacherPostRequest extends FormRequest { @@ -26,7 +28,7 @@ class TeacherPostRequest extends FormRequest 'last_name' => 'required|max:255', 'middle_name' => 'required|max:255', 'birthday' => 'required|date', - 'email' => 'required|max:255|lowercase|unique:users,email', + 'email' => ['required', 'string', 'lowercase', 'email', 'max:255', Rule::unique(User::class)->ignore($this->route('teacher')?->user->id)], 'password' => 'required|max:255', ]; } diff --git a/app/Policies/GradePolicy.php b/app/Policies/GradePolicy.php index 8c63ca2..6343761 100644 --- a/app/Policies/GradePolicy.php +++ b/app/Policies/GradePolicy.php @@ -5,6 +5,7 @@ namespace App\Policies; use App\Models\Admin; use App\Models\Grade; use App\Models\Student; +use App\Models\Teacher; use App\Models\User; class GradePolicy @@ -48,4 +49,14 @@ class GradePolicy { return $user->userable_type == Admin::class; } + + public function journal(User $user) + { + return $user->userable_type == Teacher::class; + } + + public function list(User $user) + { + return $user->userable_type == Teacher::class; + } } diff --git a/resources/views/grades/index.blade.php b/resources/views/grades/index.blade.php index 26d7fde..43440e4 100644 --- a/resources/views/grades/index.blade.php +++ b/resources/views/grades/index.blade.php @@ -41,11 +41,13 @@ Занятия - -
- Списки учеников -
- + @can('list', \App\Models\Grade::class) + +
+ Списки учеников +
+ + @endcan @can('update', $grade)
diff --git a/resources/views/grades/show.blade.php b/resources/views/grades/show.blade.php index 03b66c5..98ffe23 100644 --- a/resources/views/grades/show.blade.php +++ b/resources/views/grades/show.blade.php @@ -35,11 +35,13 @@ {{ $subject->name }}
- -
- Журнал -
- + @can('journal', \App\Models\Grade::class) + +
+ Журнал +
+ + @endcan @can('delete', $grade)
diff --git a/resources/views/teachers/index.blade.php b/resources/views/teachers/index.blade.php index 7490690..92ac833 100644 --- a/resources/views/teachers/index.blade.php +++ b/resources/views/teachers/index.blade.php @@ -69,7 +69,7 @@

Учителя отсутствуют

@endif - @can('create', Teacher::class) + @can('create', \App\Models\Teacher::class)