Build system changed to Cmake, ORM changed to QxORM, Qt6 compatibility.
This commit is contained in:
+26
-32
@@ -1,21 +1,9 @@
|
||||
#include "core-odb.hxx"
|
||||
#include "permissionservice.h"
|
||||
#include <QCryptographicHash>
|
||||
|
||||
typedef odb::query<Permission> permQuery;
|
||||
typedef odb::result<Permission> permResult;
|
||||
|
||||
PermissionService::PermissionService()
|
||||
{
|
||||
}
|
||||
|
||||
PermissionService::~PermissionService()
|
||||
{
|
||||
}
|
||||
|
||||
QList<QSharedPointer<Permission> > PermissionService::forPlugin(const QString &pluginId)
|
||||
{
|
||||
Transaction tr;
|
||||
/*Transaction tr;
|
||||
odb::database *db = Context::instance().db();
|
||||
permQuery q(permQuery::pluginId == pluginId);
|
||||
permResult result = db->query<Permission>(q);
|
||||
@@ -27,18 +15,25 @@ QList<QSharedPointer<Permission> > PermissionService::forPlugin(const QString &p
|
||||
}
|
||||
|
||||
tr.commit();
|
||||
return ret;
|
||||
return ret;*/
|
||||
return {};
|
||||
}
|
||||
|
||||
QSharedPointer<Permission> PermissionService::forNameAndPlugin(const QString &name, const QString &pluginId)
|
||||
{
|
||||
Transaction tr;
|
||||
odb::database *db = Context::instance().db();
|
||||
permQuery q(permQuery::pluginId == pluginId && permQuery::permissionName == name);
|
||||
QSharedPointer<Permission> p = db->query_one<Permission>(q);
|
||||
qx::QxSqlQuery q;
|
||||
q.where("permissionName").isEqualTo(name)
|
||||
.and_("pluginId").isEqualTo(pluginId);
|
||||
|
||||
tr.commit();
|
||||
return p;
|
||||
QList<QSharedPointer<Permission>> ret;
|
||||
auto err = qx::dao::fetch_by_query(q, ret);
|
||||
|
||||
if (err.isValid()) {
|
||||
qDebug() << err.text();
|
||||
// ToDo - log error
|
||||
}
|
||||
|
||||
return ret.count() > 0 ? ret[0] : QSharedPointer<Permission>();
|
||||
}
|
||||
|
||||
bool PermissionService::checkLogin(const QString &login, const QString &password)
|
||||
@@ -55,21 +50,22 @@ bool PermissionService::checkLogin(const QString &login, const QString &password
|
||||
|
||||
QSharedPointer<User> PermissionService::loadUser(const QString &login)
|
||||
{
|
||||
odb::database *db = Context::instance().db();
|
||||
Service<User> srvUser;
|
||||
auto admin = srvUser.all("login = '" + login + "'");
|
||||
|
||||
Transaction tr;
|
||||
return db->query_one<User>("login = " + odb::query<User>::_ref(login));
|
||||
if (admin.count() == 1) {
|
||||
return admin[0];
|
||||
}
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
void PermissionService::checkForAdmin()
|
||||
{
|
||||
odb::database *db = Context::instance().db();
|
||||
Service<User> srvUser;
|
||||
auto admUser = srvUser.all("isAdmin = 1");
|
||||
|
||||
Transaction tr;
|
||||
odb::query<User> q(odb::query<User>::isAdmin == true);
|
||||
odb::result<User> r = db->query<User>(q);
|
||||
|
||||
if (r.empty())
|
||||
if (admUser.isEmpty())
|
||||
{
|
||||
QSharedPointer<User> admin(new User);
|
||||
admin->setLogin("admin");
|
||||
@@ -78,10 +74,8 @@ void PermissionService::checkForAdmin()
|
||||
admin->setPassword(encryptPassword("admin"));
|
||||
admin->setActive(true);
|
||||
|
||||
db->persist(admin);
|
||||
srvUser.save(admin);
|
||||
}
|
||||
|
||||
tr.commit();
|
||||
}
|
||||
|
||||
QString PermissionService::encryptPassword(const QString &plainPasswd)
|
||||
|
||||
Reference in New Issue
Block a user