Пример #1
0
 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;
 }
Пример #2
0
 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;
 }
Пример #3
0
 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.
 }
Пример #4
0
 /**
  * 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;
 }
Пример #5
0
 /**
  * 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;
 }
Пример #6
0
 /**
  * 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);
 }
Пример #7
0
 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);
 }
Пример #8
0
 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;
 }
Пример #10
0
 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);
     }
 }