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' ) );
include_once( "administrator/components/com_comprofiler/ue_config.php" );
include_once("administrator/components/com_comprofiler/plugin.class.php");
include_once ("administrator/components/com_comprofiler/comprofiler.class.php");
include_once("administrator/components/com_comprofiler/imgToolbox.class.php");
$UElanguagePath=$mainframe->getCfg( 'absolute_path' ).'/components/com_comprofiler/plugin/language';
if (file_exists($UElanguagePath.'/'.$mosConfig_lang.'/'.$mosConfig_lang.'.php')) {
include_once($UElanguagePath.'/'.$mosConfig_lang.'/'.$mosConfig_lang.'.php');
} else include_once($UElanguagePath.'/default_language/default_language.php');
$form=mosGetParam( $_REQUEST, 'reportform', 1 );
$uid=mosGetParam( $_REQUEST, 'uid', 0 );
$act=mosGetParam( $_REQUEST, 'act', 1 );
if(!ISSET($mosConfig_emailpass)) $mosConfig_emailpass=0;
switch( $task ) {
case "userDetails":
case "userdetails":
userEdit( $option, $my->id, _UE_UPDATE );
break;
case "saveUserEdit":
case "saveuseredit":
userSave( $my->id );
break;
case "userProfile":
case "userprofile":
userProfile($option, $my->id, _UE_UPDATE);
break;
case "usersList":
case "userslist":
usersList($my->id);
break;
case "userAvatar":
case "useravatar":
userAvatar($option, $my->id, _UE_UPDATE);
break;
case "lostPassword":
case "lostpassword":
lostPassForm( $option );
break;
case "sendNewPass":
case "sendnewpass":
sendNewPass( $option );
break;
case "registers":
registerForm( $option, $mosConfig_emailpass );
break;
case "saveRegistration":
case "saveregistration":
saveRegistration( $option );
break;
case "login":
login();
break;
case "logout":
logout();
break;
case "confirm":
confirm( mosGetParam( $_REQUEST, 'confirmcode', 1 ) );
break;
case "moderateImages":
case "moderateimages":
moderateImages($option);
break;
case "moderateReports":
case "moderatereports":
moderateReports($option);
break;
case "moderateBans":
case "moderatebans":
moderateBans($option);
break;
case "approveImage":
case "approveimage":
approveImage();
break;
case "reportUser":
case "reportuser":
reportUser($option,$form,$uid);
break;
case "processReports":
case "processreports":
processReports();
break;
case "banProfile":
case "banprofile":
banUser($option,$uid,$form,$act);
break;
case "viewReports":
case "viewreports":
viewReports($option,$uid);
break;
case "emailUser":
case "emailuser":
emailUser($option,$uid);
break;
case "pendingApprovalUser":
case "pendingapprovaluser":
pendingApprovalUsers($option);
break;
case "approveUser":
case "approveuser":
approveUser(mosGetParam($_POST,'uids'));
break;
case "rejectUser":
case "rejectuser":
rejectUser(mosGetParam($_POST,'uids'));
break;
case "sendUserEmail":
case "senduseremail":
sendUserEmail(mosGetParam($_POST,'toID'),mosGetParam($_POST,'fromID'),mosGetParam($_POST,'emailSubject'),mosGetParam($_POST,'emailBody'));
break;
case "addConnection":
case "addconnection":
addConnection($my->id,mosGetParam($_REQUEST,'connectionid'),((isset($_POST['message'])) ? mosGetParam($_POST,'message') : ""));
break;
case "removeConnection":
case "removeconnection":
removeConnection($my->id,mosGetParam($_REQUEST,'connectionid'));
break;
case "denyConnection":
case "denyconnection":
denyConnection($my->id,mosGetParam($_REQUEST,'connectionid'));
break;
case "acceptConnection":
case "acceptconnection":
acceptConnection($my->id,mosGetParam($_REQUEST,'connectionid'));
break;
case "manageConnections":
case "manageconnections":
manageConnections($my->id);
break;
case "saveConnections":
case "saveconnections":
saveConnections(mosGetParam($_POST,'uid'));
break;
case "processConnectionActions":
case "processconnectionactions":
processConnectionActions(mosGetParam($_POST,'uid'));
break;
case "teamCredits":
case "teamcredits":
teamCredits(1);
break;
case "tabclass":
tabClass($option, $my->id);
break;
default:
userProfile($option, $my->id, _UE_UPDATE);
break;
}
function sendUserEmail($toid,$fromid,$subject,$message) {
global $ueConfig,$my, $database;
if (($my->id == 0) || ($my->id != $fromid) || ($ueConfig['allow_email_display']!=1 && $ueConfig['allow_email_display']!=3)) {
mosNotAuth();
return;
}
$rowFrom = new mosUser( $database );
$rowFrom->load( $fromid );
$rowTo = new mosUser( $database );
$rowTo->load( $toid );
if (isset($_POST["protect"])
&& $_POST["protect"] == md5("hash".$rowTo->id.$rowTo->password.$rowTo->lastvisitDate.$rowFrom->password.$rowFrom->lastvisitDate) ) {
$cbNotification = new cbNotification();
$res=$cbNotification->sendUserEmail($toid,$fromid,$subject,$message, true);
if ($res) echo _UE_SENTEMAILSUCCESS;
else echo _UE_SENTEMAILFAILED;
} else {
echo _UE_SESSIONTIMEOUT." "._UE_SENTEMAILFAILED;
}
}
function emailUser($option,$uid) {
global $database,$ueConfig,$my;
if (($my->id == 0) || ($ueConfig['allow_email_display']!=1 && $ueConfig['allow_email_display']!=3)) {
mosNotAuth();
return;
}
$rowFrom = new mosUser( $database );
$rowFrom->load( $my->id );
$rowTo = new mosUser( $database );
$rowTo->load( $uid );
HTML_comprofiler::emailUser($option,$rowFrom,$rowTo);
}
function userEdit( $option, $uid, $submitvalue) {
global $database,$ueConfig;
if ($uid == 0) {
mosNotAuth();
return;
}
$database->setQuery( "SELECT * FROM #__comprofiler c, #__users u WHERE c.id=u.id AND c.id='".$uid."'");
$users = $database->loadObjectList();
$user = $users[0];
HTML_comprofiler::userEdit( $user, $option, $submitvalue);
}
function userAvatar( $option, $uid, $submitvalue) {
global $database;
if ($uid == 0) {
mosNotAuth();
return;
}
$row = new mosUser( $database );
$row->load( $uid );
$row->orig_password = $row->password;
HTML_comprofiler::userAvatar( $row, $option, $submitvalue);
}
function setUserDBrequest( $uid ) {
global $database;
if (!isset($_REQUEST['user'])) {
if (!$uid) {
return false;
}
$database->setQuery( "SELECT * FROM #__comprofiler c, #__users u WHERE c.id=u.id AND c.id=".$uid);
} else {
$userReq = urldecode(cbGetUnEscaped($_REQUEST['user']));
$len = strlen($userReq);
if (($len > 2) && (substr($userReq, 0, 1) == "'") && (substr($userReq, $len-1, 1) == "'")) {
$userReq = substr($userReq, 1, $len-2);
$database->setQuery( "SELECT * FROM #__comprofiler c, #__users u WHERE c.id=u.id AND u.username='".cbGetEscaped(utf8ToISO($userReq))."'");
} else {
$database->setQuery( "SELECT * FROM #__comprofiler c, #__users u WHERE c.id=u.id AND c.id=".cbGetEscaped($_REQUEST['user']));
}
}
return true;
}
function userProfile( $option, $uid, $submitvalue) {
global $database, $_REQUEST, $ueConfig,$my;
if (!allowAccess( $ueConfig['allow_profileviewbyGID'],'RECURSE', userGID($my->id))) {
echo _UE_NOT_AUTHORIZED;
return;
}
if (!ISSET($_REQUEST['user']) && $uid==0) {
echo _UE_REGISTERFORPROFILE;
return;
}
$users=array();
if (setUserDBrequest($uid)) {
$users = $database->loadObjectList();
}
if (count($users)==0) {
echo _UE_NOSUCHPROFILE;
return;
}
$user = $users[0];
HTML_comprofiler::userProfile( $user, $option, $submitvalue);
}
function tabClass( $option, $uid ) {
global $database, $_REQUEST, $ueConfig,$my;
$users=array();
if (setUserDBrequest($uid)) {
$users = $database->loadObjectList();
}
if (count($users)==0) {
$user = null;
} else {
$user = $users[0];
}
HTML_comprofiler::tabClass( $user, $option );
}
function usersList($uid) {
global $database,$my,$ueConfig,$_POST,$_REQUEST;
$database->setQuery("SELECT listid, title FROM #__comprofiler_lists WHERE published=1 AND useraccessgroupid IN (".implode(',',getChildGIDS(userGID($uid))).") ORDER BY ordering");
$plists = $database->loadObjectList();
//print $database->getQuery();
$lists = array();
$publishedlists = array();
for ($i=0, $n=count( $plists ); $i < $n; $i++) {
$plist =& $plists[$i];
$publishedlists[] = mosHTML::makeOption( $plist->listid, getLangDefinition($plist->title) );
}
if(!isset($_POST['listid']) && !isset($_REQUEST['listid'])) {
$database->setQuery( "SELECT listid FROM #__comprofiler_lists "
. "\n WHERE `default`=1 AND published=1" );
$listid = $database->loadresult();
} else {
if(isset($_POST['listid'])) $listid = cbGetEscaped($_POST['listid']);
else $listid = cbGetEscaped($_REQUEST['listid']);
}
if(!$listid > 0) {
echo _UE_NOLISTFOUND;
return;
}
if (count($plists)>1) {
$lists['plists'] = mosHTML::selectList( $publishedlists, 'listid', 'class="inputbox" size="1" onchange="this.form.submit();"', 'value', 'text', $listid );
} else {
$lists['plists'] = " ";
}
$database->setQuery( "SELECT l.* FROM #__comprofiler_lists l"
. "\n WHERE l.listid='$listid' AND l.published=1" );
$row = $database->loadObjectList();
if (!allowAccess( $row[0]->useraccessgroupid,'RECURSE', userGID($uid))) {
echo _UE_NOT_AUTHORIZED;
return;
}
$col=$row[0]->col1fields;
$col=explode('|*|',$col);
$lfields="";
for ($i=0, $n=count( $col ); $i < $n; $i++) {
if($i==0) $lfields .= "
\n";
else $lfields .= " \n";
if($col[$i]!='' && $col[$i]!=null) {
$database->setQuery( "SELECT f.name, f.title, f.type "
. "\nFROM #__comprofiler_fields AS f"
. "\nWHERE f.published = 1 AND f.fieldid=".$col[$i]);
$cfield = $database->loadObjectList();
$cfield = $cfield[0];
if($row[0]->col1captions==1) $oTitle = str_replace("'","\\'",getLangDefinition($cfield->title)).": ";
else $oTitle='';
$lfields .= " \".getFieldValue('".$cfield->type."',\$user->".$cfield->name.",\$user,'".$oTitle."').\"";
}
}
$lfields .= " | \n";
if($row[0]->col2enabled) {
$col=$row[0]->col2fields;
$col=explode('|*|',$col);
for ($i=0, $n=count( $col ); $i < $n; $i++) {
if($i==0) $lfields .= "\n";
else $lfields .= " \n";
if($col[$i]!='' && $col[$i]!=null) {
$database->setQuery( "SELECT f.name, f.title, f.type "
. "\nFROM #__comprofiler_fields AS f"
. "\nWHERE f.published = 1 AND f.fieldid=".$col[$i]);
$cfield = $database->loadObjectList();
$cfield = $cfield[0];
if($row[0]->col2captions==1) $oTitle = str_replace("'","\\'",getLangDefinition($cfield->title)).": ";
else $oTitle='';
$lfields .= " \".getFieldValue('".$cfield->type."',\$user->".$cfield->name.",\$user,'".$oTitle."').\"";
}
}
$lfields .= " | \n";
}
if($row[0]->col3enabled) {
$col=$row[0]->col3fields;
$col=explode('|*|',$col);
for ($i=0, $n=count( $col ); $i < $n; $i++) {
if($i==0) $lfields .= "\n";
else $lfields .= " \n";
$database->setQuery( "SELECT f.name, f.title, f.type "
. "\nFROM #__comprofiler_fields AS f"
. "\nWHERE f.published = 1 AND f.fieldid=".$col[$i]);
$cfield = $database->loadObjectList();
$cfield = $cfield[0];
if($row[0]->col3captions==1) $oTitle = str_replace("'","\\'",getLangDefinition($cfield->title)).": ";
else $oTitle='';
$lfields .= " \".getFieldValue('".$cfield->type."',\$user->".$cfield->name.",\$user,'".$oTitle."').\"";
}
$lfields .= " | \n";
}
if($row[0]->col4enabled) {
$col=$row[0]->col4fields;
$col=explode('|*|',$col);
for ($i=0, $n=count( $col ); $i < $n; $i++) {
if($i==0) $lfields .= "\n";
else $lfields .= " \n";
if($col[$i]!='' && $col[$i]!=null) {
$database->setQuery( "SELECT f.name, f.title, f.type "
. "\nFROM #__comprofiler_fields AS f"
. "\nWHERE f.published = 1 AND f.fieldid=".$col[$i]);
$cfield = $database->loadObjectList();
$cfield = $cfield[0];
if($row[0]->col4captions==1) $oTitle = str_replace("'","\\'",getLangDefinition($cfield->title)).": ";
else $oTitle='';
$lfields .= " \".getFieldValue('".$cfield->type."',\$user->".$cfield->name.",\$user,'".$oTitle."').\"";
}
}
$lfields .= " | \n";
}
$row=$row[0];
HTML_comprofiler::usersList($row,$lfields,$lists,$listid);
}
function userSave($uid) {
global $database,$ueConfig,$_REQUEST,$_POST,$_PLUGINS;
$user_id = intval( mosGetParam( $_POST, 'id', 0 ));
if ($uid == 0 || $user_id == 0 || $user_id <> $uid) {
mosNotAuth();
return;
}
$row = new mosUser( $database );
$row->load( $user_id );
$row->orig_password = $row->password;
if (!$row->bind( $_POST )) {
echo "\n";
exit();
}
SWITCH ($ueConfig['name_style']) {
case 2:
$row->name = cbGetUnEscaped(((isset($_POST['firstname'])) ? $_POST['firstname'] : "") . ' '
. ((isset($_POST['lastname'])) ? $_POST['lastname'] : ""));
break;
case 3:
$row->name = cbGetUnEscaped(((isset($_POST['firstname'])) ? $_POST['firstname'] : "") . ' '
. ((isset($_POST['middlename'])) ? ($_POST['middlename'] . ' ') : "")
. ((isset($_POST['lastname'])) ? $_POST['lastname'] : ""));
break;
}
mosMakeHtmlSafe($row);
if(isset($_POST["password"]) && $_POST["password"] != "") {
if(isset($_POST["verifyPass"]) && ($_POST["verifyPass"] == $_POST["password"])) {
$row->password = md5($_POST["password"]);
} else {
echo "\n";
exit();
}
} else {
// Restore 'original password'
$row->password = $row->orig_password;
}
if (!$row->check()) {
echo "\n";
exit();
}
unset($row->orig_password); // prevent DB error!!
$database->setQuery( "SELECT f.* FROM #__comprofiler_fields f, #__comprofiler_tabs t"
. "\n WHERE f.published=1 and f.tabid = t.tabid AND t.enabled=1 and f.readonly=0" );
$rowFields = $database->loadObjectList();
$cbFields=new cbFields();
$rowExtras = new stdClass();
for($i=0, $n=count( $rowFields ); $i < $n; $i++) {
$field=cbGetEscaped($rowFields[$i]->name);
$value=null;
if(isset($_POST[$rowFields[$i]->name])) $value=$cbFields->prepareFieldDataSave($rowFields[$i]->type,$rowFields[$i]->name,$_POST[$rowFields[$i]->name]);
$rowExtras->$field=$value;
}
$rowExtras->id=$user_id;
$rowExtras->user_id=$user_id;
$rowExtras->lastupdatedate=date('Y-m-d\TH:i:s');
$rowExtras->firstname=cbGetUnEscaped((isset($_POST['firstname']) ? $_POST['firstname'] : ""));
$rowExtras->middlename=cbGetUnEscaped((isset($_POST['middlename']) ? $_POST['middlename'] : ""));
$rowExtras->lastname=cbGetUnEscaped((isset($_POST['lastname']) ? $_POST['lastname'] : ""));
$_PLUGINS->loadPluginGroup('user');
$_PLUGINS->trigger( 'onBeforeUserUpdate', array(&$row,&$rowExtras));
if($_PLUGINS->is_errors()) {
echo "\n";
exit();
}
if (!$row->store()) {
echo "\n";
exit();
}
if($database->updateObject( '#__comprofiler', $rowExtras, 'id')) {
echo "\n";
}
$tabs = new cbTabs( 0, 1);
$tabs->savePluginTabs($row, $rowExtras, $_POST);
$_PLUGINS->trigger( 'onAfterUserUpdate', array($row, $rowExtras, true));
if(!isset($_REQUEST['Itemid'])) {
$database->setQuery("SELECT id FROM #__menu WHERE link = 'index.php?option=com_comprofiler' AND published=1");
$Itemid = $database->loadResult();
} else {
$Itemid = $_REQUEST['Itemid'];
}
mosRedirect(sefRelToAbs("index.php?option=com_comprofiler&Itemid=".$Itemid."&task=userDetails"), _USER_DETAILS_SAVE);
}
function mosGetConfig() {
$configfile = "administrator/components/com_comprofiler/ue_config.php";
include_once( $configfile );
RETURN $ueConfig;
}
function lostPassForm( $option ) {
HTML_comprofiler::lostPassForm($option);
}
function sendNewPass( $option ) {
global $database, $Itemid;
global $ueConfig,$_PLUGINS;
// ensure no malicous sql gets past
$checkusername = trim( mosGetParam( $_POST, 'checkusername', '') );
$confirmEmail = trim( mosGetParam( $_POST, 'confirmEmail', '') );
$database->setQuery( "SELECT id FROM #__users"
. "\nWHERE username='$checkusername' AND email='$confirmEmail'"
);
if (!($user_id = $database->loadResult()) || !$checkusername || !$confirmEmail) {
mosRedirect(sefRelToAbs("index.php?option=$option&task=lostPassword"),_ERROR_PASS );
}
$newpass = makePass();
$message = _NEWPASS_MSG;
eval ("\$message = \"$message\";");
$subject = _NEWPASS_SUB;
eval ("\$subject = \"$subject\";");
$cbNotification = new cbNotification();
$res=$cbNotification->sendFromSystem($user_id,$subject,$message);
if ($res) {
$_PLUGINS->loadPluginGroup('user');
$_PLUGINS->trigger( 'onNewPassword', array($user_id,$newpass));
$newpass = md5( $newpass );
$sql = "UPDATE #__users SET password='$newpass' WHERE id='".cbGetEscaped($user_id)."'";
$database->setQuery( $sql );
if (!$database->query()) {
die("SQL error" . $database->stderr(true));
}
mosRedirect(sefRelToAbs("index.php?Itemid=".$Itemid),_NEWPASS_SENT );
} else {
mosRedirect(sefRelToAbs("index.php?Itemid=".$Itemid),_UE_NEWPASS_FAILED );
}
}
function makePass(){
$makepass="";
$salt = "abchefghjkmnpqrstuvwxyz0123456789";
srand((double)microtime()*1000000);
$i = 0;
while ($i <= 7) {
$num = rand() % 33;
$tmp = substr($salt, $num, 1);
$makepass = $makepass . $tmp;
$i++;
}
return ($makepass);
}
function registerForm( $option, $emailpass,$regErrorMSG=null ) {
global $mosConfig_allowUserRegistration, $database, $my,$_POST;
if ($mosConfig_allowUserRegistration == "0") {
mosNotAuth();
return;
}
$database->setQuery( "SELECT f.* FROM #__comprofiler_fields f, #__comprofiler_tabs t"
. "\n WHERE t.tabid = f.tabid AND f.published=1 AND f.registration=1 AND t.enabled=1"
. "\n ORDER BY t.ordering, f.ordering" );
$rowFields = $database->loadObjectList();
$rowFieldValues=array();
for ($i=0, $n=count( $rowFields ); $i < $n; $i++) {
$k="";
if ($regErrorMSG!==null && (isset($_POST[$rowFields[$i]->name]) || ($rowFields[$i]->type=='webaddress' && $rowFields[$i]->rows==2 && isset($_POST[$rowFields[$i]->name."Text"])))) {
if (is_array($_POST[$rowFields[$i]->name])) $k = implode("|*|",$_POST[$rowFields[$i]->name]);
else $k=$_POST[$rowFields[$i]->name];
$k=htmlentities($k);
} elseif ($regErrorMSG===null) {
$_POST[$rowFields[$i]->name] = $rowFields[$i]->default;
}
$database->setQuery( "SELECT fieldtitle FROM #__comprofiler_field_values"
. "\n WHERE fieldid = ".$rowFields[$i]->fieldid
. "\n ORDER BY ordering" );
$Values = $database->loadObjectList();
$multi="";
if($rowFields[$i]->type=='multiselect') $multi="multiple='multiple'";
if(count($Values) > 0) {
if($rowFields[$i]->type=='radio') {
$rowFieldValues['lst_'.$rowFields[$i]->name] = moscomprofilerHTML::radioListTable( $Values, $rowFields[$i]->name,
'class="inputbox" size="1" mosReq="'.$rowFields[$i]->required.'" mosLabel="'.getLangDefinition($rowFields[$i]->title).'"',
'fieldtitle', 'fieldtitle', $k, $rowFields[$i]->cols, $rowFields[$i]->rows, $rowFields[$i]->size, $rowFields[$i]->required);
} else {
$ks=explode("|*|",$k);
$k = array();
foreach($ks as $kv) {
$k[]->fieldtitle=$kv;
}
if($rowFields[$i]->type=='multicheckbox') {
$rowFieldValues['lst_'.$rowFields[$i]->name] = moscomprofilerHTML::checkboxListTable( $Values, $rowFields[$i]->name."[]",
'class="inputbox" size="'.$rowFields[$i]->size.'" '.$multi.' mosLabel="'.getLangDefinition($rowFields[$i]->title).'"',
'fieldtitle', 'fieldtitle', $k, $rowFields[$i]->cols, $rowFields[$i]->rows, $rowFields[$i]->size, $rowFields[$i]->required);
} else {
$rowFieldValues['lst_'.$rowFields[$i]->name] = moscomprofilerHTML::selectList( $Values, $rowFields[$i]->name."[]",
'class="inputbox" size="'.$rowFields[$i]->size.'" '.$multi.' mosReq="'.$rowFields[$i]->required.'" mosLabel="'.getLangDefinition($rowFields[$i]->title).'"',
'fieldtitle', 'fieldtitle', $k);
}
}
}
}
if ($regErrorMSG===null) {
$regErrorMSG = ""; // So that default values are displayed
$_POST['firstname'] = "";
$_POST['middlename'] = "";
$_POST['lastname'] = "";
$_POST['name'] = "";
$_POST['username'] = "";
$_POST['email'] = "";
}
HTML_comprofiler::registerForm($option, $emailpass, $rowFields, $rowFieldValues,$regErrorMSG);
}
function saveRegistration( $option ) {
global $database, $my, $acl,$ueConfig,$_POST;
global $mosConfig_emailpass, $mosConfig_allowUserRegistration,$_PLUGINS;
if ($mosConfig_allowUserRegistration=="0") {
mosNotAuth();
return;
}
$database->setQuery("SELECT id FROM #__users WHERE email = '".cbGetEscaped( $_POST['email'] )."' AND username='0'");
$uid = $database->loadResult();
if($uid >0 ) $_POST['id'] = $uid;
$row = new mosUser( $database );
if (!$row->bind( $_POST )) {
echo "\n";
registerForm( $option, $mosConfig_emailpass,$row->getError() );
return;
}
SWITCH ($ueConfig['name_style']) {
case 2:
$row->name = $_POST['firstname'] . ' ' . $_POST['lastname'];
break;
case 3:
if(isset($_POST['middlename'])) $row->name = $_POST['firstname'] . ' ' . $_POST['middlename']. ' ' . $_POST['lastname'];
else $row->name = $_POST['firstname']. ' ' . $_POST['lastname'];
break;
}
mosMakeHtmlSafe($row);
$pwd = '';
$row->gid = $acl->get_group_id('Registered','ARO');
if (!$row->password) {
$pwd = makePass();
$row->password = md5( $pwd );
// $includePWD=1;
} else {
$pwd = $row->password;
$row->password = md5( $row->password );
// $includePWD=0;
}
$row->registerDate = date("Y-m-d\TH:i:s");
if (!$row->check()) {
echo "\n";
registerForm( $option, $mosConfig_emailpass,$row->getError() );
return;
}
if ($ueConfig['reg_admin_approval']=="0") {
$approved="1";
} else {
$approved="0";
}
if ($ueConfig['reg_confirmation']=="0") {
$confirmed="1";
} else {
$confirmed="0";
}
if(ISSET($_POST['acceptedterms'])) $acceptedterms=cbGetUnEscaped($_POST['acceptedterms']);
else $acceptedterms=null;
$database->setQuery( "SELECT f.* FROM #__comprofiler_fields f, #__comprofiler_tabs t"
. "\n WHERE f.published=1 and f.tabid = t.tabid and f.registration=1 and t.enabled=1" );
$rowFields = $database->loadObjectList();
$cbFields=new cbFields();
$rowExtras = new stdClass();
for($i=0, $n=count( $rowFields ); $i < $n; $i++) {
$field=cbGetEscaped($rowFields[$i]->name);
$value=null;
if(isset($_POST[$rowFields[$i]->name])) $value=$cbFields->prepareFieldDataSave($rowFields[$i]->type,$rowFields[$i]->name,$_POST[$rowFields[$i]->name]);
$rowExtras->$field=$value;
}
$rowExtras->id=null;
$rowExtras->user_id=null;
$rowExtras->firstname=cbGetUnEscaped((isset($_POST['firstname']) ? $_POST['firstname'] : ""));
$rowExtras->middlename=cbGetUnEscaped((isset($_POST['middlename']) ? $_POST['middlename'] : ""));
$rowExtras->lastname=cbGetUnEscaped((isset($_POST['lastname']) ? $_POST['lastname'] : ""));
$rowExtras->acceptedterms=$acceptedterms;
$rowExtras->approved=$approved;
$rowExtras->confirmed=$confirmed;
$_PLUGINS->loadPluginGroup('user');
$_PLUGINS->trigger( 'onBeforeUserRegistration', array(&$row,&$rowExtras));
if($_PLUGINS->is_errors()) {
echo "\n";
registerForm( $option, $mosConfig_emailpass,$_PLUGINS->getErrorMSG("
") );
return;
}
if (!$row->store()) {
echo "\n";
registerForm( $option, $mosConfig_emailpass,$row->getError() );
return;
}
$database->setQuery("SELECT id FROM #__users WHERE username = '".cbGetEscaped( $_POST['username'] )."'");
$uid = $database->loadResult();
$row->id=$uid;
$rowExtras->id=$uid;
$rowExtras->user_id=$uid;
if(!$database->insertObject( '#__comprofiler', $rowExtras)) {
echo "store error:".htmlentities($database->stderr(true))."\n";
exit();
}
$tabs = new cbTabs( 0, 1);
$results_save_tabs = $tabs->saveRegistrationPluginTabs($row, $_POST);
$_PLUGINS->trigger( 'onAfterUserRegistration', array($row, $rowExtras, true));
if($mosConfig_emailpass == "1") $row->password =$pwd ;
$query = "SELECT * FROM #__comprofiler c, #__users u WHERE c.id=u.id AND c.id =" . $uid;
$database->setQuery($query);
$user = $database->loadObjectList();
$cbNotification = new cbNotification();
$modSub=null;
$modMSG=null;
if($confirmed==0) {
$cbNotification->sendFromSystem($user[0],getLangDefinition($ueConfig['reg_pend_appr_sub']),getLangDefinition($ueConfig['reg_pend_appr_msg']));
} elseif($approved==0 && $confirmed==1) {
$cbNotification->sendFromSystem($user[0],getLangDefinition($ueConfig['reg_pend_appr_sub']),getLangDefinition($ueConfig['reg_pend_appr_msg']));
$modSub=_UE_REG_ADMIN_PA_SUB;
$modMSG=_UE_REG_ADMIN_PA_MSG;
} else {
$cbNotification->sendFromSystem($user[0],getLangDefinition($ueConfig['reg_welcome_sub']),getLangDefinition($ueConfig['reg_welcome_msg']));
$modSub=_UE_REG_ADMIN_SUB;
$modMSG=_UE_REG_ADMIN_MSG;
$_PLUGINS->trigger( 'onUserActive', array($user[0],true));
}
if($modSub!=null) {
if($ueConfig['moderatorEmail']) {
$cbNotification->sendToModerators($modSub,$cbNotification->_replaceVariables($modMSG,$user[0]));
}
}
if ($mosConfig_emailpass == "1" && $ueConfig['reg_admin_approval']=="1" && $ueConfig['reg_confirmation']=="0"){
echo _UE_REG_COMPLETE_NOPASS_NOAPPR;
} elseif ($mosConfig_emailpass == "1" && $ueConfig['reg_admin_approval']=="1" && $ueConfig['reg_confirmation']=="1") {
echo _UE_REG_COMPLETE_NOPASS_NOAPPR_CONF;
} elseif ($mosConfig_emailpass == "1" && $ueConfig['reg_admin_approval']=="0" && $ueConfig['reg_confirmation']=="0") {
echo _UE_REG_COMPLETE_NOPASS;
} elseif ($mosConfig_emailpass == "1" && $ueConfig['reg_admin_approval']=="0" && $ueConfig['reg_confirmation']=="1") {
echo _UE_REG_COMPLETE_NOPASS_CONF;
} elseif ($mosConfig_emailpass == "0" && $ueConfig['reg_admin_approval']=="1" && $ueConfig['reg_confirmation']=="0") {
echo _UE_REG_COMPLETE_NOAPPR;
} elseif ($mosConfig_emailpass == "0" && $ueConfig['reg_admin_approval']=="1" && $ueConfig['reg_confirmation']=="1") {
echo _UE_REG_COMPLETE_NOAPPR_CONF;
} elseif ($mosConfig_emailpass == "0" && $ueConfig['reg_admin_approval']=="0" && $ueConfig['reg_confirmation']=="1") {
echo _UE_REG_COMPLETE_CONF;
} else {
echo _UE_REG_COMPLETE;
}
foreach ($results_save_tabs as $res) {
if ($res) echo "
".$res;
}
}
function login( $username=null,$passwd=null ) {
global $acl,$database,$_COOKIE,$_POST,$mainframe, $ueConfig,$mainframe,$_PLUGINS;
// $usercookie = mosGetParam( $_COOKIE, 'usercookie', '' );
// $sessioncookie = mosGetParam( $_COOKIE, 'sessioncookie', '' );
if (!$username || !$passwd) {
$username = trim( mosGetParam( $_POST, 'username', '' ) );
$passwd2 = trim( mosGetParam( $_POST, 'passwd', '' ) );
$passwd = md5( $passwd2 );
}
$return = trim( mosGetParam( $_POST, 'return', null ) );
$message = trim( mosGetParam( $_POST, 'message', 0 ) );
// $remember = trim( mosGetParam( $_POST, 'remember', '' ) );
// $lang = trim( mosGetParam( $_POST, 'lang', '' ) );
if (!$username || !$passwd) {
echo "\n";
exit();
} else {
$database->setQuery( "SELECT * "
. "\nFROM #__users u, "
. "\n#__comprofiler ue"
. "\nWHERE u.username='".$username."' AND u.password='".$passwd."' AND u.id = ue.id"
);
$row = null;
if ($database->loadObject( $row )) {
if ($row->block == 1) {
echo "\n";
exit();
}
else if ($row->approved == 2){
echo "\n";
exit();
}
else if ($row->approved == 0){
echo "\n";
exit();
}
else if ($row->confirmed != 1){
$cbNotification = new cbNotification();
$cbNotification->sendFromSystem($row->id,getLangDefinition($ueConfig['reg_pend_appr_sub']),getLangDefinition($ueConfig['reg_pend_appr_msg']));
//createEmail($row,'pending',$ueConfig);
echo "\n";
exit();
}
else if ($row->lastvisitDate == '0000-00-00 00:00:00') {
if (isset($ueConfig['reg_first_visit_url']) and ($ueConfig['reg_first_visit_url'] != "")) {
$return = sefRelToAbs($ueConfig['reg_first_visit_url']);
}
}
} else {
echo "\n";
exit();
}
$_PLUGINS->loadPluginGroup('user');
$_PLUGINS->trigger( 'onBeforeLogin', array($username, $passwd2));
//print_r($results);
if($_PLUGINS->is_errors()) {
echo "\n";
exit();
}
$mainframe->login($username,$passwd);
$_PLUGINS->trigger( 'onAfterLogin', array($row, true));
// JS Popup message
if ( $message ) {
?>
setQuery( "SELECT * "
. "\nFROM #__users u, "
. "\n#__comprofiler ue"
. "\nWHERE u.id=".$my->id." AND u.id = ue.id"
);
$row = null;
$database->loadObject( $row );
$_PLUGINS->loadPluginGroup('user');
$_PLUGINS->trigger( 'onBeforeLogout', array($row));
if($_PLUGINS->is_errors()) {
echo "\n";
exit();
}
$mainframe->logout();
$_PLUGINS->trigger( 'onAfterLogout', array($row, true));
// JS Popup message
if ( $message ) {
?>
id < 1) {
$query = "SELECT * FROM #__comprofiler c, #__users u WHERE c.id=u.id AND md5(c.id) = '" . cbGetEscaped($confirmcode) . "'";
$database->setQuery($query);
$user = $database->loadObjectList();
if ($user === null) {
mosNotAuth();
return;
}
$_PLUGINS->loadPluginGroup('user');
$_PLUGINS->trigger( 'onBeforeUserConfirm', array($user[0]));
if($_PLUGINS->is_errors()) {
echo $_PLUGINS->getErrorMSG("
");
exit();
}
$query = "UPDATE #__comprofiler SET confirmed = 1 WHERE md5(id) = '" . cbGetEscaped($confirmcode) . "'";
$database->setQuery($query);
$database->query();
if(mysql_affected_rows() == 0) {
if ($user == null) {
echo _UE_USER_NOTCONFIRMED . "
";
} else {
if ($user[0]->approved == 0) echo _UE_USER_CONFIRMED_NEEDAPPR . "
";
else echo _UE_USER_CONFIRMED . "
";
}
} else {
$_PLUGINS->trigger( 'onAfterUserConfirm', array($user[0],true));
$cbNotification = new cbNotification();
if($user[0]->approved == 0) {
if($ueConfig['moderatorEmail']==1) {
$cbNotification->sendToModerators(_UE_REG_ADMIN_PA_SUB,$cbNotification->_replaceVariables(_UE_REG_ADMIN_PA_MSG,$user[0]));
}
echo _UE_USER_CONFIRMED_NEEDAPPR . "
";
} else {
if($ueConfig['moderatorEmail']==1) {
$cbNotification->sendToModerators(_UE_REG_ADMIN_SUB,$cbNotification->_replaceVariables(_UE_REG_ADMIN_MSG,$user[0]));
}
$_PLUGINS->trigger( 'onUserActive', array($user[0],true));
$cbNotification->sendFromSystem($user[0],getLangDefinition($ueConfig['reg_welcome_sub']),getLangDefinition($ueConfig['reg_welcome_msg']));
echo _UE_USER_CONFIRMED . "
";
}
//$tabs = new cbTabs( 0, 1);
//$tabs->confirmRegistrationPluginTabs($user[0]);
}
} else {
if(!isset($_REQUEST['Itemid'])) {
$database->setQuery("SELECT id FROM #__menu WHERE link = 'index.php?option=com_comprofiler' AND published=1");
$Itemid = $database->loadResult();
} else {
$Itemid = $_REQUEST['Itemid'];
}
mosRedirect(sefRelToAbs('index.php?option=com_comprofiler&Itemid='.$Itemid));
}
}
function approveImage(){
global $database,$_POST,$_REQUEST,$mosConfig_absolute_path,$my,$ueConfig;
$isModerator=isModerator($my->id);
if (!$isModerator) {
mosNotAuth();
return;
}
$avatars=array();
if(isset($_POST['avatar'])) $avatars=$_POST['avatar'];
else $avatars[] = $_REQUEST['avatars'];
if(isset($_POST['act'])) $act=$_POST['act'];
else $act = $_REQUEST['flag'];
$cbNotification = new cbNotification();
if($act=='1') {
foreach ($avatars AS $avatar) {
$query = "UPDATE #__comprofiler SET avatarapproved = 1, lastupdatedate='".date('Y-m-d\TH:i:s')."' WHERE id = '" . cbGetEscaped($avatar) . "'";
$database->setQuery($query);
$database->query();
$cbNotification->sendFromSystem($avatar,_UE_IMAGEAPPROVED_SUB,_UE_IMAGEAPPROVED_MSG);
//createEmail($row,'imageApproved',$ueConfig);
}
} else {
foreach ($avatars AS $avatar) {
$query = "SELECT avatar FROM #__comprofiler WHERE id = '" . cbGetEscaped($avatar) . "'";
$database->setQuery($query);
$file = $database->loadResult();
if(eregi("gallery/",$file)==false && is_file($mosConfig_absolute_path."/images/comprofiler/".$file)) {
unlink($mosConfig_absolute_path."/images/comprofiler/".$file);
if(is_file($mosConfig_absolute_path."/images/comprofiler/tn".$file)) unlink($mosConfig_absolute_path."/images/comprofiler/tn".$file);
}
$query = "UPDATE #__comprofiler SET avatarapproved = 1, avatar=null WHERE id = '" . cbGetEscaped($avatar) . "'";
$database->setQuery($query);
$database->query();
$cbNotification->sendFromSystem($avatar,_UE_IMAGEREJECTED_SUB,_UE_IMAGEREJECTED_MSG);
//createEmail($row,'imageRejected',$ueConfig);
}
}
mosRedirect(sefRelToAbs('index.php?option=com_comprofiler&task=moderateImages'),_UE_USERIMAGEMODERATED_SUCCESSFUL);
}
function isModerator($oID){
global $ueConfig;
if(in_array(userGID($oID), getParentGIDS($ueConfig['imageApproverGid']))) return true;
else return false;
}
function userGID($oID){
global $database,$ueConfig;
if($oID > 0) {
$query = "SELECT gid FROM #__users WHERE id = '".$oID."'";
$database->setQuery($query);
$gid = $database->loadResult();
return $gid;
}
else return 0;
}
function reportUser($option,$form=1,$uid=0) {
global $database,$ueConfig,$_POST;
if($ueConfig['allowUserReports']==0) {
echo _UE_FUNCTIONALITY_DISABLED;
exit();
}
if($form==1) {
HTML_comprofiler::reportUserForm($option,$uid);
} else {
$row = new moscomprofilerUserReport( $database );
if (!$row->bind( $_POST )) {
echo "\n";
exit();
}
mosMakeHtmlSafe($row);
$row->reportedondate = date("Y-m-d\TH:i:s");
if (!$row->check()) {
echo "\n";
exit();
}
if (!$row->store()) {
echo "\n";
exit();
}
if($ueConfig['moderatorEmail']==1) {
$cbNotification = new cbNotification();
$cbNotification->sendToModerators(_UE_USERREPORT_SUB,_UE_USERREPORT_MSG);
}
echo _UE_USERREPORT_SUCCESSFUL;
}
}
function banUser($option,$uid,$form=1,$act=1) {
global $database,$ueConfig,$_POST,$my;
$isModerator=isModerator($my->id);
if($ueConfig['allowUserBanning']==0) {
echo _UE_FUNCTIONALITY_DISABLED;
exit();
}
if($form==1) {
$database->setQuery("SELECT bannedreason FROM #__comprofiler WHERE id = '$uid'");
$orgbannedreason=$database->loadresult();
HTML_comprofiler::banUserForm($option,$uid,$act,$orgbannedreason);
} else {
$cbNotification=new cbNotification();
if($act==1) {
if (!$isModerator){
mosNotAuth();
return;
}
$sql="UPDATE #__comprofiler SET banned='1', bannedby='".cbGetEscaped($_POST['bannedby'])."', banneddate='".date('Y-m-d\TH:i:s')."', bannedreason='".cbGetEscaped(htmlspecialchars("["._UE_MODERATORBANRESPONSE."]"))."\n".cbGetEscaped($_POST['bannedreason'])."' WHERE id='$uid'";
$database->SetQuery($sql);
$database->query();
$cbNotification->sendFromSystem($uid,_UE_BANUSER_SUB,_UE_BANUSER_MSG);
//createEmail($row,'banUser',$ueConfig);
echo _UE_USERBAN_SUCCESSFUL;
} elseif($act==0) {
if (!$isModerator){
mosNotAuth();
return;
}
$sql="UPDATE #__comprofiler SET banned='0', bannedby=null, banneddate=null, bannedreason=null WHERE id='".cbGetEscaped($uid)."'";
$database->SetQuery($sql);
$database->query();
//createEmail($row,'unbanUser',$ueConfig);
$cbNotification->sendFromSystem($uid,_UE_UNBANUSER_SUB,_UE_UNBANUSER_MSG);
echo _UE_USERUNBAN_SUCCESSFUL;
}elseif($act==2) {
if ($my->id!=$uid){
mosNotAuth();
return;
}
$bannedreason = "".htmlspecialchars("["._UE_USERBANRESPONSE."]")."\n".$_POST['bannedreason']."\n".$_POST['orgbannedreason'];
$sql="UPDATE #__comprofiler SET banned='2', bannedreason='".cbGetEscaped($bannedreason)."' WHERE id='".cbGetEscaped($uid)."'";
$database->SetQuery($sql);
$database->query();
if($ueConfig['moderatorEmail']==1) {
$cbNotification->sendToModerators(_UE_UNBANUSERREQUEST_SUB,_UE_UNBANUSERREQUEST_MSG);
//createEmail($row,'unbanAdmin',$ueConfig,$rowAdmin);
}
echo _UE_USERUNBANREQUEST_SUCCESSFUL;
}
}
}
function processReports(){
global $database,$_POST,$mosConfig_absolute_path,$my;
$isModerator=isModerator($my->id);
if (!$isModerator) {
mosNotAuth();
return;
}
$reports=array();
$reports=$_POST['reports'];
foreach ($reports AS $report) {
$query = "UPDATE #__comprofiler_userreports SET reportedstatus = 1 WHERE reportid = '" . cbGetEscaped($report) . "'";
$database->setQuery($query);
$database->query();
}
mosRedirect(sefRelToAbs('index.php?option=com_comprofiler&task=moderateReports'),_UE_USERREPORTMODERATED_SUCCESSFUL);
}
function moderator(){
global $database,$_POST,$mosConfig_absolute_path,$my;
$isModerator=isModerator($my->id);
if (!$isModerator) {
mosNotAuth();
return;
}
$query = "SELECT count(*) FROM #__comprofiler WHERE avatarapproved=0";
if(!$database->setQuery($query)) print $database->getErrorMsg();
$totalimages = $database->loadResult();
$query = "SELECT count(*) FROM #__comprofiler_userreports WHERE reportedstatus=0 ";
if(!$database->setQuery($query)) print $database->getErrorMsg();
$totaluserreports = $database->loadResult();
$query = "SELECT count(*) FROM #__comprofiler WHERE banned=2";
if(!$database->setQuery($query)) print $database->getErrorMsg();
$totalunban = $database->loadResult();
if($totalunban > 0 || $totaluserreports > 0 || $totalimages > 0) {
if($totalunban > 0) echo "".$totalunban._UE_UNBANREQUIREACTION."
";
if($totaluserreports > 0) echo "".$totaluserreports._UE_USERREPORTSREQUIREACTION."
";
if($totalimages > 0) echo "".$totalimages._UE_IMAGESREQUIREACTION."
";
} else {
echo _UE_NOACTIONREQUIRED;
}
}
function approveUser($uids) {
global $database,$ueConfig,$_POST,$my,$mosConfig_emailpass,$_PLUGINS;
$isModerator=isModerator($my->id);
if($ueConfig['allowModUserApproval']==0) {
echo _UE_FUNCTIONALITY_DISABLED;
exit();
}
if (!$isModerator){
mosNotAuth();
return;
}
//$tabs = new cbTabs( 0, 1);
foreach($uids AS $uid) {
$query = "SELECT * FROM #__comprofiler c, #__users u WHERE c.id=u.id AND c.id = ".$uid;
$database->setQuery($query);
$user = $database->loadObjectList();
$row = $user[0];
if($mosConfig_emailpass == "1") {
$pwd = makePass();
$row->password = $pwd;
$pwd=", password='".md5($pwd)."' ";
}
$_PLUGINS->loadPluginGroup('user');
$_PLUGINS->trigger( 'onBeforeUserApproval', array($row,true));
if($_PLUGINS->is_errors()) {
echo "\n";
exit();
}
$sql="UPDATE #__comprofiler SET approved='1'".$pwd." WHERE id='".cbGetEscaped($uid)."'";
$database->SetQuery($sql);
$database->query();
$_PLUGINS->trigger( 'onAfterUserApproval', array($row,true,true));
$cbNotification = new cbNotification();
$cbNotification->sendFromSystem($row,getLangDefinition($ueConfig['reg_welcome_sub']),getLangDefinition($ueConfig['reg_welcome_msg']));
//createEmail($row,'welcome',$ueConfig,null,$mosConfig_emailpass);
}
mosRedirect(sefRelToAbs('index.php?option=com_comprofiler&task=pendingApprovalUser'),(count($uids))?count($uids)." "._UE_USERAPPROVAL_SUCCESSFUL:"");
}
function rejectUser(&$uids) {
global $database,$ueConfig,$_POST,$my,$mosConfig_emailpass,$_PLUGINS,$mosConfig_sitename;
$isModerator=isModerator($my->id);
if($ueConfig['allowModUserApproval']==0) {
echo _UE_FUNCTIONALITY_DISABLED;
exit();
}
if (!$isModerator){
mosNotAuth();
return;
}
$cbNotification= new cbNotification();
foreach($uids AS $uid) {
$query = "SELECT * FROM #__comprofiler c, #__users u WHERE c.id=u.id AND c.id = ".$uid;
$database->setQuery($query);
$user = $database->loadObjectList();
$row = $user[0];
$_PLUGINS->loadPluginGroup('user');
$_PLUGINS->trigger( 'onBeforeUserApproval', array($row,false));
if($_PLUGINS->is_errors()) {
echo "\n";
exit();
}
$sql="UPDATE #__comprofiler SET approved='2'WHERE id='".cbGetEscaped($uid)."'";
$database->SetQuery($sql);
$database->query();
$_PLUGINS->trigger( 'onAfterUserApproval', array($row,false,true));
$cbNotification->sendFromSystem(cbGetEscaped($uid),_UE_USERREJECT_SUB,sprintf(_UE_USERREJECT_MSG,$mosConfig_sitename,$_POST['comment'.$uid]));
//createEmail($row,'rejectUser',$ueConfig,$_POST['comment'.$uid],$mosConfig_emailpass);
}
mosRedirect(sefRelToAbs('index.php?option=com_comprofiler&task=pendingApprovalUser'),(count($uids))?count($uids)." "._UE_USERREJECT_SUCCESSFUL:"");
}
function pendingApprovalUsers($option) {
global $database,$ueConfig,$_POST,$my,$mosConfig_emailpass;
$isModerator=isModerator($my->id);
if($ueConfig['allowModUserApproval']==0) {
echo _UE_FUNCTIONALITY_DISABLED;
exit();
}
if (!$isModerator){
mosNotAuth();
return;
}
$database->setQuery( "SELECT u.id, u.name, u.username, u.email, u.registerDate "
."\n FROM #__users u, #__comprofiler c "
."\n WHERE u.id=c.id AND c.approved=0 AND c.confirmed=1" );
$rows = $database->loadObjectList();
HTML_comprofiler::pendingApprovalUsers($option, $rows);
}
//Connections
function addConnection($userid,$connectionid,$umsg=null) {
global $database,$ueConfig,$my;
if(!$ueConfig['allowConnections']) {
echo _UE_FUNCTIONALITY_DISABLED;
return;
}
if (!$my->id > 0) {
mosNotAuth();
return;
}
$cbCon=new cbConnection($userid);
$cbCon->addConnection($connectionid,stripcslashes($umsg));
$url=sefRelToAbs("index.php?option=com_comprofiler&task=userProfile&user=".$connectionid."&tab=1");
echo "\n";
}
function removeConnection($userid,$connectionid) {
global $database,$ueConfig,$my;
if(!$ueConfig['allowConnections']) {
echo _UE_FUNCTIONALITY_DISABLED;
return;
}
if (!$my->id > 0) {
mosNotAuth();
return;
}
$cbCon=new cbConnection($userid);
if(!$cbCon->removeConnection($userid,$connectionid)) $msg=$cbCon->getErrorMSG();
else $msg = $cbCon->getUserMSG();
// $url=sefRelToAbs("index.php?option=com_comprofiler&task=manageConnections");
$url=sefRelToAbs("index.php?option=com_comprofiler&task=userProfile&user=".$connectionid."&tab=1");
echo "\n";
}
function denyConnection($userid,$connectionid) {
global $database,$ueConfig,$my;
if(!$ueConfig['allowConnections']) {
echo _UE_FUNCTIONALITY_DISABLED;
return;
}
if (!$my->id > 0) {
mosNotAuth();
return;
}
$cbCon=new cbConnection($userid);
$cbCon->denyConnection($userid,$connectionid);
echo "\n";
}
function acceptConnection($userid,$connectionid) {
global $database,$ueConfig,$my;
if(!$ueConfig['allowConnections']) { // do not test, needed if rules changed! || !$ueConfig['useMutualConnections']
echo _UE_FUNCTIONALITY_DISABLED;
return;
}
if (!$my->id > 0) {
mosNotAuth();
return;
}
$cbCon=new cbConnection($userid);
$cbCon->acceptConnection($userid,$connectionid);
echo "\n";
}
function manageConnections($userid) {
global $database,$ueConfig,$my;
if(!$ueConfig['allowConnections']) {
echo _UE_FUNCTIONALITY_DISABLED;
return;
}
if ($my->id!=$userid || $my->id==0) {
mosNotAuth();
return;
}
$cbCon=new cbConnection($userid);
$connections=$cbCon->getActiveConnections($userid);
$actions = $cbCon->getPendingConnections($userid);
$connecteds = $cbCon->getConnectedToMe($userid);
HTML_comprofiler::manageConnections($connections,$actions,$connecteds);
}
function saveConnections($connectionids) {
global $database,$ueConfig,$my,$_POST;
if(!$ueConfig['allowConnections']) {
echo _UE_FUNCTIONALITY_DISABLED;
return;
}
if (!$my->id > 0) {
mosNotAuth();
return;
}
$cbCon=new cbConnection($my->id);
foreach($connectionids AS $cid) {
$cbCon->saveConnection($cid,$_POST[$cid.'description'],implode("|*|",$_POST[$cid.'connectiontype']));
}
mosRedirect(sefRelToAbs('index.php?option=com_comprofiler&task=manageConnections&tab=1'),_UE_CONNECTIONSUPDATEDSUCCESSFULL);
}
function processConnectionActions($connectionids) {
global $database,$ueConfig,$my,$_POST;
if(!$ueConfig['allowConnections']) {
echo _UE_FUNCTIONALITY_DISABLED;
return;
}
if (!$my->id > 0) {
mosNotAuth();
return;
}
$cbCon=new cbConnection($my->id);
foreach($connectionids AS $cid) {
if($_POST[$cid."action"]=='d') {
$cbCon->denyConnection($my->id,$cid);
} else {
$cbCon->acceptConnection($my->id,$cid);
}
}
mosRedirect(sefRelToAbs('index.php?option=com_comprofiler&task=manageConnections'),_UE_CONNECTIONACTIONSSUCCESSFULL);
return;
}
function getConnectionTypes($types) {
$typelist=null;
$types=explode("|*|",$types);
foreach($types AS $type) {
if($typelist==null) $typelist = getLangDefinition($type);
else $typelist .= ", ".getLangDefinition($type);
}
return $typelist;
}
?>