X-Git-Url: https://code.delx.au/offlineimap/blobdiff_plain/2efc4589a096a6d67b2dfb61a2d1b543cfb88132..c305d63e005c8ca1ae57f1ec54f023e0d0069824:/offlineimap/folder/IMAP.py diff --git a/offlineimap/folder/IMAP.py b/offlineimap/folder/IMAP.py index 12a9660..df1b329 100644 --- a/offlineimap/folder/IMAP.py +++ b/offlineimap/folder/IMAP.py @@ -424,12 +424,17 @@ class IMAPFolder(BaseFolder): self.addmessagesflags_noconvert(uidlist, ['T']) imapobj = self.imapserver.acquireconnection() try: - try: - imapobj.select(self.getfullname()) - except imapobj.readonly: + # Making sure, that we have the necessary rights + # ensuring that we access readonly: python's braindead imaplib.py + # otherwise might raise an exception during the myrights() call + imapobj.select(self.getfullname(),readonly=1) + if not 'd' in imapobj.myrights(self.getfullname())[1][0].split()[1]: + # no delete/expunge rights UIBase.getglobalui().deletereadonly(self, uidlist) return + if self.expunge: + imapobj.select(self.getfullname()) assert(imapobj.expunge()[0] == 'OK') finally: self.imapserver.releaseconnection(imapobj)