Improved permission checks.

This commit is contained in:
2017-05-29 22:09:03 +02:00
parent b0f129f38d
commit 328352f91a
5 changed files with 45 additions and 2 deletions
+21
View File
@@ -174,6 +174,13 @@ private slots:
protected:
virtual void handleNewRecord() override
{
PermissionEvaluator permEv;
if (!permEv.hasPermission(pluginId(), PERM_ADD))
{
QMessageBox::critical(this, tr("Permission denied"), tr("You don't have permission to add new record."));
return;
}
if (m_form == NULL)
{
Q_ASSERT(false);
@@ -187,6 +194,13 @@ protected:
virtual void handleEditRecord() override
{
PermissionEvaluator permEv;
if (!permEv.hasPermission(pluginId(), PERM_EDIT))
{
QMessageBox::critical(this, tr("Permission denied"), tr("You don't have permission to edit record."));
return;
}
if (m_form == NULL || m_tableModel == NULL || tableView()->currentIndex().row() < 0)
{
Q_ASSERT(false);
@@ -200,6 +214,13 @@ protected:
void handleDeleteRecord() override
{
PermissionEvaluator permEv;
if (!permEv.hasPermission(pluginId(), PERM_DELETE))
{
QMessageBox::critical(this, tr("Permission denied"), tr("You don't have permission to delete record."));
return;
}
m_permissionDenied = false;
connectService();
if (m_form == NULL || m_tableModel == NULL || tableView()->currentIndex().row() < 0)
+8
View File
@@ -8,6 +8,7 @@
#include <QStringList>
#include <QIcon>
#include <QTranslator>
#include <QMessageBox>
#include "service.h"
#include "igridform.h"
@@ -51,6 +52,13 @@ public:
virtual void init(const QJsonObject &metaData) = 0;
virtual QWidget *ui() {
PermissionEvaluator permEv;
if (!permEv.hasPermission(pluginId(), PERM_READ))
{
QMessageBox::critical(m_ui, QObject::tr("Permission denied"), QObject::tr("You don't have permission to open this plugin."));
return NULL;
}
IGridForm *form = qobject_cast<IGridForm*>(m_ui);
bool filled = true;
+8
View File
@@ -6,6 +6,8 @@
#include "iplugin.h"
#include "iform.h"
#include <QMessageBox>
SettingsForm::SettingsForm(QWidget *parent) :
QDialog(parent),
ui(new Ui::SettingsForm)
@@ -39,6 +41,12 @@ void SettingsForm::on_buttonBox_accepted()
void SettingsForm::accept()
{
if (!Context::instance().currentUser()->isAdmin())
{
QMessageBox::critical(this, tr("Permission denied"), tr("You don't have permission to save settings."));
return;
}
for (int i = 0; i < ui->tabWidget->count(); i++)
{
IForm *tab = qobject_cast<IForm*>(ui->tabWidget->widget(i));
+2 -2
View File
@@ -77,12 +77,12 @@ bool UserForm::bindOtherToData()
}
void UserForm::on_password_textChanged(const QString &arg1)
void UserForm::on_password_textChanged(const QString &)
{
m_passChanged = true;
}
void UserForm::on_retypePassword_textChanged(const QString &arg1)
void UserForm::on_retypePassword_textChanged(const QString &)
{
m_passChanged = true;
}