Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
chamilo-lms/main/webservices/cm_webservice_user.php

186 lines
6.1 KiB

<?php
require_once(dirname(__FILE__).'/../inc/global.inc.php');
require_once(dirname(__FILE__).'/cm_webservice.php');
/**
* Description of cm_soap_user
*
* @author marcosousa
*/
class WSCMUser extends WSCM {
public function find_id_user($username, $password, $name)
{
if($this->verifyUserPass($username, $password) == "valid")
{
$listResult = "#";
$listArrayResult = Array();
$listArray = Array();
$list = $this->get_user_list_like_start(array('firstname'=>$name), array('firstname'));
foreach ($list as $userData)
{
$listArray[] = $userData['user_id'];
}
$list = $this->get_user_list_like_start(array('lastname'=>$name), array('firstname'));
foreach ($list as $userData)
{
$listArray[] = $userData['user_id'];
}
$list = $this->get_user_list_like_start(array('email'=>$name), array('firstname'));
foreach ($list as $userData)
{
$listArray[] = $userData['user_id'];
}
$listArrayResult = array_unique($listArray);
foreach($listArrayResult as $result)
{
$listResult .= $result . "#";
}
return $listResult;
}
return "0";
}
public function get_link_user_picture($username, $password, $id)
{
if ($this->verifyUserPass($username, $password) == "valid") {
$userPic = UserManager::getUserPicture($id);
if (empty ($userPic)) {
return "0";
}
return $userPic;
}
return "0";
}
public function get_user_name($username, $password, $id, $field)
{
if($this->verifyUserPass($username, $password) == "valid") {
$userInfo = UserManager::get_user_info_by_id($id);
switch ($field) {
case 'firstname':
return $userInfo['firstname'];
break;
case 'lastname' :
return $userInfo['lastname'];
break;
case 'bothfl' :
return $userInfo['firstname']." ".$userInfo['lastname'];
break;
case 'bothlf' :
return $userInfo['lastname']." ".$userInfo['firstname'];
break;
default :
return $userInfo['firstname'];
}
return "0";
}
return "0";
}
public function send_invitation($username, $password, $userfriend_id, $content_message = '')
{
global $charset;
if ($this->verifyUserPass($username, $password) == "valid") {
$user_id = UserManager::get_user_id_from_username($username);
$message_title = get_lang('Invitation');
$count_is_true = SocialManager::send_invitation_friend($user_id,$userfriend_id, $message_title, $content_message);
if ($count_is_true) {
return Display::display_normal_message(api_htmlentities(get_lang('InvitationHasBeenSent'), ENT_QUOTES,$charset),false);
} else {
return Display::display_error_message(api_htmlentities(get_lang('YouAlreadySentAnInvitation'), ENT_QUOTES,$charset),false);
}
}
return get_lang('InvalidId');
}
public function accept_friend($username, $password, $userfriend_id)
{
if ($this->verifyUserPass($username, $password) == "valid") {
$user_id = UserManager::get_user_id_from_username($username);
UserManager::relate_users($userfriend_id, $user_id, USER_RELATION_TYPE_FRIEND);
SocialManager::invitation_accepted($userfriend_id, $user_id);
return get_lang('AddedContactToList');
}
return get_lang('InvalidId');
}
public function denied_invitation($username, $password, $userfriend_id)
{
if ($this->verifyUserPass($username, $password) == "valid") {
$user_id = UserManager::get_user_id_from_username($username);
SocialManager::invitation_denied($userfriend_id, $user_id);
return get_lang('InvitationDenied');
}
return get_lang('InvalidId');
}
/**
* Get a list of users of which the given conditions match with a LIKE '%cond%'
* @param array $conditions a list of condition (exemple : status=>STUDENT)
* @param array $order_by a list of fields on which sort
* @return array An array with all users of the platform.
* @todo optional course code parameter, optional sorting parameters...
*@todo Use the UserManager class
* @todo security filter order by
*/
private static function get_user_list_like_start($conditions = array(), $order_by = array())
{
$user_table = Database :: get_main_table(TABLE_MAIN_USER);
$return_array = array();
$sql_query = "SELECT * FROM $user_table";
if (count($conditions) > 0) {
$sql_query .= ' WHERE ';
foreach ($conditions as $field => $value) {
$field = Database::escape_string($field);
$value = Database::escape_string($value);
$sql_query .= $field.' LIKE \''.$value.'%\'';
}
}
$order = '';
foreach ($order_by as $orderByItem) {
$order .= Database::escape_string($orderByItem, null, false).', ';
}
$order = substr($order, 0, -2);
if (count($order_by) > 0) {
$sql_query .= ' ORDER BY '.$order;
}
$sql_result = Database::query($sql_query);
while ($result = Database::fetch_array($sql_result)) {
$return_array[] = $result;
}
return $return_array;
}
}
/*
echo "aqui: ";
$aqui = new WSCMUser();
//print_r($aqui->unreadMessage("aluno", "e695f51fe3dd6b7cf2be3188a614f10f"));
//print_r($aqui->send_invitation("marco", "c4ca4238a0b923820dcc509a6f75849b", "1", "oia ai"));
print_r($aqui->denied_invitation("admin", "c4ca4238a0b923820dcc509a6f75849b", "3"));
*/