Example #1
0
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();
}
Example #2
0
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;
}
Example #3
0
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();
}
Example #4
0
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();
}
Example #5
0
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();
}
Example #6
0
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;
}
Example #7
0
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;
}
Example #8
0
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;
}
Example #9
0
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();
}