mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-28 03:29:20 +03:00
Properly backslash escape IMAP folder flags
This commit is contained in:
parent
544d2272c8
commit
34efa2205c
3 changed files with 39 additions and 41 deletions
|
|
@ -18,10 +18,10 @@ namespace MailSo\Imap\Enumerations;
|
|||
*/
|
||||
abstract class MessageFlag
|
||||
{
|
||||
const RECENT = '\Recent';
|
||||
const SEEN = '\Seen';
|
||||
const DELETED = '\Deleted';
|
||||
const FLAGGED = '\Flagged';
|
||||
const ANSWERED = '\Answered';
|
||||
const DRAFT = '\Draft';
|
||||
const RECENT = '\\Recent';
|
||||
const SEEN = '\\Seen';
|
||||
const DELETED = '\\Deleted';
|
||||
const FLAGGED = '\\Flagged';
|
||||
const ANSWERED = '\\Answered';
|
||||
const DRAFT = '\\Draft';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -116,12 +116,12 @@ class Folder
|
|||
|
||||
public function IsSelectable() : bool
|
||||
{
|
||||
return !\in_array('\noselect', $this->aFlagsLowerCase);
|
||||
return !\in_array('\\noselect', $this->aFlagsLowerCase);
|
||||
}
|
||||
|
||||
public function IsInbox() : bool
|
||||
{
|
||||
return 'INBOX' === \strtoupper($this->sFullNameRaw) || \in_array('\inbox', $this->aFlagsLowerCase);
|
||||
return 'INBOX' === \strtoupper($this->sFullNameRaw) || \in_array('\\inbox', $this->aFlagsLowerCase);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ class Folder implements \JsonSerializable
|
|||
public static function NewNonExistenInstance(string $sFullNameRaw, string $sDelimiter) : self
|
||||
{
|
||||
return new self(
|
||||
new \MailSo\Imap\Folder($sFullNameRaw, $sDelimiter, array('\NoSelect')), true, false);
|
||||
new \MailSo\Imap\Folder($sFullNameRaw, $sDelimiter, array('\\Noselect')), true, false);
|
||||
}
|
||||
|
||||
public function Name() : string
|
||||
|
|
@ -188,43 +188,41 @@ class Folder implements \JsonSerializable
|
|||
public function GetFolderListType() : int
|
||||
{
|
||||
$aFlags = $this->oImapFolder->FlagsLowerCase();
|
||||
$iListType = \MailSo\Imap\Enumerations\FolderType::USER;
|
||||
|
||||
switch (true)
|
||||
{
|
||||
case \in_array('\inbox', $aFlags) || 'INBOX' === \strtoupper($this->FullNameRaw()):
|
||||
$iListType = \MailSo\Imap\Enumerations\FolderType::INBOX;
|
||||
break;
|
||||
case \in_array('\sent', $aFlags):
|
||||
case \in_array('\sentmail', $aFlags):
|
||||
$iListType = \MailSo\Imap\Enumerations\FolderType::SENT;
|
||||
break;
|
||||
case \in_array('\drafts', $aFlags):
|
||||
$iListType = \MailSo\Imap\Enumerations\FolderType::DRAFTS;
|
||||
break;
|
||||
case \in_array('\junk', $aFlags):
|
||||
case \in_array('\spam', $aFlags):
|
||||
$iListType = \MailSo\Imap\Enumerations\FolderType::JUNK;
|
||||
break;
|
||||
case \in_array('\trash', $aFlags):
|
||||
case \in_array('\bin', $aFlags):
|
||||
$iListType = \MailSo\Imap\Enumerations\FolderType::TRASH;
|
||||
break;
|
||||
case \in_array('\important', $aFlags):
|
||||
$iListType = \MailSo\Imap\Enumerations\FolderType::IMPORTANT;
|
||||
break;
|
||||
case \in_array('\flagged', $aFlags):
|
||||
case \in_array('\starred', $aFlags):
|
||||
$iListType = \MailSo\Imap\Enumerations\FolderType::FLAGGED;
|
||||
break;
|
||||
case \in_array('\all', $aFlags):
|
||||
case \in_array('\allmail', $aFlags):
|
||||
case \in_array('\archive', $aFlags):
|
||||
$iListType = \MailSo\Imap\Enumerations\FolderType::ALL;
|
||||
break;
|
||||
case \in_array('\\inbox', $aFlags) || 'INBOX' === \strtoupper($this->FullNameRaw()):
|
||||
return \MailSo\Imap\Enumerations\FolderType::INBOX;
|
||||
|
||||
case \in_array('\\sent', $aFlags):
|
||||
case \in_array('\\sentmail', $aFlags):
|
||||
return \MailSo\Imap\Enumerations\FolderType::SENT;
|
||||
|
||||
case \in_array('\\drafts', $aFlags):
|
||||
return \MailSo\Imap\Enumerations\FolderType::DRAFTS;
|
||||
|
||||
case \in_array('\\junk', $aFlags):
|
||||
case \in_array('\\spam', $aFlags):
|
||||
return \MailSo\Imap\Enumerations\FolderType::JUNK;
|
||||
|
||||
case \in_array('\\trash', $aFlags):
|
||||
case \in_array('\\bin', $aFlags):
|
||||
return \MailSo\Imap\Enumerations\FolderType::TRASH;
|
||||
|
||||
case \in_array('\\important', $aFlags):
|
||||
return \MailSo\Imap\Enumerations\FolderType::IMPORTANT;
|
||||
|
||||
case \in_array('\\flagged', $aFlags):
|
||||
case \in_array('\\starred', $aFlags):
|
||||
return \MailSo\Imap\Enumerations\FolderType::FLAGGED;
|
||||
|
||||
case \in_array('\\all', $aFlags):
|
||||
case \in_array('\\allmail', $aFlags):
|
||||
case \in_array('\\archive', $aFlags):
|
||||
return \MailSo\Imap\Enumerations\FolderType::ALL;
|
||||
}
|
||||
|
||||
return $iListType;
|
||||
return \MailSo\Imap\Enumerations\FolderType::USER;
|
||||
}
|
||||
|
||||
public function jsonSerialize()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue