/** * assumeUser Assume the identity of anothre user - Only admins may do this * * @param numeric $pUserId User ID of the user you want to hijack * @access public * @return TRUE on success, FALSE on failure - mErrors will contain reason for failure */ function assumeUser($pUserId) { global $gBitUser; $ret = FALSE; // make double sure the current logged in user has permission, check for p_users_admin, not admin, as that is all you need for assuming another user. // this enables creating of a non technical site adminstrators role, eg customer support representatives. if ($gBitUser->hasPermission('p_users_admin')) { $assumeUser = new RolePermUser($pUserId); $assumeUser->loadPermissions(); if ($assumeUser->isAdmin()) { $this->mErrors['assume_user'] = tra("User administrators cannot be assumed."); } else { $this->mDb->query("UPDATE `" . BIT_DB_PREFIX . "users_cnxn` SET `user_id`=?, `assume_user_id`=? WHERE `cookie`=?", array($pUserId, $gBitUser->mUserId, $_COOKIE[$this->getSiteCookieName()])); $ret = TRUE; } } return $ret; }
$anonUser->removeUserFromRole(ANONYMOUS_USER_ID, $regRoleId); $anonUser->addUserToRole(ANONYMOUS_USER_ID, ANONYMOUS_TEAM_ID); } } else { $anonUser = new BitPermUser(); if ($anonUser->store($storeHash)) { // Remove anonymous from registered group $regGroupId = $anonUser->groupExists('Registered', ROOT_USER_ID); $anonUser->removeUserFromGroup(ANONYMOUS_USER_ID, $regGroupId); $anonUser->addUserToGroup(ANONYMOUS_USER_ID, ANONYMOUS_GROUP_ID); } } // Create 'Admin' user has id= 2 $storeHash = array('real_name' => $_SESSION['real_name'], 'login' => $_SESSION['login'], 'password' => $_SESSION['password'], 'email' => $_SESSION['email'], 'pass_due' => FALSE); if (defined('ROLE_MODEL')) { $adminUser = new RolePermUser(); if ($adminUser->store($storeHash)) { // add user to admin role $adminUser->addUserToRole($adminUser->mUserId, 1); // set admin role as default $adminUser->storeUserDefaultRole($adminUser->mUserId, 1); } else { vd($adminUser->mErrors); die; } } else { $adminUser = new BitPermUser(); if ($adminUser->store($storeHash)) { // add user to admin group $adminUser->addUserToGroup($adminUser->mUserId, 1); // set admin group as default
<?php // $Header$ // Copyright (c) 2002-2003, Luis Argerich, Garland Foster, Eduardo Polidor, et. al. // All Rights Reserved. See below for details and a complete list of authors. // Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See http://www.gnu.org/copyleft/lesser.html for details. // This script is used to assign roles to a particular user // ASSIGN USER TO ROLES // Initialization require_once '../../kernel/setup_inc.php'; $gBitSystem->verifyPermission('p_users_admin'); if (!$gBitUser->userExists(array('user_id' => $_REQUEST["assign_user"]))) { $gBitSystem->fatalError(tra("User doesnt exist")); } $assignUser = new RolePermUser($_REQUEST["assign_user"]); $assignUser->load(TRUE); if ($assignUser->isAdmin() && !$gBitUser->isAdmin()) { $gBitSystem->fatalError(tra('You cannot modify a system administrator.')); } if (isset($_REQUEST["action"])) { $gBitUser->verifyTicket(); if ($_REQUEST["action"] == 'assign') { $assignUser->addUserToRole($assignUser->mUserId, $_REQUEST["role_id"]); } elseif ($_REQUEST["action"] == 'removerole') { $assignUser->removeUserFromRole($_REQUEST["assign_user"], $_REQUEST["role_id"]); } bit_redirect('assign_role_user.php?assign_user='******'set_default'])) { $gBitUser->verifyTicket(); $assignUser->storeUserDefaultRole($assignUser->mUserId, $_REQUEST['default_role']); $assignUser->load();
/** * Imports a user record from csv file * This is a admin specific function * * @param $pParamHash an array with user data * @return TRUE if import succeed **/ function importUser(&$pParamHash) { global $gBitUser; if (!$gBitUser->hasPermission('p_users_admin')) { return FALSE; } if ($this->verifyUserImport($pParamHash)) { $this->StartTrans(); $pParamHash['content_type_guid'] = BITUSER_CONTENT_TYPE_GUID; if (!empty($pParamHash['user_store']) && count($pParamHash['user_store'])) { // lookup and asign the default role for user $defaultRoles = RolePermUser::getDefaultRole(); if (!empty($defaultRoles)) { $pParamHash['user_store']['default_role_id'] = key($defaultRoles); } if ($this->isValid()) { $userId = array("user_id" => $this->mUserId); $result = $this->mDb->associateUpdate(BIT_DB_PREFIX . 'users_users', $pParamHash['user_store'], $userId); } else { if (empty($pParamHash['user_store']['user_id'])) { $pParamHash['user_store']['user_id'] = $this->mDb->GenID('users_users_user_id_seq'); } $this->mUserId = $pParamHash['user_store']['user_id']; $result = $this->mDb->associateInsert(BIT_DB_PREFIX . 'users_users', $pParamHash['user_store']); } // make sure user is added into the default role map if (!empty($pParamHash['user_store']['default_role_id'])) { RolePermUser::addUserToRole($pParamHash['user_store']['user_id'], $pParamHash['user_store']['default_role_id']); } } // Prevent liberty from assuming ANONYMOUS_USER_ID while storing $pParamHash['user_id'] = $this->mUserId; if (LibertyContent::store($pParamHash)) { if (empty($this->mInfo['content_id']) || $pParamHash['content_id'] != $this->mInfo['content_id']) { $query = "UPDATE `" . BIT_DB_PREFIX . "users_users` SET `content_id`=? WHERE `user_id`=?"; $result = $this->mDb->query($query, array($pParamHash['content_id'], $this->mUserId)); $this->mInfo['content_id'] = $pParamHash['content_id']; } } $this->CompleteTrans(); // store any uploaded images $this->storeImages($pParamHash); $this->load(TRUE); } return count($this->mErrors) == 0; }
// override default max_records $listHash = $_REQUEST; $listHash['max_records'] = !empty($_REQUEST['max_records']) ? $_REQUEST['max_records'] : $gBitSystem->getConfig('max_records'); $users = $gBitUser->getList($listHash); $gBitSmarty->assignByRef('users', $users); $gBitSmarty->assignByRef('usercount', $listHash["cant"]); if (isset($listHash["numrows"])) { $listHash['listInfo']["numrows"] = $listHash["numrows"]; } else { $listHash['listInfo']["numrows"] = 10; } $listHash['listInfo']["URL"] = USERS_PKG_URL . "admin/index.php"; $gBitSmarty->assignByRef('listInfo', $listHash['listInfo']); if (defined('ROLE_MODEL')) { // invoke edit service for the add user feature $userObj = new RolePermUser(); $userObj->invokeServices('content_edit_function'); // Get roles (list of roles) $rolelist = $gBitUser->getRoles('', '', 'role_name_asc'); $gBitSmarty->assign('rolelist', $rolelist); } else { // invoke edit service for the add user feature $userObj = new BitPermUser(); $userObj->invokeServices('content_edit_function'); // Get groups (list of groups) $grouplist = $gBitUser->getGroups('', '', 'group_name_asc'); $gBitSmarty->assign('grouplist', $grouplist); } $gBitSmarty->assign('feedback', $feedback); $gBitSmarty->assign((!empty($_REQUEST['tab']) ? $_REQUEST['tab'] : 'userlist') . 'TabSelect', 'tdefault'); // Display the template