質問編集履歴

10

policyとmodelを全文追記

2021/02/08 11:21

投稿

hiro_app
hiro_app

スコア123

test CHANGED
File without changes
test CHANGED
@@ -74,8 +74,14 @@
74
74
 
75
75
  ```
76
76
 
77
+ <?php
78
+
79
+
80
+
77
81
  namespace App\Policies;
78
82
 
83
+
84
+
79
85
  use App\Models\Admin\Hoge;
80
86
 
81
87
  use App\Models\Admin\User;
@@ -90,11 +96,49 @@
90
96
 
91
97
  use HandlesAuthorization;
92
98
 
99
+
100
+
101
+ /**
102
+
103
+ * Determine whether the user can view any hoges.
104
+
105
+ *
106
+
107
+ * @param \App\Models\Admin\User $user
108
+
109
+ * @return mixed
110
+
111
+ */
112
+
113
+ public function viewAny(User $user)
114
+
115
+ {
116
+
117
+ //
118
+
119
+ }
120
+
121
+
122
+
123
+ /**
124
+
125
+ * Determine whether the user can view the hoge.
126
+
127
+ *
128
+
129
+ * @param \App\Models\Admin\User $user
130
+
131
+ * @param \App\Hoge $hoge
132
+
133
+ * @return mixed
134
+
135
+ */
136
+
93
137
  public function view(User $user, Hoge $hoge)
94
138
 
95
139
  {
96
140
 
97
- \Log::debug('call view policy'); // ←ログ出力されない
141
+ \Log::debug('-------------------- call view policy --------------------');
98
142
 
99
143
  return false;
100
144
 
@@ -104,12 +148,130 @@
104
148
 
105
149
  {
106
150
 
107
- \Log::debug('call edit policy'); // ←ログ出力されない
151
+ \Log::debug('-------------------- call edit policy --------------------');
108
152
 
109
153
  return false;
110
154
 
111
155
  }
112
156
 
157
+
158
+
159
+ /**
160
+
161
+ * Determine whether the user can create hoges.
162
+
163
+ *
164
+
165
+ * @param \App\Models\Admin\User $user
166
+
167
+ * @return mixed
168
+
169
+ */
170
+
171
+ public function create(User $user)
172
+
173
+ {
174
+
175
+ //
176
+
177
+ }
178
+
179
+
180
+
181
+ /**
182
+
183
+ * Determine whether the user can update the hoge.
184
+
185
+ *
186
+
187
+ * @param \App\Models\Admin\User $user
188
+
189
+ * @param \App\Hoge $hoge
190
+
191
+ * @return mixed
192
+
193
+ */
194
+
195
+ public function update(User $user, Hoge $hoge)
196
+
197
+ {
198
+
199
+ //
200
+
201
+ }
202
+
203
+
204
+
205
+ /**
206
+
207
+ * Determine whether the user can delete the hoge.
208
+
209
+ *
210
+
211
+ * @param \App\Models\Admin\User $user
212
+
213
+ * @param \App\Hoge $hoge
214
+
215
+ * @return mixed
216
+
217
+ */
218
+
219
+ public function delete(User $user, Hoge $hoge)
220
+
221
+ {
222
+
223
+ //
224
+
225
+ }
226
+
227
+
228
+
229
+ /**
230
+
231
+ * Determine whether the user can restore the hoge.
232
+
233
+ *
234
+
235
+ * @param \App\Models\Admin\User $user
236
+
237
+ * @param \App\Hoge $hoge
238
+
239
+ * @return mixed
240
+
241
+ */
242
+
243
+ public function restore(User $user, Hoge $hoge)
244
+
245
+ {
246
+
247
+ //
248
+
249
+ }
250
+
251
+
252
+
253
+ /**
254
+
255
+ * Determine whether the user can permanently delete the hoge.
256
+
257
+ *
258
+
259
+ * @param \App\Models\Admin\User $user
260
+
261
+ * @param \App\Hoge $hoge
262
+
263
+ * @return mixed
264
+
265
+ */
266
+
267
+ public function forceDelete(User $user, Hoge $hoge)
268
+
269
+ {
270
+
271
+ //
272
+
273
+ }
274
+
113
275
  }
114
276
 
115
277
  ```
@@ -120,14 +282,30 @@
120
282
 
