code: public function createPageList()
  	{
  		$this->import(BackendUser::class, 'User');
  
  		if ($this->User->isAdmin)
  		{
  			return $this->doCreatePageList();
  		}
  
  		$return = '';
  		$processed = array();
  
  		foreach ($this->eliminateNestedPages($this->User->pagemounts) as $page)
  		{
  			$objPage = PageModel::findWithDetails($page);
  
  			// Root page mounted
  			if ($objPage->type == 'root')
  			{
  				$title = $objPage->title;
  				$start = $objPage->id;
  			}
  
  			// Regular page mounted
  			else
  			{
  				$title = $objPage->rootTitle;
  				$start = $objPage->rootId;
  			}
  
  			// Do not process twice
  			if (\in_array($start, $processed))
  			{
  				continue;
  			}
  
  			// Skip websites that run under a different domain (see #2387)
  			if ($objPage->domain && $objPage->domain != Environment::get('host'))
  			{
  				continue;
  			}
  
  			$processed[] = $start;
  			$return .= '<optgroup label="' . $title . '">' . $this->doCreatePageList($start) . '</optgroup>';
  		}
  
  		return $return;
  	}
docs: Get all allowed pages and return them as string
  
  @return string