|
|
|
#include "userform.h"
|
|
|
|
#include "ui_userform.h"
|
|
|
|
|
|
|
|
#include <QTableWidgetItem>
|
|
|
|
#include <QHeaderView>
|
|
|
|
#include "../data/core-data.h"
|
|
|
|
#include "../service.h"
|
|
|
|
#include "../permissionservice.h"
|
|
|
|
#include "../emptystringvalidator.h"
|
|
|
|
#include "../samestringvalidator.h"
|
|
|
|
|
|
|
|
UserForm::UserForm(QWidget *parent) :
|
|
|
|
AutoForm<User>(parent),
|
|
|
|
ui(new Ui::UserForm)
|
|
|
|
{
|
|
|
|
m_passChanged = false;
|
|
|
|
ui->setupUi(this);
|
|
|
|
registerBinding(ui->login);
|
|
|
|
registerBinding(ui->password);
|
|
|
|
registerBinding(ui->name);
|
|
|
|
registerBinding(ui->isAdmin);
|
|
|
|
registerBinding(ui->active);
|
|
|
|
registerValidator(new EmptyStringValidator(ui->login,"Enter Login Name"));
|
|
|
|
registerValidator(new EmptyStringValidator(ui->password,"Enter Password"));
|
|
|
|
registerValidator(new EmptyStringValidator(ui->name,"Enter Name"));
|
|
|
|
registerValidator(new SameStringValidator(ui->password,ui->retypePassword,"Passwords doesen't match"));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
UserForm::~UserForm()
|
|
|
|
{
|
|
|
|
delete ui;
|
|
|
|
}
|
|
|
|
|
|
|
|
void UserForm::bindOtherToUi()
|
|
|
|
{
|
|
|
|
ui->retypePassword->setText(this->entity()->password());
|
|
|
|
|
|
|
|
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, (qlonglong)r->id());
|
|
|
|
ui->tableWidget->setItem(i,0,ti);
|
|
|
|
i++;
|
|
|
|
}
|
|
|
|
m_passChanged = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
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()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
PermissionService permService;
|
|
|
|
if (m_passChanged){
|
|
|
|
this->entity()->setPassword(permService.encryptPassword(ui->password->text()));
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void UserForm::on_password_textChanged(const QString &)
|
|
|
|
{
|
|
|
|
m_passChanged = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
void UserForm::on_retypePassword_textChanged(const QString &)
|
|
|
|
{
|
|
|
|
m_passChanged = true;
|
|
|
|
}
|