acljobs.h
00001
00032 #ifndef KMACLJOBS_H
00033 #define KMACLJOBS_H
00034
00035 #include <kio/job.h>
00036 #include <qvaluevector.h>
00037
00038 namespace KMail {
00039
00041 struct ACLListEntry {
00042 ACLListEntry() {}
00043 ACLListEntry( const QString& u, const QString& irl, int p )
00044 : userId( u ), internalRightsList( irl ), permissions( p ), changed( false ) {}
00045 QString userId;
00046 QString internalRightsList;
00047 int permissions;
00048 bool changed;
00049 };
00050
00051 typedef QValueVector<ACLListEntry> ACLList;
00052
00060 namespace ACLJobs {
00061
00064 enum ACLPermissions {
00065 List = 1,
00066 Read = 2,
00067 WriteFlags = 4,
00068 Insert = 8,
00069 Create = 16,
00070 Delete = 32,
00071 Administer = 64,
00072 Post = 128,
00073
00074 AllWrite = List | Read | WriteFlags | Insert | Post | Create | Delete,
00075
00076 All = List | Read | WriteFlags | Insert | Post | Create | Delete | Administer
00077 };
00079 KIO::SimpleJob* setACL( KIO::Slave* slave, const KURL& url, const QString& user, unsigned int permissions );
00080
00081 class DeleteACLJob;
00083 DeleteACLJob* deleteACL( KIO::Slave* slave, const KURL& url, const QString& user );
00084
00085 class GetACLJob;
00087 GetACLJob* getACL( KIO::Slave* slave, const KURL& url );
00088
00089 class GetUserRightsJob;
00091 GetUserRightsJob* getUserRights( KIO::Slave* slave, const KURL& url );
00092
00093 class MultiSetACLJob;
00095 MultiSetACLJob* multiSetACL( KIO::Slave* slave, const KURL& url, const ACLList& acl );
00096
00098 class GetACLJob : public KIO::SimpleJob
00099 {
00100 Q_OBJECT
00101 public:
00102 GetACLJob( const KURL& url, const QByteArray &packedArgs,
00103 bool showProgressInfo );
00104
00105 const ACLList& entries() const { return m_entries; }
00106
00107 protected slots:
00108 void slotInfoMessage( KIO::Job*, const QString& );
00109 private:
00110 ACLList m_entries;
00111 };
00112
00114 class GetUserRightsJob : public KIO::SimpleJob
00115 {
00116 Q_OBJECT
00117 public:
00118 GetUserRightsJob( const KURL& url, const QByteArray &packedArgs,
00119 bool showProgressInfo );
00120 unsigned int permissions() const { return m_permissions; }
00121
00122 protected slots:
00123 void slotInfoMessage( KIO::Job*, const QString& );
00124 private:
00125 unsigned int m_permissions;
00126 };
00127
00130 class DeleteACLJob : public KIO::SimpleJob
00131 {
00132 Q_OBJECT
00133 public:
00134 DeleteACLJob( const KURL& url, const QString& userId,
00135 const QByteArray &packedArgs,
00136 bool showProgressInfo );
00137
00138 QString userId() const { return mUserId; }
00139
00140 private:
00141 QString mUserId;
00142 };
00143
00145 class MultiSetACLJob : public KIO::Job {
00146 Q_OBJECT
00147
00148 public:
00149 MultiSetACLJob( KIO::Slave* slave, const KURL& url, const ACLList& acl, bool showProgressInfo );
00150
00151 signals:
00152
00153
00154 void aclChanged( const QString& userId, int permissions );
00155
00156 protected slots:
00157 virtual void slotStart();
00158 virtual void slotResult( KIO::Job *job );
00159
00160 private:
00161 KIO::Slave* mSlave;
00162 const KURL mUrl;
00163 const ACLList mACLList;
00164 ACLList::const_iterator mACLListIterator;
00165 };
00166
00167
00168 #ifndef NDEBUG
00169 QString permissionsToString( unsigned int permissions );
00170 #endif
00171 }
00172
00173 }
00174
00175 #endif
This file is part of the documentation for kmail Library Version 3.3.2.