Support for adding user roles
This commit is contained in:
@@ -1,6 +1,11 @@
|
||||
#include "userform.h"
|
||||
#include "ui_userform.h"
|
||||
|
||||
#include <QTableWidgetItem>
|
||||
#include <QHeaderView>
|
||||
#include "../data/core-data.h"
|
||||
#include "../service.h"
|
||||
|
||||
UserForm::UserForm(QWidget *parent) :
|
||||
AutoForm<User>(parent),
|
||||
ui(new Ui::UserForm)
|
||||
@@ -17,3 +22,37 @@ UserForm::~UserForm()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void UserForm::bindOtherToUi()
|
||||
{
|
||||
Service<Role> srv;
|
||||
QList<QSharedPointer<Role> > roles = this->entity()->listRoles();
|
||||
ui->tableWidget->setRowCount(srv.all().count());
|
||||
ui->tableWidget->setColumnCount(1);
|
||||
int i = 0;
|
||||
foreach(QSharedPointer<Role> r,srv.all())
|
||||
{
|
||||
auto it = std::find_if(ALL(roles),[r](QSharedPointer<Role> role){return r->id() == role->id();});
|
||||
QTableWidgetItem * ti;
|
||||
ti = new QTableWidgetItem;
|
||||
ti->setText(r->name());
|
||||
ti->setCheckState(it == roles.end() ? Qt::Unchecked : Qt::Checked);
|
||||
ti->setData(Qt::UserRole,r->id());
|
||||
ui->tableWidget->setItem(i,0,ti);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
bool UserForm::bindOtherToData()
|
||||
{
|
||||
Service<Role> srv;
|
||||
this->entity()->clearRoles();
|
||||
for(int i = 0;i < ui->tableWidget->rowCount() ;i++){
|
||||
if(ui->tableWidget->item(i,0)->checkState()== Qt::Checked)
|
||||
{
|
||||
this->entity()->addRole(srv.loadById(ui->tableWidget->item(i,0)->data(Qt::UserRole).toInt()));
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user