@@ -127,8 +127,10 @@ public function canViewItem() {
127
127
128
128
$ groupUser = new Group_User ();
129
129
$ groups = $ groupUser ->getUserGroups ($ currentUser );
130
- if (in_array ($ this ->fields ['users_id_validator ' ], $ groups )) {
131
- return true ;
130
+ foreach ($ groups as $ group ) {
131
+ if ($ this ->fields ['groups_id_validator ' ] == $ group ['id ' ]) {
132
+ return true ;
133
+ }
132
134
}
133
135
134
136
$ request = [
@@ -170,32 +172,36 @@ public function canViewItem() {
170
172
$ ticket_user_table = Ticket_User::getTable ();
171
173
$ item_ticket_table = Item_Ticket::getTable ();
172
174
$ request = [
173
- 'SELECT ' => Ticket_User::getTableField (User::getForeignKeyField ()),
175
+ 'SELECT ' => [
176
+ Ticket_User::getTableField (User::getForeignKeyField ()),
177
+ Ticket::getTableField ('id ' ),
178
+ ],
174
179
'FROM ' => $ ticket_user_table ,
175
180
'INNER JOIN ' => [
176
181
$ ticket_table => [
177
182
'FKEY ' => [
178
183
$ ticket_table => 'id ' ,
179
184
$ ticket_user_table => 'tickets_id ' ,
185
+ ['AND ' => [
186
+ Ticket_User::getTableField (User::getForeignKeyField ()) => $ currentUser ,
187
+ ]],
180
188
],
181
189
],
182
190
$ item_ticket_table => [
183
191
'FKEY ' => [
184
192
$ item_ticket_table => 'tickets_id ' ,
185
193
$ ticket_table => 'id ' ,
186
194
['AND ' => [
187
- Item_Ticket::getTableField ('itemtype ' ) => self ::getType (),
195
+ Item_Ticket::getTableField ('itemtype ' ) => self ::getType (),
196
+ Item_Ticket::getTableField ('items_id ' ) => $ this ->getID (),
188
197
]],
189
198
],
190
199
],
191
-
192
200
]
193
201
];
194
202
195
- foreach ($ DB ->request ($ request ) as $ row ) {
196
- if ($ row [User::getForeignKeyField ()] == $ currentUser ) {
197
- return true ;
198
- }
203
+ if ($ DB ->request ($ request )->count () > 0 ) {
204
+ return true ;
199
205
}
200
206
201
207
return false ;
0 commit comments