1 /***************************************************************************
2 Copyright 2002 Tim Jansen <tim@tjansen.de>
3 Copyright 2002 Stefan Taferner <taferner@kde.org>
4 ***************************************************************************/
6 /***************************************************************************
8 * This program is free software; you can redistribute it and/or modify *
9 * it under the terms of the GNU General Public License as published by *
10 * the Free Software Foundation; either version 2 of the License, or *
11 * (at your option) any later version. *
13 ***************************************************************************/
15 #include "invitation.h"
17 #include <KConfigGroup>
20 #include <KStringHandler>
22 // a random string that doesn't contain i, I, o, O, 1, 0
23 // based on KRandom::randomString()
24 static QString
readableRandomString(int length
) {
28 int r
= KRandom::random() % 62;
48 Invitation::Invitation()
50 m_password
= readableRandomString(4)+'-'+readableRandomString(3);
51 m_creationTime
= QDateTime::currentDateTime();
52 m_expirationTime
= QDateTime::currentDateTime().addSecs(INVITATION_DURATION
);
55 Invitation::Invitation(const Invitation
&x
)
56 : m_password(x
.m_password
), m_creationTime(x
.m_creationTime
), m_expirationTime(x
.m_expirationTime
)
60 Invitation::Invitation(const KConfigGroup
&config
) {
61 m_password
= KStringHandler::obscure(config
.readEntry("password", QString()));
62 kDebug() << "read: " << config
.readEntry("password", QString()) << " = " << m_password
;
63 m_creationTime
= config
.readEntry("creation", QDateTime());
64 m_expirationTime
= config
.readEntry("expiration", QDateTime());
67 Invitation::~Invitation() {
70 Invitation
&Invitation::operator= (const Invitation
&x
) {
71 m_password
= x
.m_password
;
72 m_creationTime
= x
.m_creationTime
;
73 m_expirationTime
= x
.m_expirationTime
;
77 void Invitation::save(KConfigGroup
&config
) const
79 config
.writeEntry("password", KStringHandler::obscure(m_password
));
80 config
.writeEntry("creation", m_creationTime
);
81 config
.writeEntry("expiration", m_expirationTime
);
84 QString
Invitation::password() const {
88 QDateTime
Invitation::expirationTime() const {
89 return m_expirationTime
;
92 QDateTime
Invitation::creationTime() const {
93 return m_creationTime
;
96 bool Invitation::isValid() const {
97 return m_expirationTime
> QDateTime::currentDateTime();
100 bool Invitation::operator ==(const Invitation
& ot
)
102 return m_creationTime
== ot
.m_creationTime
&& m_password
== ot
.m_password
;