void user::sAddSite() { if(_mode == cNew) { if(!save()) return; else { _mode = cEdit; _username->setEnabled(false); } } q.prepare("SELECT grantSite(:username, :warehous_id) AS result;"); q.bindValue(":username", _cUsername); q.bindValue(":warehous_id", _availableSite->id()); q.exec(); // no storedProcErrorLookup because the function returns bool, not int if (q.lastError().type() != QSqlError::NoError) { systemError(this, q.lastError().databaseText(), __FILE__, __LINE__); return; } populateSite(); }
enum SetResponse user::set(const ParameterList &pParams) { XDialog::set(pParams); QVariant param; bool valid; param = pParams.value("username", &valid); if (valid) { _cUsername = param.toString(); populate(); } param = pParams.value("mode", &valid); if (valid) { if (param.toString() == "new") { _mode = cNew; _module->setCurrentIndex(0); sModuleSelected(_module->text(0)); if (_cUsername.isEmpty()) _username->setFocus(); else { _username->setEnabled(false); _username->setText(_cUsername); _active->setFocus(); sCheck(); } if (_metrics->boolean("MultiWhs")) populateSite(); } else if (param.toString() == "edit") { _mode = cEdit; _username->setEnabled(FALSE); _save->setFocus(); } else if (param.toString() == "view") { _mode = cView; _close->setText(tr("&Close")); _save->hide(); _close->setFocus(); } } if(cView != _mode) _inTransaction = q.exec("BEGIN;"); return NoError; }
void user::sRevokeSite() { XSqlQuery siteq; siteq.prepare("SELECT revokeSite(:username, :warehous_id) AS result;"); siteq.bindValue(":username", _cUsername); siteq.bindValue(":warehous_id", _grantedSite->id()); siteq.exec(); // no storedProcErrorLookup because the function returns bool, not int if (ErrorReporter::error(QtCriticalMsg, this, tr("Revoking Site Privilege"), siteq, __FILE__, __LINE__)) return; populateSite(); }
void user::sRevokeSite() { q.prepare("SELECT revokeSite(:username, :warehous_id) AS result;"); q.bindValue(":username", _cUsername); q.bindValue(":warehous_id", _grantedSite->id()); q.exec(); // no storedProcErrorLookup because the function returns bool, not int if (q.lastError().type() != QSqlError::NoError) { systemError(this, q.lastError().databaseText(), __FILE__, __LINE__); return; } populateSite(); }
void user::sAddSite() { if(_mode == cNew) { if(!save()) return; else { _mode = cEdit; _username->setEnabled(false); } } XSqlQuery siteq; siteq.prepare("SELECT grantSite(:username, :warehous_id) AS result;"); siteq.bindValue(":username", _cUsername); siteq.bindValue(":warehous_id", _availableSite->id()); siteq.exec(); // no storedProcErrorLookup because the function returns bool, not int if (ErrorReporter::error(QtCriticalMsg, this, tr("Granting Site Privilege"), siteq, __FILE__, __LINE__)) return; populateSite(); }
enum SetResponse user::set(const ParameterList &pParams) { XDialog::set(pParams); QVariant param; bool valid; param = pParams.value("crmacct_id", &valid); if (valid) _crmacctid = param.toInt(); param = pParams.value("username", &valid); if (valid) _cUsername = param.toString(); if (! _cUsername.isEmpty() || _crmacctid > 0) if (! sPopulate()) return UndefinedError; param = pParams.value("mode", &valid); if (valid) { if (param.toString() == "new") { _mode = cNew; _module->setCurrentIndex(0); sModuleSelected(_module->itemText(0)); if (! _cUsername.isEmpty()) { _username->setEnabled(false); _username->setText(_cUsername); sCheck(); } if (_metrics->boolean("MultiWhs")) populateSite(); } else if (param.toString() == "edit") { _mode = cEdit; _username->setEnabled(false); } else if (param.toString() == "view") { _mode = cView; _close->setText(tr("&Close")); _save->hide(); } } bool canEdit = (cNew == _mode || cEdit == _mode); _active->setEnabled(canEdit); _add->setEnabled(canEdit); _addAll->setEnabled(canEdit); _addGroup->setEnabled(canEdit); // _addSite->setEnabled(canEdit); _agent->setEnabled(canEdit); _allSites->setEnabled(canEdit); _email->setEnabled(canEdit); _employee->setReadOnly(! canEdit); _enhancedAuth->setEnabled(canEdit); _exportContents->setEnabled(canEdit); _initials->setEnabled(canEdit); _locale->setEnabled(canEdit); _passwd->setEnabled(canEdit); _properName->setEnabled(canEdit); _revoke->setEnabled(canEdit); _revokeAll->setEnabled(canEdit); _revokeGroup->setEnabled(canEdit); // _revokeSite->setEnabled(canEdit); _save->setEnabled(canEdit); _selectedSites->setEnabled(canEdit); _verify->setEnabled(canEdit); if (! canEdit) { _available->setSelectionMode(QAbstractItemView::NoSelection); _availableGroup->setSelectionMode(QAbstractItemView::NoSelection); _availableSite->setSelectionMode(QAbstractItemView::NoSelection); _granted->setSelectionMode(QAbstractItemView::NoSelection); _grantedGroup->setSelectionMode(QAbstractItemView::NoSelection); _grantedSite->setSelectionMode(QAbstractItemView::NoSelection); } if(canEdit) { XSqlQuery begin; _inTransaction = begin.exec("BEGIN;"); } return NoError; }
bool user::sPopulate() { XSqlQuery usrq; if (! _cUsername.isEmpty()) { usrq.prepare("SELECT usr_username, usr_active, usr_propername, usr_initials," " usr_email, usr_locale_id, usr_agent," " userCanCreateUsers(usr_username) AS createusers," " userCanCreateUsers(getEffectiveXtUser()) AS enablecreateusers," " crmacct_id, crmacct_emp_id, crmacct_owner_username" " FROM usr" " LEFT OUTER JOIN crmacct ON (usr_username=crmacct_usr_username) " "WHERE (usr_username=:usr_username);" ); usrq.bindValue(":usr_username", _cUsername); } else if (_crmacctid > 0) { usrq.prepare("SELECT LOWER(crmacct_number) AS usr_username," " crmacct_name AS usr_propername," " (SELECT locale_id" " FROM locale" " WHERE locale_code='Default') AS usr_locale_id," " NULL AS usr_passwd, cntct_initials AS usr_initials," " false AS usr_agent, crmacct_active AS usr_active," " NULL AS usr_window, cntct_email AS usr_email," " false AS createusers," " userCanCreateUsers(getEffectiveXtUser()) AS enablecreateusers," " crmacct_id, crmacct_emp_id, crmacct_owner_username" " FROM crmacct" " LEFT OUTER JOIN cntct ON (crmacct_cntct_id_1=cntct_id)" " WHERE (crmacct_id=:id);"); usrq.bindValue(":id", _crmacctid); } usrq.exec(); if (usrq.first()) { _username->setText(usrq.value("usr_username")); if (_crmacctid > 0) { if (_username->text().contains(QRegExp("\\s"))) { QMessageBox::warning(this, tr("No Spaces Allowed"), tr("<p>Usernames cannot include space characters " "but must also match the associated Account " "numbers. Please Cancel the User Account window and " "remove the spaces from the Account number " "before trying to create this User Account.")); return false; } _username->setEnabled(false); } _active->setChecked(usrq.value("usr_active").toBool()); _properName->setText(usrq.value("usr_propername")); _initials->setText(usrq.value("usr_initials")); _email->setText(usrq.value("usr_email")); _locale->setId(usrq.value("usr_locale_id").toInt()); _agent->setChecked(usrq.value("usr_agent").toBool()); _createUsers->setChecked(usrq.value("createusers").toBool()); _createUsers->setEnabled(usrq.value("enablecreateusers").toBool()); _employee->setId(usrq.value("crmacct_emp_id").toInt()); _crmacctid = usrq.value("crmacct_id").toInt(); _crmowner = usrq.value("crmacct_owner_username").toString(); _cUsername = _username->text().trimmed().toLower(); _passwd->setText(" "); _verify->setText(" "); usrq.prepare( "SELECT usrpref_value " " FROM usrpref " " WHERE ( (usrpref_name = 'DisableExportContents') " " AND (usrpref_username=:username) ); "); usrq.bindValue(":username", _cUsername); usrq.exec(); if(usrq.first()) _exportContents->setChecked(usrq.value("usrpref_value").toString()=="t"); else _exportContents->setChecked(false); usrq.prepare( "SELECT usrpref_value " " FROM usrpref " " WHERE ( (usrpref_name = 'UseEnhancedAuthentication') " " AND (usrpref_username=:username) ); "); usrq.bindValue(":username", _cUsername); usrq.exec(); _authCache = false; if(usrq.first()) _authCache = (usrq.value("usrpref_value").toString()=="t"); _enhancedAuth->setChecked(_authCache); usrq.prepare( "SELECT priv_module " "FROM usrpriv, priv " "WHERE ( (usrpriv_priv_id=priv_id)" " AND (usrpriv_username=:username) ) " "ORDER BY priv_module " "LIMIT 1;" ); usrq.bindValue(":username", _cUsername); usrq.exec(); if (usrq.first()) { _module->setCode(usrq.value("priv_module").toString()); sModuleSelected(_module->currentText()); } else { _module->setCurrentIndex(0); sModuleSelected(_module->itemText(0)); } } else if (ErrorReporter::error(QtCriticalMsg, this, tr("Getting User Account"), usrq, __FILE__, __LINE__)) return false; usrq.prepare( "SELECT usrpref_value " " FROM usrpref " " WHERE ( (usrpref_name = 'selectedSites') " " AND (usrpref_username=:username) " " AND (usrpref_value='t') ); "); usrq.bindValue(":username", _cUsername); usrq.exec(); if(usrq.first()) _selectedSites->setChecked(true); else if (ErrorReporter::error(QtCriticalMsg, this, tr("Getting User Sites"), usrq, __FILE__, __LINE__)) return false; if (_metrics->boolean("MultiWhs")) populateSite(); _crmacct->setEnabled(_crmacctid > 0 && (_privileges->check("MaintainAllCRMAccounts") || _privileges->check("ViewAllCRMAccounts") || (omfgThis->username() == _crmowner && _privileges->check("MaintainPersonalCRMAccounts")) || (omfgThis->username() == _crmowner && _privileges->check("ViewPersonalCRMAccounts")))); return true; }
bool user::sPopulate() { XSqlQuery usrq; if (! _cUsername.isEmpty()) { usrq.prepare("SELECT *, userCanCreateUsers(usr_username) AS createusers," " userCanCreateUsers(getEffectiveXtUser()) AS enablecreateusers," " crmacct_id, crmacct_emp_id, crmacct_owner_username" " FROM usr" " LEFT OUTER JOIN crmacct ON (usr_username=crmacct_usr_username) " "WHERE (usr_username=:usr_username);" ); usrq.bindValue(":usr_username", _cUsername); } else if (_crmacctid > 0) { usrq.prepare("SELECT LOWER(crmacct_number) AS usr_username," " crmacct_name AS usr_propername," " (SELECT locale_id" " FROM locale" " WHERE locale_code='Default') AS usr_locale_id," " NULL AS usr_passwd, cntct_initials AS usr_initials," " FALSE AS usr_agent, crmacct_active AS usr_active," " NULL AS usr_window, cntct_email AS usr_email," " FALSE AS createusers," " userCanCreateUsers(getEffectiveXtUser()) AS enablecreateusers," " crmacct_id, crmacct_emp_id, crmacct_owner_username" " FROM crmacct" " LEFT OUTER JOIN cntct ON (crmacct_cntct_id_1=cntct_id)" " WHERE (crmacct_id=:id);"); usrq.bindValue(":id", _crmacctid); } usrq.exec(); if (usrq.first()) { if(omfgThis->useCloud() && usrq.value("usr_username").toString().endsWith("_"+omfgThis->company())) _username->setText(usrq.value("usr_username").toString().left(usrq.value("usr_username").toString().length() - (omfgThis->company().length()+1))); else _username->setText(usrq.value("usr_username")); _active->setChecked(usrq.value("usr_active").toBool()); _properName->setText(usrq.value("usr_propername")); _initials->setText(usrq.value("usr_initials")); _email->setText(usrq.value("usr_email")); _locale->setId(usrq.value("usr_locale_id").toInt()); _agent->setChecked(usrq.value("usr_agent").toBool()); _createUsers->setChecked(usrq.value("createusers").toBool()); _createUsers->setEnabled(usrq.value("enablecreateusers").toBool()); _employee->setId(usrq.value("crmacct_emp_id").toInt()); _crmacctid = usrq.value("crmacct_id").toInt(); _crmowner = usrq.value("crmacct_owner_username").toString(); _passwd->setText(" "); _verify->setText(" "); usrq.prepare( "SELECT usrpref_value " " FROM usrpref " " WHERE ( (usrpref_name = 'DisableExportContents') " " AND (usrpref_username=:username) ); "); usrq.bindValue(":username", _cUsername); usrq.exec(); if(usrq.first()) _exportContents->setChecked(usrq.value("usrpref_value").toString()=="t"); else _exportContents->setChecked(FALSE); usrq.prepare( "SELECT usrpref_value " " FROM usrpref " " WHERE ( (usrpref_name = 'UseEnhancedAuthentication') " " AND (usrpref_username=:username) ); "); usrq.bindValue(":username", _cUsername); usrq.exec(); _authCache = false; if(usrq.first()) _authCache = (usrq.value("usrpref_value").toString()=="t"); _enhancedAuth->setChecked(_authCache); usrq.prepare( "SELECT priv_module " "FROM usrpriv, priv " "WHERE ( (usrpriv_priv_id=priv_id)" " AND (usrpriv_username=:username) ) " "ORDER BY priv_module " "LIMIT 1;" ); usrq.bindValue(":username", _cUsername); usrq.exec(); if (usrq.first()) { _module->setCode(usrq.value("priv_module").toString()); sModuleSelected(_module->currentText()); } else { _module->setCurrentIndex(0); sModuleSelected(_module->itemText(0)); } } else if (ErrorReporter::error(QtCriticalMsg, this, tr("Getting User"), usrq, __FILE__, __LINE__)) return false; usrq.prepare( "SELECT usrpref_value " " FROM usrpref " " WHERE ( (usrpref_name = 'selectedSites') " " AND (usrpref_username=:username) " " AND (usrpref_value='t') ); "); usrq.bindValue(":username", _cUsername); usrq.exec(); if(usrq.first()) _selectedSites->setChecked(TRUE); else if (ErrorReporter::error(QtCriticalMsg, this, tr("Getting User Sites"), usrq, __FILE__, __LINE__)) return false; if (_metrics->boolean("MultiWhs")) populateSite(); _crmacct->setEnabled(_crmacctid > 0 && (_privileges->check("MaintainAllCRMAccounts") || _privileges->check("ViewAllCRMAccounts") || (omfgThis->username() == _crmowner && _privileges->check("MaintainPersonalCRMAccounts")) || (omfgThis->username() == _crmowner && _privileges->check("ViewPersonalCRMAccounts")))); return true; }
void user::populate() { q.prepare( "SELECT *, userCanCreateUsers(usr_username) AS createusers," " userCanCreateUsers(CURRENT_USER) AS enablecreateusers," " emp_id " "FROM usr LEFT OUTER JOIN emp ON (usr_username=emp_username) " "WHERE (usr_username=:usr_username);" ); q.bindValue(":usr_username", _cUsername); q.exec(); if (q.first()) { _username->setText(q.value("usr_username")); _active->setChecked(q.value("usr_active").toBool()); _properName->setText(q.value("usr_propername")); _initials->setText(q.value("usr_initials")); _email->setText(q.value("usr_email")); _locale->setId(q.value("usr_locale_id").toInt()); _agent->setChecked(q.value("usr_agent").toBool()); _createUsers->setChecked(q.value("createusers").toBool()); _createUsers->setEnabled(q.value("enablecreateusers").toBool()); _employee->setId(q.value("emp_id").toInt()); _passwd->setText(" "); _verify->setText(" "); q.prepare( "SELECT usrpref_value " " FROM usrpref " " WHERE ( (usrpref_name = 'DisableExportContents') " " AND (usrpref_username=:username) ); "); q.bindValue(":username", _cUsername); q.exec(); if(q.first()) _exportContents->setChecked(q.value("usrpref_value").toString()=="t"); else _exportContents->setChecked(FALSE); q.prepare( "SELECT usrpref_value " " FROM usrpref " " WHERE ( (usrpref_name = 'UseEnhancedAuthentication') " " AND (usrpref_username=:username) ); "); q.bindValue(":username", _cUsername); q.exec(); _authCache = false; if(q.first()) _authCache = (q.value("usrpref_value").toString()=="t"); _enhancedAuth->setChecked(_authCache); q.prepare( "SELECT priv_module " "FROM usrpriv, priv " "WHERE ( (usrpriv_priv_id=priv_id)" " AND (usrpriv_username=:username) ) " "ORDER BY priv_module " "LIMIT 1;" ); q.bindValue(":username", _cUsername); q.exec(); if (q.first()) { for (int counter = 0; counter < _module->count(); counter++) { if (_module->text(counter) == q.value("priv_module").toString()) { _module->setCurrentIndex(counter); sModuleSelected(_module->text(counter)); } } } else { _module->setCurrentIndex(0); sModuleSelected(_module->text(0)); } } q.prepare( "SELECT usrpref_value " " FROM usrpref " " WHERE ( (usrpref_name = 'selectedSites') " " AND (usrpref_username=:username) " " AND (usrpref_value='t') ); "); q.bindValue(":username", _cUsername); q.exec(); if(q.first()) _selectedSites->setChecked(TRUE); if (_metrics->boolean("MultiWhs")) populateSite(); }