kmail Library API Documentation

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() {} // for QValueVector 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 00065 enum ACLPermissions { 00066 List = 1, 00067 Read = 2, 00068 WriteFlags = 4, 00069 Insert = 8, 00070 Create = 16, 00071 Delete = 32, 00072 Administer = 64, 00073 Post = 128, 00074 // alias for "all read/write permissions except admin" 00075 AllWrite = List | Read | WriteFlags | Insert | Post | Create | Delete, 00076 // alias for "all permissions" 00077 All = List | Read | WriteFlags | Insert | Post | Create | Delete | Administer 00078 }; 00080 KIO::SimpleJob* setACL( KIO::Slave* slave, const KURL& url, const QString& user, unsigned int permissions ); 00081 00082 class DeleteACLJob; 00084 DeleteACLJob* deleteACL( KIO::Slave* slave, const KURL& url, const QString& user ); 00085 00086 class GetACLJob; 00088 GetACLJob* getACL( KIO::Slave* slave, const KURL& url ); 00089 00090 class GetUserRightsJob; 00092 GetUserRightsJob* getUserRights( KIO::Slave* slave, const KURL& url ); 00093 00094 class MultiSetACLJob; 00096 MultiSetACLJob* multiSetACL( KIO::Slave* slave, const KURL& url, const ACLList& acl ); 00097 00099 class GetACLJob : public KIO::SimpleJob 00100 { 00101 Q_OBJECT 00102 public: 00103 GetACLJob( const KURL& url, const QByteArray &packedArgs, 00104 bool showProgressInfo ); 00105 00106 const ACLList& entries() const { return m_entries; } 00107 00108 protected slots: 00109 void slotInfoMessage( KIO::Job*, const QString& ); 00110 private: 00111 ACLList m_entries; 00112 }; 00113 00115 class GetUserRightsJob : public KIO::SimpleJob 00116 { 00117 Q_OBJECT 00118 public: 00119 GetUserRightsJob( const KURL& url, const QByteArray &packedArgs, 00120 bool showProgressInfo ); 00121 unsigned int permissions() const { return m_permissions; } 00122 00123 protected slots: 00124 void slotInfoMessage( KIO::Job*, const QString& ); 00125 private: 00126 unsigned int m_permissions; 00127 }; 00128 00131 class DeleteACLJob : public KIO::SimpleJob 00132 { 00133 Q_OBJECT 00134 public: 00135 DeleteACLJob( const KURL& url, const QString& userId, 00136 const QByteArray &packedArgs, 00137 bool showProgressInfo ); 00138 00139 QString userId() const { return mUserId; } 00140 00141 private: 00142 QString mUserId; 00143 }; 00144 00146 class MultiSetACLJob : public KIO::Job { 00147 Q_OBJECT 00148 00149 public: 00150 MultiSetACLJob( KIO::Slave* slave, const KURL& url, const ACLList& acl, bool showProgressInfo ); 00151 00152 signals: 00153 // Emitted when a given user's permissions were successfully changed. 00154 // This allows the caller to keep track of what exactly was done (and handle errors better) 00155 void aclChanged( const QString& userId, int permissions ); 00156 00157 protected slots: 00158 virtual void slotStart(); 00159 virtual void slotResult( KIO::Job *job ); 00160 00161 private: 00162 KIO::Slave* mSlave; 00163 const KURL mUrl; 00164 const ACLList mACLList; 00165 ACLList::const_iterator mACLListIterator; 00166 }; 00167 00168 00169 #ifndef NDEBUG 00170 QString permissionsToString( unsigned int permissions ); 00171 #endif 00172 } 00173 00174 } // namespace 00175 00176 #endif /* KMACLJOBS_H */
KDE Logo
This file is part of the documentation for kmail Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Aug 27 12:52:01 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003