Changeset 15386 for trunk/xmlrpc
- Timestamp:
- 07/27/11 00:08:18 (10 months ago)
- Location:
- trunk/xmlrpc
- Files:
-
- 3 edited
-
BxDolXMLRPCUser.php (modified) (2 diffs)
-
BxDolXMLRPCUtil.php (modified) (7 diffs)
-
index.php (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/xmlrpc/BxDolXMLRPCUser.php
r15211 r15386 7 7 $iId = BxDolXMLRPCUtil::checkLogin ($sUser, $sPwd); 8 8 return new xmlrpcresp(new xmlrpcval($iId, "int")); 9 } 10 11 function login2($sUser, $sPwd) 12 { 13 $iId = BxDolXMLRPCUtil::checkLogin ($sUser, $sPwd); 14 return new xmlrpcresp(new xmlrpcval(array( 15 'member_id' => new xmlrpcval($iId, "int"), 16 'protocol_ver' => new xmlrpcval(BX_XMLRPC_PROTOCOL_VER, "int"), 17 ), "struct")); 9 18 } 10 19 … … 55 64 } 56 65 57 function get UserInfo($sUser, $sPwd, $sNick, $sLang)66 function getHomepageInfo2($sUser, $sPwd, $sLang) 58 67 { 68 if (!($iId = BxDolXMLRPCUtil::checkLogin ($sUser, $sPwd))) 69 return new xmlrpcresp(new xmlrpcval(array('error' => new xmlrpcval(1,"int")), "struct")); 70 71 BxDolXMLRPCUtil::setLanguage ($sLang); 72 73 $aRet = BxDolXMLRPCUtil::getUserInfo($iId); 74 75 $aMarkersReplace = array ( 76 'member_id' => $iId, 77 'member_username' => $sUser, 78 'member_password' => $sPwd, 79 ); 80 $aRet['menu'] = new xmlrpcval(BxDolXMLRPCUtil::getMenu('homepage', $aMarkersReplace), 'array'); 81 82 return new xmlrpcval ($aRet, "struct"); 83 } 84 85 function getUserInfo2($sUser, $sPwd, $sNick, $sLang) { 59 86 $iIdProfile = BxDolXMLRPCUtil::getIdByNickname ($sNick); 60 87 if (!$iIdProfile || !($iId = BxDolXMLRPCUtil::checkLogin ($sUser, $sPwd))) 61 88 return new xmlrpcresp(new xmlrpcval(array('error' => new xmlrpcval(1,"int")), "struct")); 62 89 63 BxDolXMLRPCUtil::setLanguage ($sLang); 90 BxDolXMLRPCUtil::setLanguage ($sLang); 64 91 65 if ($iIdProfile != $iId) 66 { 67 // privacy 68 bx_import('BxDolPrivacy'); 69 $oPrivacy = new BxDolPrivacy('Profiles', 'ID', 'ID'); 70 if ($iIdProfile != $iId && !$oPrivacy->check('view', $iIdProfile, $iId)) 71 return new xmlrpcval ('-1'); 92 $mixedRet = BxDolXMLRPCUser::_checkUserPrivacy ($iId, $iIdProfile); 93 if (true !== $mixedRet) 94 return $mixedRet; 72 95 73 // membership 74 $aCheckRes = checkAction($iId, ACTION_ID_VIEW_PROFILES, true, $iIdProfile); 75 if ($aCheckRes[CHECK_ACTION_RESULT] != CHECK_ACTION_RESULT_ALLOWED) 76 return new xmlrpcval ($aCheckRes[CHECK_ACTION_MESSAGE]); 77 } 96 $aRet['info'] = new xmlrpcval (BxDolXMLRPCUtil::getUserInfo($iIdProfile, 0, false), "struct"); 78 97 79 $aRet = BxDolXMLRPCUtil::getUserInfo($iIdProfile); 98 $aMarkersReplace = array ( 99 'member_id' => $iId, 100 'member_username' => $sUser, 101 'member_password' => $sPwd, 102 'profile_id' => $iIdProfile, 103 'profile_username' => $sNick, 104 ); 105 $aRet['menu'] = new xmlrpcval(BxDolXMLRPCUtil::getMenu('profile', $aMarkersReplace), 'array'); 106 80 107 return new xmlrpcval ($aRet, "struct"); 81 108 } 82 109 110 function getUserInfo($sUser, $sPwd, $sNick, $sLang) { 111 $iIdProfile = BxDolXMLRPCUtil::getIdByNickname ($sNick); 112 if (!$iIdProfile || !($iId = BxDolXMLRPCUtil::checkLogin ($sUser, $sPwd))) 113 return new xmlrpcresp(new xmlrpcval(array('error' => new xmlrpcval(1,"int")), "struct")); 114 115 BxDolXMLRPCUtil::setLanguage ($sLang); 116 117 $mixedRet = BxDolXMLRPCUser::_checkUserPrivacy ($iId, $iIdProfile); 118 if (true !== $mixedRet) 119 return $mixedRet; 120 121 $aRet = BxDolXMLRPCUtil::getUserInfo($iIdProfile, 0, true); 122 return new xmlrpcval ($aRet, "struct"); 123 } 124 125 function _checkUserPrivacy($iId, $iIdProfile) 126 { 127 $mixedAccessDenied = false; 128 129 if ($iIdProfile != $iId) 130 { 131 // privacy 132 bx_import('BxDolPrivacy'); 133 $oPrivacy = new BxDolPrivacy('Profiles', 'ID', 'ID'); 134 if ($iIdProfile != $iId && !$oPrivacy->check('view', $iIdProfile, $iId)) 135 $mixedAccessDenied = '-1'; 136 137 // membership 138 if (false === $mixedAccessDenied) { 139 $aCheckRes = checkAction($iId, ACTION_ID_VIEW_PROFILES, true, $iIdProfile); 140 if ($aCheckRes[CHECK_ACTION_RESULT] != CHECK_ACTION_RESULT_ALLOWED) 141 $mixedAccessDenied = $aCheckRes[CHECK_ACTION_MESSAGE]; 142 } 143 } 144 145 $oZ = new BxDolAlerts('mobile', 'view_profile', $iIdProfile, $iId, array('access_denied' => &$mixedAccessDenied)); 146 $oZ->alert(); 147 148 if (false !== $mixedAccessDenied) 149 return new xmlrpcval ($mixedAccessDenied); 150 151 return true; 152 } 153 83 154 function getUserInfoExtra($sUser, $sPwd, $sNick, $sLang) 84 155 { -
trunk/xmlrpc/BxDolXMLRPCUtil.php
r15211 r15386 47 47 $aAll[$aRow['ID']] = $aRow; 48 48 49 $oZ = new BxDolAlerts('mobile', 'contacts', $iId, 0, array('contacts_data' => $aAll)); 50 $oZ->alert(); 49 51 50 52 foreach ($aAll as $aRow) … … 86 88 } 87 89 88 function getUserInfo($iId, $iIdViewer = 0 )90 function getUserInfo($iId, $iIdViewer = 0, $isCountData = true) 89 91 { 90 92 if (!$iIdViewer) … … 100 102 $aRet['city'] = new xmlrpcval($aSexSql['City']); 101 103 $aRet['status'] = new xmlrpcval($aSexSql['UserStatusMessage']); 102 $aRet['countFriends'] = new xmlrpcval(getFriendNumber($iId)); 103 104 $aRet['countPhotos'] = new xmlrpcval(BxDolXMLRPCMedia::_getMediaCount('photo', $iId, $iIdViewer)); 105 $aRet['countVideos'] = new xmlrpcval(BxDolXMLRPCMedia::_getMediaCount('video', $iId, $iIdViewer)); 106 $aRet['countSounds'] = new xmlrpcval(BxDolXMLRPCMedia::_getMediaCount('music', $iId, $iIdViewer)); 107 104 105 if ($isCountData) { 106 $aRet['countFriends'] = new xmlrpcval(getFriendNumber($iId)); 107 $aRet['countPhotos'] = new xmlrpcval(BxDolXMLRPCMedia::_getMediaCount('photo', $iId, $iIdViewer)); 108 $aRet['countVideos'] = new xmlrpcval(BxDolXMLRPCMedia::_getMediaCount('video', $iId, $iIdViewer)); 109 $aRet['countSounds'] = new xmlrpcval(BxDolXMLRPCMedia::_getMediaCount('music', $iId, $iIdViewer)); 110 } 111 112 bx_import('BxDolAlerts'); 113 $oZ = new BxDolAlerts('mobile', 'user_info', $iId, $iIdViewer, array('profile' => &$aSexSql, 'return_data' => &$aRet)); 114 $oZ->alert(); 115 108 116 return $aRet; 109 117 } … … 119 127 bx_import('BxDolAlbums'); 120 128 121 returnarray (129 $aRet = array ( 122 130 'ID' => new xmlrpcval($a['ID']), 123 131 'Title' => new xmlrpcval($a['Headline']), … … 133 141 $sImageKey => new xmlrpcval($sImage), 134 142 ); 135 } 143 144 $oZ = new BxDolAlerts('mobile', 'user_info2', $a['ID'], $iIdViewer, array('profile' => &$a, 'return_data' => &$aRet)); 145 $oZ->alert(); 146 147 return $aRet; 148 } 149 150 function getMenu ($sMenu, $aMarkersReplace = array ()) { 151 152 $aDefaultMarkers = array ( 153 'site_url' => BX_DOL_URL_ROOT, 154 ); 155 $aMarkersReplace = array_merge($aDefaultMarkers, $aMarkersReplace); 156 $aKeys = array_keys($aMarkersReplace); 157 $aValues = array_values($aMarkersReplace); 158 foreach ($aKeys as $k => $v) 159 $aKeys[$k] = '{' . $v . '}'; 160 161 $aMenu = array (); 162 $aRecords = $GLOBALS['MySQL']->getAll("SELECT * FROM `sys_menu_mobile` WHERE `menu` = '$sMenu' AND `active` = 1 ORDER BY `order`"); 163 164 $oZ = new BxDolAlerts('mobile', 'menu', 0, 0, array('menu' => $sMenu, 'data' => &$aRecords, 'markers_replace' => &$aMarkersReplace)); 165 $oZ->alert(); 166 167 foreach ($aRecords as $r) { 168 $a = array (); 169 if ($r['eval_hidden']) { 170 if ($aMarkersReplace) 171 $sVal = str_replace($aKeys, $aValues, $r['eval_hidden']); 172 if (@eval($sVal)) 173 continue; 174 } 175 foreach ($r as $sName => $sVal) { 176 switch ($sName) { 177 case 'eval_hidden': 178 break; 179 case 'eval_bubble': 180 if ($sVal && $aMarkersReplace) 181 $sVal = str_replace($aKeys, $aValues, $sVal); 182 $a['bubble'] = new xmlrpcval($sVal ? @eval($sVal) : ''); 183 break; 184 case 'icon': 185 case 'action_data': 186 if ($sVal && $aMarkersReplace) 187 $sVal = str_replace($aKeys, $aValues, $sVal); 188 $a[$sName] = new xmlrpcval($sVal); 189 break; 190 case 'title': 191 $a[$sName] = new xmlrpcval(_t($sVal)); 192 break; 193 default: 194 $a[$sName] = new xmlrpcval($sVal); 195 } 196 } 197 $aMenu[] = new xmlrpcval($a, 'struct'); 198 } 199 return $aMenu; 200 } 136 201 137 202 function getIdByNickname ($sUser) … … 143 208 function checkLogin ($sUser, $sPwd) 144 209 { 145 //sleep(1);146 210 $iId = (int)BxDolXMLRPCUtil::getIdByNickname ($sUser); 147 211 $aProfile = getProfileInfo((int)$iId); … … 150 214 $_COOKIE["memberID" ] = $iId; 151 215 $_COOKIE["memberPassword"] = sha1($sPwd . $aProfile['Salt']); 152 return ($GLOBALS['logged']['member'] = member_auth(0, false)) ? $iId : 0; 216 $iRet = ($GLOBALS['logged']['member'] = member_auth(0, false)) ? $iId : 0; 217 218 $oZ = new BxDolAlerts('mobile', 'check_login', $iId, 0, array('password' => $sPwd, 'return_data' => &$iRet)); 219 $oZ->alert(); 220 221 return $iRet; 153 222 } 154 223 -
trunk/xmlrpc/index.php
r15211 r15386 20 20 require_once(BX_DIRECTORY_PATH_ROOT . 'xmlrpc/lib/xmlrpc_wrappers.inc'); 21 21 22 define('BX_XMLRPC_PROTOCOL_VER', 2); 23 22 24 $s = new xmlrpc_server( 23 25 array( … … 50 52 "docstring" => "returns user id on success or 0 if login failed", 51 53 ), 54 "dolphin.login2" => array( 55 "function" => "BxDolXMLRPCUser::login2", 56 "signature" => array (array ($xmlrpcInt, $xmlrpcString, $xmlrpcString)), 57 "docstring" => "returns user id on success or 0 if login failed (v.2)", 58 ), 52 59 "dolphin.getHomepageInfo" => array( 53 60 "function" => "BxDolXMLRPCUser::getHomepageInfo", … … 55 62 "docstring" => "return logged in user information to dispay on homepage", 56 63 ), 64 "dolphin.getHomepageInfo2" => array( 65 "function" => "BxDolXMLRPCUser::getHomepageInfo2", 66 "signature" => array (array ($xmlrpcStruct, $xmlrpcString, $xmlrpcString, $xmlrpcString)), 67 "docstring" => "return logged in user information to dispay on homepage (v.2)", 68 ), 57 69 "dolphin.getUserInfo" => array( 58 70 "function" => "BxDolXMLRPCUser::getUserInfo", … … 60 72 "docstring" => "return user information", 61 73 ), 74 "dolphin.getUserInfo2" => array( 75 "function" => "BxDolXMLRPCUser::getUserInfo2", 76 "signature" => array (array ($xmlrpcStruct, $xmlrpcString, $xmlrpcString, $xmlrpcString, $xmlrpcString)), 77 "docstring" => "return user information (v.2)", 78 ), 62 79 "dolphin.getUserInfoExtra" => array( 63 80 "function" => "BxDolXMLRPCUser::getUserInfoExtra",
Note: See TracChangeset
for help on using the changeset viewer.