Commit b7ab2d97 authored by Max-Wilhelm Bruker's avatar Max-Wilhelm Bruker
Browse files

support for women

parent 4777d18f
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -11,12 +11,13 @@ CardToMove::CardToMove(int _cardId, const QString &_pt, bool _tapped) ...@@ -11,12 +11,13 @@ CardToMove::CardToMove(int _cardId, const QString &_pt, bool _tapped)
insertItem(new SerializableItem_Bool("tapped", _tapped)); insertItem(new SerializableItem_Bool("tapped", _tapped));
} }
ServerInfo_User::ServerInfo_User(const QString &_name, int _userLevel, const QString &_realName, const QString &_country, const QByteArray &_avatarBmp) ServerInfo_User::ServerInfo_User(const QString &_name, int _userLevel, const QString &_realName, Gender _gender, const QString &_country, const QByteArray &_avatarBmp)
: SerializableItem_Map("user") : SerializableItem_Map("user")
{ {
insertItem(new SerializableItem_String("name", _name)); insertItem(new SerializableItem_String("name", _name));
insertItem(new SerializableItem_Int("userlevel", _userLevel)); insertItem(new SerializableItem_Int("userlevel", _userLevel));
insertItem(new SerializableItem_String("real_name", _realName)); insertItem(new SerializableItem_String("real_name", _realName));
insertItem(new SerializableItem_Int("gender", _gender));
insertItem(new SerializableItem_String("country", _country)); insertItem(new SerializableItem_String("country", _country));
insertItem(new SerializableItem_ByteArray("avatar_bmp", _avatarBmp)); insertItem(new SerializableItem_ByteArray("avatar_bmp", _avatarBmp));
} }
...@@ -27,6 +28,7 @@ ServerInfo_User::ServerInfo_User(const ServerInfo_User *other, bool complete) ...@@ -27,6 +28,7 @@ ServerInfo_User::ServerInfo_User(const ServerInfo_User *other, bool complete)
insertItem(new SerializableItem_String("name", other->getName())); insertItem(new SerializableItem_String("name", other->getName()));
insertItem(new SerializableItem_Int("userlevel", other->getUserLevel())); insertItem(new SerializableItem_Int("userlevel", other->getUserLevel()));
insertItem(new SerializableItem_String("real_name", other->getRealName())); insertItem(new SerializableItem_String("real_name", other->getRealName()));
insertItem(new SerializableItem_Int("gender", other->getGender()));
insertItem(new SerializableItem_String("country", other->getCountry())); insertItem(new SerializableItem_String("country", other->getCountry()));
insertItem(new SerializableItem_ByteArray("avatar_bmp", complete ? other->getAvatarBmp() : QByteArray())); insertItem(new SerializableItem_ByteArray("avatar_bmp", complete ? other->getAvatarBmp() : QByteArray()));
} }
......
...@@ -41,16 +41,22 @@ public: ...@@ -41,16 +41,22 @@ public:
IsNothing = 0x00, IsNothing = 0x00,
IsUser = 0x01, IsUser = 0x01,
IsRegistered = 0x02, IsRegistered = 0x02,
IsJudge = 0x04, IsModerator = 0x04,
IsAdmin = 0x08 IsAdmin = 0x08
}; };
ServerInfo_User(const QString &_name = QString(), int _userLevel = IsNothing, const QString &_realName = QString(), const QString &_country = QString(), const QByteArray &_avatarBmp = QByteArray()); enum Gender {
GenderUnknown = -1,
Male = 0,
Female = 1
};
ServerInfo_User(const QString &_name = QString(), int _userLevel = IsNothing, const QString &_realName = QString(), Gender _gender = GenderUnknown, const QString &_country = QString(), const QByteArray &_avatarBmp = QByteArray());
ServerInfo_User(const ServerInfo_User *other, bool complete = true); ServerInfo_User(const ServerInfo_User *other, bool complete = true);
static SerializableItem *newItem() { return new ServerInfo_User; } static SerializableItem *newItem() { return new ServerInfo_User; }
QString getName() const { return static_cast<SerializableItem_String *>(itemMap.value("name"))->getData(); } QString getName() const { return static_cast<SerializableItem_String *>(itemMap.value("name"))->getData(); }
int getUserLevel() const { return static_cast<SerializableItem_Int *>(itemMap.value("userlevel"))->getData(); } int getUserLevel() const { return static_cast<SerializableItem_Int *>(itemMap.value("userlevel"))->getData(); }
void setUserLevel(int _userLevel) { static_cast<SerializableItem_Int *>(itemMap.value("userlevel"))->setData(_userLevel); } void setUserLevel(int _userLevel) { static_cast<SerializableItem_Int *>(itemMap.value("userlevel"))->setData(_userLevel); }
QString getRealName() const { return static_cast<SerializableItem_String *>(itemMap.value("real_name"))->getData(); } QString getRealName() const { return static_cast<SerializableItem_String *>(itemMap.value("real_name"))->getData(); }
Gender getGender() const { return static_cast<Gender>(static_cast<SerializableItem_Int *>(itemMap.value("gender"))->getData()); }
QString getCountry() const { return static_cast<SerializableItem_String *>(itemMap.value("country"))->getData(); } QString getCountry() const { return static_cast<SerializableItem_String *>(itemMap.value("country"))->getData(); }
QByteArray getAvatarBmp() const { return static_cast<SerializableItem_ByteArray *>(itemMap.value("avatar_bmp"))->getData(); } QByteArray getAvatarBmp() const { return static_cast<SerializableItem_ByteArray *>(itemMap.value("avatar_bmp"))->getData(); }
}; };
......
...@@ -104,6 +104,7 @@ CREATE TABLE IF NOT EXISTS `cockatrice_users` ( ...@@ -104,6 +104,7 @@ CREATE TABLE IF NOT EXISTS `cockatrice_users` (
`admin` tinyint(1) NOT NULL, `admin` tinyint(1) NOT NULL,
`name` varchar(35) NOT NULL, `name` varchar(35) NOT NULL,
`realname` varchar(255) NOT NULL, `realname` varchar(255) NOT NULL,
`gender` char(1) NOT NULL,
`password` varchar(255) NOT NULL, `password` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL, `email` varchar(255) NOT NULL,
`country` char(2) NOT NULL, `country` char(2) NOT NULL,
......
...@@ -217,19 +217,31 @@ ServerInfo_User *Servatrice::evalUserQueryResult(const QSqlQuery &query, bool co ...@@ -217,19 +217,31 @@ ServerInfo_User *Servatrice::evalUserQueryResult(const QSqlQuery &query, bool co
QString name = query.value(0).toString(); QString name = query.value(0).toString();
bool is_admin = query.value(1).toInt(); bool is_admin = query.value(1).toInt();
QString realName = query.value(2).toString(); QString realName = query.value(2).toString();
QString country = query.value(3).toString(); QString genderStr = query.value(3).toString();
QString country = query.value(4).toString();
QByteArray avatarBmp; QByteArray avatarBmp;
if (complete) if (complete)
avatarBmp = query.value(4).toByteArray(); avatarBmp = query.value(5).toByteArray();
ServerInfo_User::Gender gender;
if (genderStr == "m")
gender = ServerInfo_User::Male;
else if (genderStr == "f")
gender = ServerInfo_User::Female;
else
gender = ServerInfo_User::GenderUnknown;
int userLevel = ServerInfo_User::IsUser | ServerInfo_User::IsRegistered; int userLevel = ServerInfo_User::IsUser | ServerInfo_User::IsRegistered;
if (is_admin) if (is_admin == 1)
userLevel |= ServerInfo_User::IsAdmin; userLevel |= ServerInfo_User::IsAdmin;
else if (is_admin == 2)
userLevel |= ServerInfo_User::IsModerator;
return new ServerInfo_User( return new ServerInfo_User(
name, name,
userLevel, userLevel,
realName, realName,
gender,
country, country,
avatarBmp avatarBmp
); );
...@@ -243,7 +255,7 @@ ServerInfo_User *Servatrice::getUserData(const QString &name) ...@@ -243,7 +255,7 @@ ServerInfo_User *Servatrice::getUserData(const QString &name)
checkSql(); checkSql();
QSqlQuery query; QSqlQuery query;
query.prepare("select name, admin, realname, country, avatar_bmp from " + dbPrefix + "_users where name = :name and active = 1"); query.prepare("select name, admin, realname, gender, country, avatar_bmp from " + dbPrefix + "_users where name = :name and active = 1");
query.bindValue(":name", name); query.bindValue(":name", name);
if (!execSqlQuery(query)) if (!execSqlQuery(query))
return new ServerInfo_User(name, ServerInfo_User::IsUser); return new ServerInfo_User(name, ServerInfo_User::IsUser);
...@@ -276,7 +288,7 @@ QMap<QString, ServerInfo_User *> Servatrice::getBuddyList(const QString &name) ...@@ -276,7 +288,7 @@ QMap<QString, ServerInfo_User *> Servatrice::getBuddyList(const QString &name)
checkSql(); checkSql();
QSqlQuery query; QSqlQuery query;
query.prepare("select a.name, a.admin, a.realname, a.country from " + dbPrefix + "_users a left join " + dbPrefix + "_buddylist b on a.id = b.id_user2 left join " + dbPrefix + "_users c on b.id_user1 = c.id where c.name = :name"); query.prepare("select a.name, a.admin, a.realname, a.gender, a.country from " + dbPrefix + "_users a left join " + dbPrefix + "_buddylist b on a.id = b.id_user2 left join " + dbPrefix + "_users c on b.id_user1 = c.id where c.name = :name");
query.bindValue(":name", name); query.bindValue(":name", name);
if (!execSqlQuery(query)) if (!execSqlQuery(query))
return result; return result;
...@@ -299,7 +311,7 @@ QMap<QString, ServerInfo_User *> Servatrice::getIgnoreList(const QString &name) ...@@ -299,7 +311,7 @@ QMap<QString, ServerInfo_User *> Servatrice::getIgnoreList(const QString &name)
checkSql(); checkSql();
QSqlQuery query; QSqlQuery query;
query.prepare("select a.name, a.admin, a.realname, a.country from " + dbPrefix + "_users a left join " + dbPrefix + "_ignorelist b on a.id = b.id_user2 left join " + dbPrefix + "_users c on b.id_user1 = c.id where c.name = :name"); query.prepare("select a.name, a.admin, a.realname, a.gender, a.country from " + dbPrefix + "_users a left join " + dbPrefix + "_ignorelist b on a.id = b.id_user2 left join " + dbPrefix + "_users c on b.id_user1 = c.id where c.name = :name");
query.bindValue(":name", name); query.bindValue(":name", name);
if (!execSqlQuery(query)) if (!execSqlQuery(query))
return result; return result;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment