Improved permission checks.
This commit is contained in:
@@ -174,6 +174,13 @@ private slots:
|
|||||||
protected:
|
protected:
|
||||||
virtual void handleNewRecord() override
|
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)
|
if (m_form == NULL)
|
||||||
{
|
{
|
||||||
Q_ASSERT(false);
|
Q_ASSERT(false);
|
||||||
@@ -187,6 +194,13 @@ protected:
|
|||||||
|
|
||||||
virtual void handleEditRecord() override
|
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)
|
if (m_form == NULL || m_tableModel == NULL || tableView()->currentIndex().row() < 0)
|
||||||
{
|
{
|
||||||
Q_ASSERT(false);
|
Q_ASSERT(false);
|
||||||
@@ -200,6 +214,13 @@ protected:
|
|||||||
|
|
||||||
void handleDeleteRecord() override
|
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;
|
m_permissionDenied = false;
|
||||||
connectService();
|
connectService();
|
||||||
if (m_form == NULL || m_tableModel == NULL || tableView()->currentIndex().row() < 0)
|
if (m_form == NULL || m_tableModel == NULL || tableView()->currentIndex().row() < 0)
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
#include <QIcon>
|
#include <QIcon>
|
||||||
#include <QTranslator>
|
#include <QTranslator>
|
||||||
|
#include <QMessageBox>
|
||||||
|
|
||||||
#include "service.h"
|
#include "service.h"
|
||||||
#include "igridform.h"
|
#include "igridform.h"
|
||||||
@@ -51,6 +52,13 @@ public:
|
|||||||
virtual void init(const QJsonObject &metaData) = 0;
|
virtual void init(const QJsonObject &metaData) = 0;
|
||||||
|
|
||||||
virtual QWidget *ui() {
|
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);
|
IGridForm *form = qobject_cast<IGridForm*>(m_ui);
|
||||||
bool filled = true;
|
bool filled = true;
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,8 @@
|
|||||||
#include "iplugin.h"
|
#include "iplugin.h"
|
||||||
#include "iform.h"
|
#include "iform.h"
|
||||||
|
|
||||||
|
#include <QMessageBox>
|
||||||
|
|
||||||
SettingsForm::SettingsForm(QWidget *parent) :
|
SettingsForm::SettingsForm(QWidget *parent) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
ui(new Ui::SettingsForm)
|
ui(new Ui::SettingsForm)
|
||||||
@@ -39,6 +41,12 @@ void SettingsForm::on_buttonBox_accepted()
|
|||||||
|
|
||||||
void SettingsForm::accept()
|
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++)
|
for (int i = 0; i < ui->tabWidget->count(); i++)
|
||||||
{
|
{
|
||||||
IForm *tab = qobject_cast<IForm*>(ui->tabWidget->widget(i));
|
IForm *tab = qobject_cast<IForm*>(ui->tabWidget->widget(i));
|
||||||
|
|||||||
@@ -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;
|
m_passChanged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UserForm::on_retypePassword_textChanged(const QString &arg1)
|
void UserForm::on_retypePassword_textChanged(const QString &)
|
||||||
{
|
{
|
||||||
m_passChanged = true;
|
m_passChanged = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,12 @@ QIcon Shop::pluginIcon()
|
|||||||
QWidget *Shop::ui()
|
QWidget *Shop::ui()
|
||||||
{
|
{
|
||||||
QWidget *uiWidget = IPlugin::ui();
|
QWidget *uiWidget = IPlugin::ui();
|
||||||
|
|
||||||
|
if (uiWidget == NULL)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
qobject_cast<ShopForm*>(uiWidget)->loadLast();
|
qobject_cast<ShopForm*>(uiWidget)->loadLast();
|
||||||
qobject_cast<ShopForm*>(uiWidget)->fillRaceiptCombo();
|
qobject_cast<ShopForm*>(uiWidget)->fillRaceiptCombo();
|
||||||
qobject_cast<ShopForm*>(uiWidget)->loadButtons();
|
qobject_cast<ShopForm*>(uiWidget)->loadButtons();
|
||||||
|
|||||||
Reference in New Issue
Block a user