+ if users_list.select { |u| u.is_admin }.any?
+ return self
+ end
+
+ # Collect the uuids for each user and any groups readable by each user.
+ user_uuids = users_list.map { |u| u.uuid }
+ uuid_list = user_uuids + users_list.flat_map { |u| u.groups_i_can(:read) }
+ sql_conds = []
+ sql_params = []
+ sql_table = kwargs.fetch(:table_name, table_name)
+ or_object_uuid = ''
+
+ # This row is owned by a member of users_list, or owned by a group
+ # readable by a member of users_list
+ # or
+ # This row uuid is the uuid of a member of users_list
+ # or
+ # A permission link exists ('write' and 'manage' implicitly include
+ # 'read') from a member of users_list, or a group readable by users_list,
+ # to this row, or to the owner of this row (see join() below).
+ sql_conds += ["#{sql_table}.uuid in (?)"]
+ sql_params += [user_uuids]
+
+ if uuid_list.any?
+ sql_conds += ["#{sql_table}.owner_uuid in (?)"]
+ sql_params += [uuid_list]