File indexing completed on 2024-05-12 05:17:25
0001 /* 0002 Copyright (c) 2009 Andras Mantia <amantia@kde.org> 0003 0004 This library is free software; you can redistribute it and/or modify it 0005 under the terms of the GNU Library General Public License as published by 0006 the Free Software Foundation; either version 2 of the License, or (at your 0007 option) any later version. 0008 0009 This library is distributed in the hope that it will be useful, but WITHOUT 0010 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 0011 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public 0012 License for more details. 0013 0014 You should have received a copy of the GNU Library General Public License 0015 along with this library; see the file COPYING.LIB. If not, write to the 0016 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 0017 02110-1301, USA. 0018 */ 0019 0020 #include "setacljob.h" 0021 0022 #include "acljobbase_p.h" 0023 #include "message_p.h" 0024 #include "session_p.h" 0025 #include "rfccodecs.h" 0026 0027 namespace KIMAP2 0028 { 0029 class SetAclJobPrivate : public AclJobBasePrivate 0030 { 0031 public: 0032 SetAclJobPrivate(Session *session, const QString &name) : AclJobBasePrivate(session, name) {} 0033 ~SetAclJobPrivate() { } 0034 }; 0035 } 0036 0037 using namespace KIMAP2; 0038 0039 SetAclJob::SetAclJob(Session *session) 0040 : AclJobBase(*new SetAclJobPrivate(session, "SetAcl")) 0041 { 0042 } 0043 0044 SetAclJob::~SetAclJob() 0045 { 0046 } 0047 0048 void SetAclJob::doStart() 0049 { 0050 Q_D(SetAclJob); 0051 QByteArray r = Acl::rightsToString(d->rightList); 0052 if (d->modifier == Add) { 0053 r.prepend('+'); 0054 } else if (d->modifier == Remove) { 0055 r.prepend('-'); 0056 } 0057 d->sendCommand("SETACL", '\"' + KIMAP2::encodeImapFolderName(d->mailBox.toUtf8()) + "\" \"" + d->id + "\" \"" + r + '\"'); 0058 } 0059 0060 void SetAclJob::setRights(AclModifier modifier, Acl::Rights rights) 0061 { 0062 Q_D(SetAclJob); 0063 d->setRights(modifier, rights); 0064 } 0065 0066 void SetAclJob::setIdentifier(const QByteArray &identifier) 0067 { 0068 Q_D(SetAclJob); 0069 d->setIdentifier(identifier); 0070 } 0071 0072 QByteArray SetAclJob::identifier() 0073 { 0074 Q_D(SetAclJob); 0075 return d->identifier(); 0076 }