Warning, file /network/ruqola/src/core/roles/role.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 SPDX-FileCopyrightText: 2019-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "role.h" 0008 #include "ruqola_debug.h" 0009 0010 #include <QJsonArray> 0011 #include <QJsonObject> 0012 0013 Role::Role() = default; 0014 0015 QString Role::userId() const 0016 { 0017 return mUserId; 0018 } 0019 0020 void Role::setUserId(const QString &userId) 0021 { 0022 mUserId = userId; 0023 } 0024 0025 bool Role::isModerator() const 0026 { 0027 return mIsModerator; 0028 } 0029 0030 void Role::setIsModerator(bool isModerator) 0031 { 0032 mIsModerator = isModerator; 0033 } 0034 0035 bool Role::isLeader() const 0036 { 0037 return mIsLeader; 0038 } 0039 0040 void Role::setIsLeader(bool isLeader) 0041 { 0042 mIsLeader = isLeader; 0043 } 0044 0045 bool Role::isOwner() const 0046 { 0047 return mIsOwner; 0048 } 0049 0050 void Role::setIsOwner(bool isOwner) 0051 { 0052 mIsOwner = isOwner; 0053 } 0054 0055 bool Role::operator==(const Role &other) const 0056 { 0057 return (mIsOwner == other.isOwner()) && (mIsModerator == other.isModerator()) && (mIsLeader == other.isLeader()) && (mUserId == other.userId()) 0058 && (mUserName == other.userName()); 0059 } 0060 0061 bool Role::isValid() const 0062 { 0063 return !mUserId.isEmpty(); 0064 } 0065 0066 void Role::updateRole(const QString &str, bool b) 0067 { 0068 if (str == QLatin1String("moderator")) { 0069 mIsModerator = b; 0070 } else if (str == QLatin1String("leader")) { 0071 mIsLeader = b; 0072 } else if (str == QLatin1String("owner")) { 0073 mIsOwner = b; 0074 } else { 0075 qCWarning(RUQOLA_LOG) << "Unknown role" << str; 0076 } 0077 } 0078 0079 bool Role::hasARole() const 0080 { 0081 return mIsOwner || mIsModerator || mIsLeader; 0082 } 0083 0084 QString Role::userName() const 0085 { 0086 return mUserName; 0087 } 0088 0089 void Role::setUserName(const QString &newUserName) 0090 { 0091 mUserName = newUserName; 0092 } 0093 0094 void Role::parseRole(const QJsonObject &obj) 0095 { 0096 const QJsonObject uObj = obj.value(QLatin1String("u")).toObject(); 0097 mUserId = uObj.value(QLatin1String("_id")).toString(); 0098 mUserName = uObj.value(QLatin1String("username")).toString(); 0099 const QJsonArray roleArray = obj[QLatin1String("roles")].toArray(); 0100 for (int i = 0; i < roleArray.count(); ++i) { 0101 const QString str = roleArray.at(i).toString(); 0102 updateRole(str, true); 0103 } 0104 } 0105 0106 QDebug operator<<(QDebug d, const Role &t) 0107 { 0108 d << "UserId: " << t.userId(); 0109 d << "IsLeader: " << t.isLeader(); 0110 d << "IsOwner: " << t.isOwner(); 0111 d << "IsModerator: " << t.isModerator(); 0112 d << "UserName: " << t.userName(); 0113 return d; 0114 }