KIMAP Library
setacljob.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "setacljob.h"
00021
00022 #include <KDE/KLocale>
00023 #include <KDE/KDebug>
00024
00025 #include "acljobbase_p.h"
00026 #include "message_p.h"
00027 #include "session_p.h"
00028 #include "rfccodecs.h"
00029
00030 namespace KIMAP
00031 {
00032 class SetAclJobPrivate : public AclJobBasePrivate
00033 {
00034 public:
00035 SetAclJobPrivate( Session *session, const QString& name ) : AclJobBasePrivate(session, name) {}
00036 ~SetAclJobPrivate() { }
00037 };
00038 }
00039
00040 using namespace KIMAP;
00041
00042 SetAclJob::SetAclJob( Session *session )
00043 : AclJobBase(*new SetAclJobPrivate(session, i18n("SetAcl")))
00044 {
00045
00046 }
00047
00048 SetAclJob::~SetAclJob()
00049 {
00050 }
00051
00052 void SetAclJob::doStart()
00053 {
00054 Q_D(SetAclJob);
00055 QByteArray r = Acl::rightsToString( d->rightList );
00056 if (d->modifier == Add) {
00057 r.prepend('+');
00058 } else if (d->modifier == Remove) {
00059 r.prepend('-');
00060 }
00061 d->tag = d->sessionInternal()->sendCommand( "SETACL", '\"' + KIMAP::encodeImapFolderName( d->mailBox.toUtf8() ) + "\" \"" + d->id + "\" \"" + r +'\"');
00062 }
00063
00064 void SetAclJob::setRights(AclModifier modifier, Acl::Rights rights)
00065 {
00066 Q_D(SetAclJob);
00067 d->setRights(modifier, rights);
00068 }
00069
00070 void SetAclJob::setIdentifier( const QByteArray &identifier )
00071 {
00072 Q_D(SetAclJob);
00073 d->setIdentifier(identifier);
00074 }
00075
00076 QByteArray SetAclJob::identifier()
00077 {
00078 Q_D(SetAclJob);
00079 return d->identifier();
00080 }
00081
00082 #include "setacljob.moc"