canEdit = $acl->acl_check( 'action', 'edit', 'users', $my->usertype, 'content', 'all' ); $access->canEditOwn = $acl->acl_check( 'action', 'edit', 'users', $my->usertype, 'content', 'own' ); require_once ( $mainframe->getPath( 'front_html' ) ); switch( $task ) { case 'saveUpload': // check to see if functionality restricted for use as demo site if ( $_VERSION->RESTRICT == 1 ) { mosRedirect( 'index.php?mosmsg=Functionality Restricted' ); } else { saveUpload( $mosConfig_dbprefix, $uid, $option, $userfile, $userfile_name, $type, $existingImage ); } break; case 'UserDetails': userEdit( $option, $my->id, _UPDATE ); break; case 'saveUserEdit': // check to see if functionality restricted for use as demo site if ( $_VERSION->RESTRICT == 1 ) { mosRedirect( 'index.php?mosmsg=Functionality Restricted' ); } else { userSave( $option, $my->id ); } break; case 'CheckIn': CheckIn( $my->id, $access, $option ); break; case 'cancel': mosRedirect( 'index.php' ); break; default: HTML_user::frontpage(); break; } function saveUpload( $_dbprefix, $uid, $option, $userfile, $userfile_name, $type, $existingImage ) { global $database; if ($uid == 0) { mosNotAuth(); return; } $base_Dir = 'images/stories/'; $checksize = filesize($userfile); if ($checksize > 50000) { header('Content-type: text/html; charset=UTF-8'); echo "\n"; } else { if (file_exists($base_Dir.$userfile_name)) { $message=_UP_EXISTS; eval ("\$message = \"$message\";"); print "\n"; } else { if ((!strcasecmp(substr($userfile_name,-4),".gif")) || (!strcasecmp(substr($userfile_name,-4),".jpg"))) { if (!move_uploaded_file($userfile, $base_Dir.$userfile_name)) { echo _UP_COPY_FAIL." $userfile_name"; } else { echo ""; if ($type=="news") { $op="UserNews"; } elseif ($type=="articles") { $op="UserArticle"; } if ($existingImage!="") { if (file_exists($base_Dir.$existingImage)) { //delete the exisiting file unlink($base_Dir.$existingImage); } } echo ""; echo ""; echo ""; echo ""; echo ""; } } else { header('Content-type: text/html; charset=UTF-8'); echo "\n"; } } } } function userEdit( $option, $uid, $submitvalue) { global $database, $mainframe; global $mosConfig_absolute_path; // security check to see if link exists in a menu $link = 'index.php?option=com_user&task=UserDetails'; $query = "SELECT id" . "\n FROM #__menu" . "\n WHERE link LIKE '%$link%'" . "\n AND published = 1" ; $database->setQuery( $query ); $exists = $database->loadResult(); if ( !$exists ) { mosNotAuth(); return; } require_once( $mosConfig_absolute_path .'/administrator/components/com_users/users.class.php' ); if ($uid == 0) { mosNotAuth(); return; } $row = new mosUser( $database ); $row->load( (int)$uid ); $row->orig_password = $row->password; $file = $mainframe->getPath( 'com_xml', 'com_users' ); $params =& new mosUserParameters( $row->params, $file, 'component' ); HTML_user::userEdit( $row, $option, $submitvalue, $params ); } function userSave( $option, $uid) { global $database, $my, $mosConfig_frontend_userparams; $user_id = intval( mosGetParam( $_POST, 'id', 0 )); // do some security checks if ($uid == 0 || $user_id == 0 || $user_id != $uid) { mosNotAuth(); return; } // simple spoof check security josSpoofCheck(); $row = new mosUser( $database ); $row->load( (int)$user_id ); $orig_password = $row->password; $orig_username = $row->username; if (!$row->bind( $_POST, 'gid usertype' )) { echo "\n"; exit(); } mosMakeHtmlSafe($row); if (isset($_POST['password']) && $_POST['password'] != '') { if (isset($_POST['verifyPass']) && ($_POST['verifyPass'] == $_POST['password'])) { $row->password = md5( $row->password ); } else { echo "\n"; exit(); } } else { // Restore 'original password' $row->password = $orig_password; } if ($mosConfig_frontend_userparams == '1' || $mosConfig_frontend_userparams == 1 || $mosConfig_frontend_userparams == NULL) { // save params $params = mosGetParam( $_POST, 'params', '' ); if (is_array( $params )) { $txt = array(); foreach ( $params as $k=>$v) { $txt[] = "$k=$v"; } $row->params = implode( "\n", $txt ); } } if (!$row->check()) { echo "\n"; exit(); } if (!$row->store()) { echo "\n"; exit(); } // check if username has been changed if ( $orig_username != $row->username ) { // change username value in session table $query = "UPDATE #__session" . "\n SET username = '$row->username'" . "\n WHERE username = '$orig_username'" . "\n AND userid = $my->id" . "\n AND gid = $my->gid" . "\n AND guest = 0" ; $database->setQuery( $query ); $database->query(); } mosRedirect( 'index.php', _USER_DETAILS_SAVE ); } function CheckIn( $userid, $access, $option ){ global $database; global $mosConfig_db; $nullDate = $database->getNullDate(); if (!($access->canEdit || $access->canEditOwn || $userid > 0)) { mosNotAuth(); return; } // security check to see if link exists in a menu $link = 'index.php?option=com_user&task=CheckIn'; $query = "SELECT id" . "\n FROM #__menu" . "\n WHERE link LIKE '%$link%'" . "\n AND published = 1" ; $database->setQuery( $query ); $exists = $database->loadResult(); if ( !$exists ) { mosNotAuth(); return; } $lt = mysql_list_tables($mosConfig_db); $k = 0; echo "
| "; echo _CHECK_TABLE; echo " - $tn | "; echo "\n"; echo _CHECKED_IN; echo "$num"; echo _CHECKED_IN_ITEMS; echo " | "; echo "\n