121
283
  ```
122
284
 
285
+ <?php
286
+
287
+
288
+
123
289
  namespace App\Models\Admin;
124
290
 
125
291
 
126
292
 
293
+ use Eloquent as Model;
294
+
295
+
296
+
297
+ /**
298
+
299
+ * Class Hoge
300
+
301
+ */
302
+
127
303
  class Hoge extends Model
128
304
 
129
305
  {
130
306
 
307
+ public $table = 'hogehoge';
308
+
131
309
  }
132
310
 
133
311
  ```

9

policyへログ出力処理追加

2021/02/08 11:21

投稿

hiro_app
hiro_app

スコア123

test CHANGED
File without changes
test CHANGED
@@ -94,6 +94,8 @@
94
94
 
95
95
  {
96
96
 
97
+ \Log::debug('call view policy'); // ←ログ出力されない
98
+
97
99
  return false;
98
100
 
99
101
  }
@@ -101,6 +103,8 @@
101
103
  public function edit(User $user, Hoge $hoge)
102
104
 
103
105
  {
106
+
107
+ \Log::debug('call edit policy'); // ←ログ出力されない
104
108
 
105
109
  return false;
106
110
 

8

インスタンス生成方法を修正

2021/02/08 10:54

投稿

hiro_app
hiro_app

スコア123

test CHANGED
File without changes
test CHANGED
@@ -56,7 +56,9 @@
56
56
 
57
57
  {
58
58
 
59
- $hoge= $this->Hoge->find($id); // Hogeモデルの検索結果取得OK
59
+ // $hoge= $this->Hoge->find($id); // Hogeモデルの検索結果取得OK
60
+
61
+ $hoge= (new Hoge)::find($id); // ↑と結果は同じ
60
62
 
61
63
  $this->authorize('edit', $hoge);
62
64
 

7

policy出力結果追加

2021/02/08 10:44

投稿

hiro_app
hiro_app

スコア123

test CHANGED
File without changes
test CHANGED
@@ -59,6 +59,8 @@
59
59
  $hoge= $this->Hoge->find($id); // Hogeモデルの検索結果取得OK
60
60
 
61
61
  $this->authorize('edit', $hoge);
62
+
63
+ // dd(policy(Hoge::class)); // 「^ App\Policies\HogePolicy {#724}」と表示されるのでAuthServiceProviderの設定は上手くいっている?
62
64
 
63
65
  }
64
66
 

6

$policiesから不要パターン削除、伴い説明文一部削除

2021/02/05 05:20

投稿

hiro_app
hiro_app

スコア123

test CHANGED
File without changes
test CHANGED
@@ -2,15 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- AuthServiceProvider の $policies に存在しないモデルや下記例のようなデタラメな数字を書いてもエラーとならないため、ここの設定が読み込めていないような気がするのですが
6
-
7
- どこの設定が誤っているせいなのかが解らない状態です。
8
-
9
-
10
-
11
- 期待値としてはPolicyでfalseを返しているためアクセス拒否 or $policiesでデタラメ設定のせいでエラー
5
+ 期待値としてはPolicyでfalseを返しているためアクセス拒否ってほしすが、普通に画面が表示されてしまいます。
12
-
13
- となってほしい所ですが、普通に画面が表示されてしまいます。
14
6
 
15
7
 
16
8
 
@@ -36,13 +28,7 @@
36
28
 
37
29
  protected $policies = [
38
30
 
39
- Hoge::class => HogePolicy::class, // 存在するモデル・ポリシー パターン1
31
+ Hoge::class => HogePolicy::class
40
-
41
- 'App\Models\Admin\Hoge' => 'App\Policies\HogePolicy', // 存在するモデル・ポリシー パターン2
42
-
43
- App\Models\Admin\Hoge::class => App\Policies\HogePolicy::class, // 存在するモデル・ポリシー パターン3
44
-
45
- 123456 // $policiesが読み込まれているなら、ここが原因でエラーになってほしい
46
32
 
47
33
  ];
48
34
 

5

namespace追記

2021/02/05 04:54

投稿

hiro_app
hiro_app

スコア123

test CHANGED
File without changes
test CHANGED
@@ -84,7 +84,11 @@
84
84
 
85
85
  ```
86
86
 
87
+ namespace App\Policies;
88
+
87
89
  use App\Models\Admin\Hoge;
90
+
91
+ use App\Models\Admin\User;
88
92
 
89
93
  use Illuminate\Auth\Access\HandlesAuthorization;
90
94
 
@@ -115,3 +119,21 @@
115
119
  }
116
120
 
117
121
  ```
122
+
123
+
124
+
125
+ ・Laravel Hogeモデル
126
+
127
+ ```
128
+
129
+ namespace App\Models\Admin;
130
+
131
+
132
+
133
+ class Hoge extends Model
134
+
135
+ {
136
+
137
+ }
138
+
139
+ ```

4

use追記

2021/02/05 04:17

投稿

hiro_app
hiro_app

スコア123

test CHANGED
File without changes
test CHANGED
@@ -21,6 +21,10 @@
21
21
  ・Laravel AuthServiceProvider
22
22
 
23
23
  ```
24
+
25
+ use Illuminate\Support\Facades\Gate;
26
+
27
+ use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
24
28
 
25
29
  use App\Models\Admin\Hoge;
26
30
 

3

ソースタイトル追記

2021/02/05 01:46

投稿

hiro_app
hiro_app

スコア123

test CHANGED
File without changes
test CHANGED
@@ -18,7 +18,9 @@
18
18
 
19
19
 
20
20
 
21
- ```Laravel AuthServiceProvider
21
+ Laravel AuthServiceProvider
22
+
23
+ ```
22
24
 
23
25
  use App\Models\Admin\Hoge;
24
26
 
@@ -56,7 +58,9 @@
56
58
 
57
59
 
58
60
 
59
- ```Laravel Controller
61
+ Laravel Controller
62
+
63
+ ```
60
64
 
61
65
  public function edit($id)
62
66
 
@@ -72,7 +76,9 @@
72
76
 
73
77
 
74
78
 
75
- ```Laravel HogePolicy(一部)
79
+ Laravel HogePolicy(一部)
80
+
81
+ ```
76
82
 
77
83
  use App\Models\Admin\Hoge;
78
84
 

2

ソース加筆

2021/02/05 01:43

投稿

hiro_app
hiro_app

スコア123

test CHANGED
File without changes
test CHANGED
@@ -18,7 +18,11 @@
18
18
 
19
19
 
20
20
 
21
- ```Laravel
21
+ ```Laravel AuthServiceProvider
22
+
23
+ use App\Models\Admin\Hoge;
24
+
25
+ use App\Policies\HogePolicy;
22
26
 
23
27
  class AuthServiceProvider extends ServiceProvider
24
28
 
@@ -58,9 +62,9 @@
58
62
 
59
63
  {
60
64
 
61
- $hoge= $this->Hoge->find($id); // 値は取得OK
65
+ $hoge= $this->Hoge->find($id); // Hogeモデルの検索結果取得OK
62
66
 
63
- $this->authorize('view', $hoge);
67
+ $this->authorize('edit', $hoge);
64
68
 
65
69
  }
66
70
 
@@ -68,7 +72,19 @@
68
72
 
69
73
 
70
74
 
71
- ```Laravel Policy(一部)
75
+ ```Laravel HogePolicy(一部)
76
+
77
+ use App\Models\Admin\Hoge;
78
+
79
+ use Illuminate\Auth\Access\HandlesAuthorization;
80
+
81
+
82
+
83
+ class HogePolicy
84
+
85
+ {
86
+
87
+ use HandlesAuthorization;
72
88
 
73
89
  public function view(User $user, Hoge $hoge)
74
90
 
@@ -86,4 +102,6 @@
86
102
 
87
103
  }
88
104
 
105
+ }
106
+
89
107
  ```

1

$policiesへパターン3を追加

2021/02/05 01:38

投稿

hiro_app
hiro_app

スコア123

test CHANGED
File without changes
test CHANGED
@@ -28,7 +28,9 @@
28
28
 
29
29
  Hoge::class => HogePolicy::class, // 存在するモデル・ポリシー パターン1
30
30
 
31
- 'App\Model\Admin\Hoge' => 'App\Policies\HogePolicy', // 存在するモデル・ポリシー パターン2
31
+ 'App\Models\Admin\Hoge' => 'App\Policies\HogePolicy', // 存在するモデル・ポリシー パターン2
32
+
33
+ App\Models\Admin\Hoge::class => App\Policies\HogePolicy::class, // 存在するモデル・ポリシー パターン3
32
34
 
33
35
  123456 // $policiesが読み込まれているなら、ここが原因でエラーになってほしい
34
36