/**
  * Find users with a specific permission.
  *
  * @param string $permission The permission as string.
  *
  * @return \UserModel[]
  */
 public function findUsersWithPermission($permission)
 {
     $users = array();
     $result = $this->prepareStatement()->execute($permission, $permission);
     while ($result->next()) {
         $model = $this->registry->fetch('tl_user', $result->id);
         if (!$model) {
             $model = new \UserModel($result);
         }
         $users[] = $model;
     }
     return $users;
 }
    /**
     * Find a translated page.
     *
     * @param int    $pageId   Current page.
     * @param string $language Page language.
     *
     * @return PageModel|null
     */
    public function findTranslatedPage($pageId, $language)
    {
        $query = <<<SQL
SELECT p.* FROM tl_page p
JOIN tl_page r ON r.id = p.cca_rr_root AND r.language = ?
WHERE p.languageMain = ?
SQL;
        $result = $this->database->prepare($query)->limit(1)->execute($language, $pageId);
        if ($result->numRows < 1) {
            return null;
        }
        $page = $this->modelRegistry->fetch('tl_page', $result->id);
        if ($page) {
            return $page;
        }
        return new PageModel($result);
    }