File indexing completed on 2024-05-05 04:39:54

0001 /*
0002     SPDX-FileCopyrightText: 2012-2013 Miquel Sabaté <mikisabate@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include <ghaccount.h>
0008 
0009 #include <ghresource.h>
0010 #include <ghproviderplugin.h>
0011 
0012 #include <KSharedConfig>
0013 
0014 namespace gh
0015 {
0016 
0017 Account::Account(Resource *resource)
0018 {
0019     m_group = KConfigGroup(KSharedConfig::openConfig(), "ghprovider");
0020     m_resource = resource;
0021 }
0022 
0023 void Account::invalidate(const QString &password)
0024 {
0025     const QString &id = m_group.readEntry("id", QString());
0026     if (!id.isEmpty())
0027         m_resource->revokeAccess(id, name(), password);
0028     m_group.writeEntry("name", "");
0029     m_group.writeEntry("id", "");
0030     m_group.writeEntry("token", "");
0031     m_group.writeEntry("created_at", "");
0032     m_group.writeEntry("orgs", "");
0033 }
0034 
0035 bool Account::validAccount() const
0036 {
0037     return !m_group.readEntry("id", QString()).isEmpty();
0038 }
0039 
0040 void Account::setName(const QString &name)
0041 {
0042     m_group.writeEntry("name", name);
0043 }
0044 
0045 const QString Account::name() const
0046 {
0047     return m_group.readEntry("name", QString());
0048 }
0049 
0050 void Account::setOrgs(const QStringList &orgs)
0051 {
0052     m_group.writeEntry("orgs", orgs);
0053 }
0054 
0055 const QStringList Account::orgs() const
0056 {
0057     const QString orgs = m_group.readEntry("orgs", QString());
0058     if (orgs.isEmpty())
0059         return QStringList();
0060     return orgs.split(QLatin1Char(','));
0061 }
0062 
0063 void Account::saveToken(const QByteArray &id, const QByteArray &token)
0064 {
0065     m_group.writeEntry("id", id);
0066     m_group.writeEntry("token", token);
0067 }
0068 
0069 const QString Account::token() const
0070 {
0071     return m_group.readEntry("token", QString());
0072 }
0073 
0074 } // End of namespace gh