KIMAP Library
listrightsjob.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "listrightsjob.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 ListRightsJobPrivate : public AclJobBasePrivate
00033 {
00034 public:
00035 ListRightsJobPrivate( Session *session, const QString& name ) : AclJobBasePrivate(session, name), defaultRights(Acl::None) {}
00036 ~ListRightsJobPrivate() { }
00037
00038 Acl::Rights defaultRights;
00039 QList<Acl::Rights> possibleRights;
00040
00041 };
00042 }
00043
00044 using namespace KIMAP;
00045
00046 ListRightsJob::ListRightsJob( Session *session )
00047 : AclJobBase(*new ListRightsJobPrivate(session, i18n("ListRights")))
00048 {
00049
00050 }
00051
00052 ListRightsJob::~ListRightsJob()
00053 {
00054 }
00055
00056 void ListRightsJob::doStart()
00057 {
00058 Q_D(ListRightsJob);
00059
00060 d->tags << d->sessionInternal()->sendCommand( "LISTRIGHTS", '\"' + KIMAP::encodeImapFolderName( d->mailBox.toUtf8() ) + "\" \"" + d->id + "\"" );
00061 }
00062
00063 void ListRightsJob::handleResponse( const Message &response )
00064 {
00065 Q_D(ListRightsJob);
00066
00067 if (handleErrorReplies(response) == NotHandled) {
00068 if ( response.content.size() >= 4
00069 && response.content[1].toString() == "LISTRIGHTS" ) {
00070 QByteArray s = response.content[4].toString();
00071 d->defaultRights = Acl::rightsFromString(s);
00072 int i = 5;
00073 while ( i < response.content.size()) {
00074 s = response.content[i].toString();
00075 d->possibleRights.append(Acl::rightsFromString(s));
00076 i++;
00077 }
00078 }
00079 }
00080 }
00081
00082
00083 void ListRightsJob::setIdentifier( const QByteArray &identifier )
00084 {
00085 Q_D(ListRightsJob);
00086 d->setIdentifier(identifier);
00087 }
00088
00089 QByteArray ListRightsJob::identifier()
00090 {
00091 Q_D(ListRightsJob);
00092 return d->identifier();
00093 }
00094
00095 Acl::Rights ListRightsJob::defaultRights()
00096 {
00097 Q_D(ListRightsJob);
00098 return d->defaultRights;
00099 }
00100
00101 QList<Acl::Rights> ListRightsJob::possibleRights()
00102 {
00103 Q_D(ListRightsJob);
00104 return d->possibleRights;
00105 }
00106
00107
00108 #include "listrightsjob.moc"