public function save() { $this->_user->save(); JUserHelper::setUserGroups($this->_user->id, $this->_userGroups); parent::save(); $uid = $this->params->get('user'); if (!$uid || $uid != $this->_user->id) { $this->params->set('user', $this->_user->id); $this->mapUser(); } return $this; }
public function save() { $profile = new JRegistry(); foreach ($this->params as $key => $value) { $profile->set('params.' . $key, $value); } foreach ($this->elements as $key => $value) { $profile->set('elements.' . $key, $value); } var_dump($profile); $this->_user->profile = $profile; $this->_user->save(); $this->mapAccount($this->_account); JUserHelper::setUserGroups($this->_user->id, $this->_permissions); return true; }
public function createUser() { $name = $this->state->get('f_name') . ' ' . $this->state->get('l_name'); $username = $this->state->get('email'); $password1 = $this->state->get('password1'); $password2 = $this->state->Get('password2'); $email = $this->state->get('email'); $data = array("name" => $name, "username" => $username, "password" => $password1, "password2" => $password2, "email" => $email, "groups" => [2]); $this->juser = $user = clone JFactory::getUser(); //Write to database if (!($user->bind($data) && $user->save())) { $this->error = $user->getError(); } else { JUserHelper::setUserGroups($user->id, [2]); } //todo test result and set error on fail. }
/** * Save user's joomla-user-type * @param $userid * @param $newUsertype * @return true/false */ function updateJoomlaUserType($userid, $newUsertype = JOOMLA_USER_TYPE_NONE) { //do not change usertypes for admins if (XiptHelperUtils::isAdmin($userid) == true || 0 == $userid || $newUsertype === JOOMLA_USER_TYPE_NONE) { return false; } //self::reloadCUser($userid); $user = CFactory::getUser($userid); $authorize = JFactory::getACL(); $user->set('usertype', $newUsertype); if (XIPT_JOOMLA_15) { $user->set('gid', $authorize->get_group_id('', $newUsertype, 'ARO')); } else { $group = CACL::getInstance(); $groups[] = $group->getGroupID($newUsertype); JUserHelper::setUserGroups($userid, $groups); } $user->save(); self::reloadCUser($userid); return true; }
/** * Function that allows child controller access to model data * after the data has been saved. * * @param JModel &$model The data model object. * @param array $validData The validated data. * * @return void * * @since 11.1 */ protected function postSaveHook(JModelLegacy $model, $validData = array()) { if ($validData['id'] >= 0) { // get user object $user = JFactory::getUser(); // if id is 0 get id if (0 >= (int) $validData['id']) { // Get the created by id $created_by = isset($validData['created_by']) && $validData['created_by'] > 0 ? $validData['created_by'] : $user->id; // Get a db connection. $db = JFactory::getDbo(); // Create a new query object. $query = $db->getQuery(true); // Select id of this company $query->select($db->quoteName(array('id'))); $query->from($db->quoteName('#__costbenefitprojection_company')); $query->where($db->quoteName('name') . ' = ' . $db->quote($validData['name'])); $query->where($db->quoteName('email') . ' = ' . $db->quote($validData['email'])); $query->where($db->quoteName('country') . ' = ' . (int) $validData['country']); $query->where($db->quoteName('service_provider') . ' = ' . (int) $validData['service_provider']); $query->where($db->quoteName('created_by') . ' = ' . (int) $created_by); if (isset($validData['created'])) { $query->where($db->quoteName('created') . ' = ' . $db->quote($validData['created'])); } $db->setQuery($query); $db->execute(); if ($db->getNumRows()) { $validData['id'] = $db->loadResult(); } else { return; } } // user setup if not set if (0 >= (int) $validData['user'] && (int) $validData['id'] > 0) { $userIs = CostbenefitprojectionHelper::userIs($user->id); if (1 == $userIs) { // this is a company so just use its id $userId = $user->id; // add this user id to this company $validData['user'] = $userId; $model->save($validData); } else { // setup config array $newUser = array('name' => $validData['name'], 'email' => $validData['email']); $userId = CostbenefitprojectionHelper::createUser($newUser); if (!is_int($userId)) { $this->setMessage($userId, 'error'); } else { // add this user id to this company $validData['user'] = $userId; $model->save($validData); } } } // only continue if we have a company id if ((int) $validData['id'] > 0) { // get params $params = JComponentHelper::getParams('com_costbenefitprojection'); // get all this users companies $hisCompanies = CostbenefitprojectionHelper::hisCompanies($validData['user']); if (CostbenefitprojectionHelper::checkArray($hisCompanies)) { // set the user group based on the overall status of its companies $departments = CostbenefitprojectionHelper::getVars('company', $hisCompanies, 'id', 'department'); if (in_array(2, $departments)) { $memberGroups = $params->get('advancedmembergroup'); } else { $memberGroups = $params->get('memberbasicgroup'); } } else { // first company so act simply on this company department status if (2 == $validData['department']) { $memberGroups = $params->get('advancedmembergroup'); } else { $memberGroups = $params->get('memberbasicgroup'); } } // update the user groups JUserHelper::setUserGroups((int) $validData['user'], (array) $memberGroups); // Get a db connection. $db = JFactory::getDbo(); // Create a new query object. $query = $db->getQuery(true); // Select all records in scaling factors the belong to this company $query->select($db->quoteName(array('id', 'causerisk', 'published'))); $query->from($db->quoteName('#__costbenefitprojection_scaling_factor')); $query->where($db->quoteName('company') . ' = ' . (int) $validData['id']); $db->setQuery($query); $db->execute(); if ($db->getNumRows()) { // load the scaling factors already set $already = $db->loadObjectList(); $publish = array(); $archive = array(); $bucket = array(); foreach ($already as $scale) { if (CostbenefitprojectionHelper::checkArray($validData['causesrisks'])) { if (in_array($scale->causerisk, $validData['causesrisks']) && $scale->published != 1) { // publish the scaling factor (update) $publish[$scale->id] = $scale->id; } elseif (!in_array($scale->causerisk, $validData['causesrisks'])) { // archive the scaling factor (update) $archive[$scale->id] = $scale->id; } $bucket[] = $scale->causerisk; } else { // archive the scaling factor (update) $archive[$scale->id] = $scale->id; } } // update the needed records $types = array('publish' => 1, 'archive' => 2); foreach ($types as $type => $int) { if (CostbenefitprojectionHelper::checkArray(${$type})) { foreach (${$type} as $id) { $query = $db->getQuery(true); // Fields to update. $fields = array($db->quoteName('published') . ' = ' . (int) $int); // Conditions for which records should be updated. $conditions = array($db->quoteName('id') . ' = ' . (int) $id); $query->update($db->quoteName('#__costbenefitprojection_scaling_factor'))->set($fields)->where($conditions); $db->setQuery($query); $db->execute(); } } } } if (CostbenefitprojectionHelper::checkArray($validData['causesrisks'])) { // remove those already set from the saved list of causesrisks if (CostbenefitprojectionHelper::checkArray($bucket)) { $insert = array(); foreach ($validData['causesrisks'] as $causerisk) { if (!in_array($causerisk, $bucket)) { $insert[] = $causerisk; } } } else { $insert = $validData['causesrisks']; } } // insert the new records if (CostbenefitprojectionHelper::checkArray($insert)) { $created = $db->quote(JFactory::getDate()->toSql()); $created_by = JFactory::getUser()->get('id'); $company = $validData['id']; // Create a new query object. $query = $db->getQuery(true); // Insert columns. $columns = array('causerisk', 'company', 'mortality_scaling_factor_females', 'mortality_scaling_factor_males', 'presenteeism_scaling_factor_females', 'presenteeism_scaling_factor_males', 'yld_scaling_factor_females', 'yld_scaling_factor_males', 'published', 'created_by', 'created'); // setup the values $values = array(); foreach ($insert as $new) { $array = array($new, $company, 1, 1, 1, 1, 1, 1, 1, $created_by, $created); $values[] = implode(',', $array); } // Prepare the insert query. $query->insert($db->quoteName('#__costbenefitprojection_scaling_factor'))->columns($db->quoteName($columns))->values(implode('), (', $values)); // Set the query using our newly populated query object and execute it. $db->setQuery($query); $done = $db->execute(); if ($done) { // we must set the assets foreach ($insert as $causerisk) { // get all the ids. Create a new query object. $query = $db->getQuery(true); $query->select($db->quoteName(array('id'))); $query->from($db->quoteName('#__costbenefitprojection_scaling_factor')); $query->where($db->quoteName('causerisk') . ' = ' . (int) $causerisk); $query->where($db->quoteName('company') . ' = ' . (int) $company); $db->setQuery($query); $db->execute(); if ($db->getNumRows()) { $aId = $db->loadResult(); // make sure the access of asset is set CostbenefitprojectionHelper::setAsset($aId, 'scaling_factor'); } } } } } } return; }
/** * Helper wrapper method for setUserGroups * * @param integer $userId The id of the user. * @param array $groups An array of group ids to put the user in. * * @return boolean True on success * * @see JUserHelper::setUserGroups() * @since 3.4 */ public function setUserGroups($userId, $groups) { return JUserHelper::setUserGroups($userId, $groups); }
public function save() { $app = JFactory::getApplication(); $db = JFactory::getDbo(); $jinput = JFactory::getApplication()->input; $uri =& JFactory::getURI(); $pageURL = $uri->toString(); $task = $jinput->get('task'); $selected_usersid = $jinput->get('selected_usersid', array(), 'ARRAY'); $lesson_title = $jinput->get('lesson_title'); $title = trim($jinput->get('lesson_title', '', 'RAW')); $parent_id = 1; $table = JTable::getInstance('usergroup'); $table->parent_id = $parent_id; $table->title = $title; $table->check(); $table->store(); $insertedGroupId = $table->id; foreach ($selected_usersid as $userid) { $groups = array(); $groups[] = $insertedGroupId; $user_Group = JAccess::getGroupsByUser($userid); foreach ($user_Group as $gId) { $groups[] = $gId; } JUserHelper::setUserGroups($userid, $groups); } $app->redirect($pageURL); }
public static function updateGid($user_id, $gid, $unblock = false, $action = 'add') { try { jimport('joomla.user.helper'); $user_id = (int) $user_id; if (!is_array($gid)) { $gid = explode(',', $gid); } JArrayHelper::toInteger($gid); // old version if (RSMembershipHelper::getConfig('replace_gid')) { JUserHelper::setUserGroups($user_id, $gid); } else { foreach ($gid as $group) { if ($action == 'add') { self::syslog('gid', "Adding user({$user_id}) to group({$group})"); JUserHelper::addUserToGroup($user_id, $group); } elseif ($action == 'remove') { self::syslog('gid', "Removing user({$user_id}) from group({$group})"); JUserHelper::removeUserFromGroup($user_id, $group); } } } if ($unblock) { RSMembership::enableUser($user_id); } } catch (Exception $e) { self::syslog('gid', "Error on changing group for user({$user_id}). Message: " . $e->getMessage()); } }
/** * Function that allows child controller access to model data * after the data has been saved. * * @param JModel &$model The data model object. * @param array $validData The validated data. * * @return void * * @since 11.1 */ protected function postSaveHook(JModelLegacy $model, $validData = array()) { if ($validData['id'] >= 0) { // get user object $user = JFactory::getUser(); // if id is 0 get id if (0 >= (int) $validData['id']) { // Get the created by id $created_by = isset($validData['created_by']) && $validData['created_by'] > 0 ? $validData['created_by'] : $user->id; // Get a db connection. $db = JFactory::getDbo(); // Create a new query object. $query = $db->getQuery(true); // Select id of this service_provider $query->select($db->quoteName(array('id'))); $query->from($db->quoteName('#__costbenefitprojection_service_provider')); $query->where($db->quoteName('publicemail') . ' = ' . $db->quote($validData['publicemail'])); $query->where($db->quoteName('publicname') . ' = ' . $db->quote($validData['publicname'])); $query->where($db->quoteName('country') . ' = ' . (int) $validData['country']); $query->where($db->quoteName('created_by') . ' = ' . (int) $created_by); if (isset($validData['created'])) { $query->where($db->quoteName('created') . ' = ' . $db->quote($validData['created'])); } $db->setQuery($query); $db->execute(); if ($db->getNumRows()) { $validData['id'] = $db->loadResult(); } else { return; } } // user setup if not set if (0 >= (int) $validData['user']) { // setup config array $newUser = array('name' => $validData['publicname'], 'email' => $validData['publicemail']); $userId = costbenefitprojectionHelper::createUser($newUser); if (!is_int($userId)) { $this->setMessage($userId, 'error'); } else { // get params $params = JComponentHelper::getParams('com_costbenefitprojection'); // get groups for members $groups = (array) $params->get('serviceprovideruser'); // update the user groups JUserHelper::setUserGroups($userId, $groups); // add this user id to this serviceprovider $validData['user'] = $userId; $model->save($validData); } } } return; }
function updateGid($user_id, $gid, $unblock = false) { $db =& JFactory::getDBO(); $user_id = (int) $user_id; if (RSMembershipHelper::isJ16()) { jimport('joomla.user.helper'); if (!is_array($gid)) { $gid = explode(',', $gid); } JArrayHelper::toInteger($gid); JUserHelper::setUserGroups($user_id, $gid); } else { $gid = (int) $gid; // Update aro_id $db->setQuery("SELECT id FROM #__core_acl_aro WHERE `value`='" . $user_id . "' AND `section_value`='users'"); $db->setQuery("UPDATE #__core_acl_groups_aro_map SET `group_id`='" . $gid . "' WHERE `aro_id`='" . $db->loadResult() . "'"); $db->query(); // Update gid $db->setQuery("SELECT `name` FROM #__core_acl_aro_groups WHERE `id`='" . $gid . "'"); $db->setQuery("UPDATE #__users SET `gid`='" . $gid . "', `usertype`='" . $db->getEscaped($db->loadResult()) . "' WHERE `id`='" . $user_id . "'"); $db->query(); } if ($unblock) { RSMembership::enableUser($user_id); } }