#ifndef __kio_authinfo_h__
#define __kio_authinfo_h__
#include <qdatastream.h>
#include <qstring.h>
#include <kurl.h>
namespace KIO
{
/**
* This class is intended to make it easier to prompt for,
* cache and retrieve authorization information.
*
* NOTE: If you extend this class to add additional paramters
* do not forget to overload the stream insertion and extraction
* operators ("<<" and ">>") so that the added data can be
* correctly serialzed.
*
* @short Object to hold authorization information
* @author Dawit Alemayehu <adawit@kde.org>
*/
class AuthInfo
{
friend QDataStream& operator<< (QDataStream& s, const AuthInfo& a);
friend QDataStream& operator>> (QDataStream& s, AuthInfo& a);
public:
/**
* Default constructor.
*/
AuthInfo();
/**
* Copy constructor.
*/
AuthInfo( const AuthInfo& info );
/**
* Overloaded equal to operator.
*/
AuthInfo& operator=( const AuthInfo& info );
/**
* Use this method to check if the object was modified.
*/
bool isModified() const { return modified; }
/**
* Use this method to indicate that this object has been modified.
*/
void setModified( bool flag ) { modified = flag; }
/**
* URL for which authentication is to be stored. This
* field is required when attempting to cache authorization
* and retrieve it. However, it is not needed when prompting
* the user for authorization info. [required except when
* prompting for password]
*/
KURL url;
/**
* The username supplied by the user. [required for caching].
*/
QString username;
/**
* Password specified by the user. [required for caching]
*/
QString password;
/**
* Information to display to user in the password
* dialog. [optional]
*/
QString prompt;
/**
* Text displayed in the title bar of password
* dialog. [optional]
*/
QString caption;
/**
* additional comment to show to user. [optional]
*/
QString comment;
/**
* Text to be used as additional comment (eg: "Command:"). [optional]
*/
QString commentLabel;
/**
* Field used to store a unique identity so that multiple
* passwords can be cached for one resource (URI). [optional]
*/
QString realmValue;
/**
* Field to store any extra information for protocols that
* need it. [optional]
*/
QString digestInfo;
/**
* Flag that, if set, indicates whether a path match should be
* performed when requesting for cached authorization. A path
* is deemed to be a match if it is equal to or is a subset of the
* cached path. For example, if stored path is /foo/bar and the
* request is for the same domain with path set to /foo/bar/acme,
* then it is a match. However, if the path is set to /foo, then
* this will result in the request being rejected. [optional]
*/
bool verifyPath;
/**
* Flag which if set forces the username field to be read-only.
* This is set to false by default. [optional]
*/
bool readOnly;
/**
* Flag to indicate the persistence of the given password.
*
* This is a two-way flag when set before calling openPassDlg
* makes the "keep Password" check box will visible to the user.
* In return the flag will indicate the state of the check box.
* By default if the flag is checked the password will be cached
* for the entire life of the current KDE session otherwise the
* cached password is deleted right after the application using
* it has been closed.
*
*/
bool keepPassword;
protected:
bool modified;
};
};
#endif
| Generated by: faure on ftp.kde.com on Wed Jun 20 13:26:37 2001, using kdoc 2.0a53. |