assign('msg', tra("The file is not a CSV file or has not a correct syntax"));
$gBitSystem->display( 'error.tpl' );
die;
}
//now load the users in a table
while (!feof($fhandle)) {
if( $data = fgetcsv($fhandle, 1000) ) {
for ($i = 0; $i < count($fields); $i++) {
@$ar[$fields[$i]] = $data[$i];
}
$userrecs[] = $ar;
}
}
fclose ($fhandle);
// any?
if (!is_array($userrecs)) {
$gBitSmarty->assign('msg', tra("No records were found. Check the file please!"));
$gBitSystem->display( 'error.tpl' );
die;
}
// Process user array
$added = 0;
$i = 1;
foreach ($userrecs as $u) {
$newUser = new BitUser();
//untested - spiderr
if( $newUser->store( $u ) ) {
if( !empty( $u['groups'] ) ) {
$grps = explode(",", $u['groups']);
foreach ($grps as $grp) {
if( $groupId = $newUser->group_exists( $grp, ROOT_USER_ID ) ) {
$newUser->addUserToGroup( $newUser->mUserId, $groupId );
}
}
}
$added++;
} else {
$discarded[$i] = implode( ',', $newUser->mErrors );
}
unset( $newUser );
$i++;
}
$gBitSmarty->assign('added', $added);
if (@is_array($discarded)) {
$gBitSmarty->assign('discarded', count($discarded));
}
@$gBitSmarty->assign_by_ref('discardlist', $discarded);
}
$gBitSystem->verifyPermission( 'bit_p_admin_users' );
$feedback = array();
// Process the form to add a user here
if (isset($_REQUEST["newuser"])) {
$newUser = new BitPermUser();
// Check if the user already exists
// jht 2005-06-22_23:51:58 flag this user store as coming from admin page -- a kludge
$_REQUEST['admin_add'] = 1;
if( $newUser->store( $_REQUEST ) ) {
$gBitSmarty->assign( 'addSuccess', "User Added Successfully" );
} else {
$gBitSmarty->assign_by_ref( 'newUser', $_REQUEST );
$gBitSmarty->assign( 'errors', $newUser->mErrors );
}
// if no user data entered, check if it's a batch upload
} elseif( isset( $_REQUEST["batchimport"]) ) {
if( $_FILES['csvlist']['size'] && is_uploaded_file($_FILES['csvlist']['tmp_name'] ) ) {
batchImportUsers();
}
} elseif( isset( $_REQUEST["assume_user"]) ) {
$userInfo = $gBitUser->getUserInfo( array( 'user_id' => $_REQUEST["assume_user"] ) );
if( isset( $_REQUEST["confirm"] ) ) {
if( $gBitUser->assumeUser( $_REQUEST["assume_user"] ) ) {
header( 'Location: '.USERS_PKG_URL.'my.php' );
die;
}
} else {
$gBitSystem->setBrowserTitle( 'Assumer User Identity' );
$formHash['assume_user'] = $_REQUEST['assume_user'];
$msgHash = array(
'confirm_item' => tra( 'This will log you in as the user' )." $userInfo[real_name] ($userInfo[login])",
);
$gBitSystem->confirmDialog( $formHash,$msgHash );
}
} elseif( !empty( $_REQUEST['find'] ) ) {
$title = 'Find Users';
}
// Process actions here
// Remove user or remove user from group
if (isset($_REQUEST["action"])) {
$formHash['action'] = $_REQUEST['action'];
if ($_REQUEST["action"] == 'delete') {
$formHash['user_id'] = $_REQUEST['user_id'];
$userInfo = $gBitUser->getUserInfo( array( 'user_id' => $_REQUEST["user_id"] ) );
if( !empty( $userInfo['user_id'] ) ) {
if( isset( $_REQUEST["confirm"] ) ) {
if( $gBitUser->expunge( $_REQUEST["user_id"] ) ) {
$feedback['success'][] = tra( 'User Deleted' )." $userInfo[real_name] ($userInfo[login])";
}
} else {
$gBitSystem->setBrowserTitle( 'Delete user' );
$msgHash = array(
'confirm_item' => tra( 'Are you sure you want to remove the user?' ),
'warning' => tra( 'This will permentally delete the user' )." $userInfo[real_name] ($userInfo[login])",
);
$gBitSystem->confirmDialog( $formHash,$msgHash );
}
} else {
$feedback['error'][] = tra( 'User not found' );
}
}
if ($_REQUEST["action"] == 'removegroup') {
$gBitUser->removeUserFromGroup($_REQUEST["user"], $_REQUEST["group"]);
}
}
// get default group and pass it to tpl
foreach( $gBitUser->getDefaultGroup() as $defaultGroupId => $defaultGroupName ) {
$gBitSmarty->assign('defaultGroupId', $defaultGroupId );
$gBitSmarty->assign('defaultGroupName', $defaultGroupName );
}
$_REQUEST['max_records'] = 20;
$gBitUser->getList( $_REQUEST );
$gBitSmarty->assign_by_ref('users', $_REQUEST["data"]);
$gBitSmarty->assign_by_ref('usercount', $_REQUEST["cant"]);
if (isset($_REQUEST["numrows"]))
$_REQUEST["control"]["numrows"] = $_REQUEST["numrows"];
else
$_REQUEST["control"]["numrows"] = 10;
$_REQUEST["control"]["URL"] = USERS_PKG_URL."admin/index.php";
$gBitSmarty->assign_by_ref('control', $_REQUEST["control"]);
// 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
$gBitSystem->display( 'bitpackage:users/users_admin.tpl', (!empty( $title ) ? $title : 'Edit Users' ) );
?>