* do not add a KStandardAction manually to actionCollection()
[kdenetwork.git] / krfb / invitation.cpp
blob91441bef3f7e9b8bf3150bd5385f0a6d84fb4ffe
1 /***************************************************************************
2 Copyright 2002 Tim Jansen <tim@tjansen.de>
3 Copyright 2002 Stefan Taferner <taferner@kde.org>
4 ***************************************************************************/
6 /***************************************************************************
7 * *
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. *
12 * *
13 ***************************************************************************/
15 #include "invitation.h"
17 #include <KConfigGroup>
18 #include <KDebug>
19 #include <KRandom>
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) {
25 QString str;
26 while (length)
28 int r = KRandom::random() % 62;
29 r += 48;
30 if (r > 57)
31 r += 7;
32 if (r > 90)
33 r += 6;
34 char c = char(r);
35 if ((c == 'i') ||
36 (c == 'I') ||
37 (c == '1') ||
38 (c == 'o') ||
39 (c == 'O') ||
40 (c == '0'))
41 continue;
42 str += c;
43 length--;
45 return str;
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;
74 return *this;
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 {
85 return m_password;
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;