Skip to content

Commit 15e17fc

Browse files
authored
Merge pull request dmstr#17 from handcode/master
access_owner check in ActiveRecordAccessTrait::find only if user is logged in
2 parents ad7cf23 + a855b7e commit 15e17fc

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

db/traits/ActiveRecordAccessTrait.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,14 +66,16 @@ public static function find()
6666

6767
if (self::$activeAccessTrait) {
6868

69-
// access owner check
70-
if ($accessOwner) {
69+
// access owner check only if attribute exists and user is logged in
70+
$accessOwnerCheck = false;
71+
if ($accessOwner && !\Yii::$app->user->isGuest) {
72+
$accessOwnerCheck = true;
7173
$query->where([$accessOwner => \Yii::$app->user->id]);
7274
}
7375

7476
// access read check
7577
if ($accessRead) {
76-
$queryType = ($accessOwner) ? 'orWhere' : 'where';
78+
$queryType = ($accessOwnerCheck) ? 'orWhere' : 'where';
7779
$authItems = implode(',', array_keys(self::getUsersAuthItems()));
7880
$checkInSetQuery = self::getInSetQueryPart($accessRead, $authItems);
7981
$query->$queryType($checkInSetQuery);

0 commit comments

Comments
 (0)