0byt3m1n1
Path:
/
data
/
applications
/
aps
/
tikiwiki
/
7.0-0
/
standard
/
htdocs
/
[
Home
]
File: commxmlrpc.php
<?php // (c) Copyright 2002-2011 by authors of the Tiki Wiki CMS Groupware Project // // All Rights Reserved. See copyright.txt for details and a complete list of authors. // Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details. // $Id: commxmlrpc.php 33195 2011-03-02 17:43:40Z changi67 $ include_once("tiki-setup.php"); include_once ("lib/pear/XML/Server.php"); include_once ('lib/commcenter/commlib.php'); if ($tikilib->get_preference("feature_comm", 'n') != 'y') { die; } $map = array( "sendPage" => array("function" => "sendPage"), "sendStructurePage" => array("function" => "sendStructurePage"), "sendArticle" => array("function" => "sendArticle") ); $s = new XML_RPC_Server($map); function sendStructurePage($params) { global $tikilib, $userlib, $commlib, $prefs; include_once ('lib/structures/structlib.php'); $site = $params->getParam(0); $site = $site->scalarval(); $user = $params->getParam(1); $user = $user->scalarval(); $pass = $params->getParam(2); $pass = $pass->scalarval(); $sName = $params->getParam(3); $sName = $sName->scalarval(); $pName = $params->getParam(4); $pName = $pName->scalarval(); $name = $params->getParam(5); $name = $name->scalarval(); $data = $params->getParam(6); $data = $data->scalarval(); $comm = $params->getParam(7); $comm = $comm->scalarval(); $desc = $params->getParam(8); $desc = $desc->scalarval(); $pos = $params->getParam(9); $pos = $pos->scalarval(); $alias = $params->getParam(10); $alias = $alias->scalarval(); if ($user != 'admin' && $prefs['feature_intertiki'] == 'y' && !empty($prefs['feature_intertiki_mymaster'])) { $ok = $userlib->intervalidate($prefs['interlist'][$prefs['feature_intertiki_mymaster']], $user, $pass, false); } else { list($ok, $user, $error) = $userlib->validate_user($user, $pass, '', ''); } if (!$ok) { return new XML_RPC_Response(0, 101, "Invalid username or password"); } // Verify if the user has tiki_p_sendme_pages if (!$userlib->user_has_permission($user, 'tiki_p_sendme_pages')) { return new XML_RPC_Response(0, 101, "Permissions denied user $user cannot send pages to this site"); } // Store the page in the tiki_received_pages_table $data = base64_decode($data); $commlib->receive_structure_page($name, $data, $comm, $site, $user, $desc, $sName, $pName, $pos, $alias); return new XML_RPC_Response(new XML_RPC_Value(1, "boolean")); } /* Validates the user and returns user information */ function sendPage($params) { // Get the page and store it in received_pages global $tikilib, $userlib, $commlib, $prefs; $pp = $params->getParam(0); $site = $pp->scalarval(); $pp = $params->getParam(1); $username = $pp->scalarval(); $pp = $params->getParam(2); $password = $pp->scalarval(); $pp = $params->getParam(3); $pageName = $pp->scalarval(); $pp = $params->getParam(4); $data = $pp->scalarval(); $pp = $params->getParam(5); $comment = $pp->scalarval(); $pp = $params->getParam(6); $description = $pp->scalarval(); if ($username != 'admin' && $prefs['feature_intertiki'] == 'y' && !empty($prefs['feature_intertiki_mymaster'])) { $ok = $userlib->intervalidate($prefs['interlist'][$prefs['feature_intertiki_mymaster']], $username, $password, false); } else { list($ok, $username, $error) = $userlib->validate_user($username, $password, '', ''); } if (!$ok) { return new XML_RPC_Response(0, 101, "Invalid username or password"); } // Verify if the user has tiki_p_sendme_pages if (!$userlib->user_has_permission($username, 'tiki_p_sendme_pages')) { return new XML_RPC_Response(0, 101, "Permissions denied user $username cannot send pages to this site"); } // Store the page in the tiki_received_pages_table $data = base64_decode($data); $commlib->receive_page($pageName, $data, $comment, $site, $username, $description); return new XML_RPC_Response(new XML_RPC_Value(1, "boolean")); } function sendArticle($params) { // Get the page and store it in received_pages global $tikilib, $userlib, $commlib, $prefs; $pp = $params->getParam(0); $site = $pp->scalarval(); $pp = $params->getParam(1); $username = $pp->scalarval(); $pp = $params->getParam(2); $password = $pp->scalarval(); $pp = $params->getParam(3); $title = $pp->scalarval(); $pp = $params->getParam(4); $authorName = $pp->scalarval(); $pp = $params->getParam(5); $size = $pp->scalarval(); $pp = $params->getParam(6); $use_image = $pp->scalarval(); $pp = $params->getParam(7); $image_name = $pp->scalarval(); $pp = $params->getParam(8); $image_type = $pp->scalarval(); $pp = $params->getParam(9); $image_size = $pp->scalarval(); $pp = $params->getParam(10); $image_x = $pp->scalarval(); $pp = $params->getParam(11); $image_y = $pp->scalarval(); $pp = $params->getParam(12); $image_data = $pp->scalarval(); $pp = $params->getParam(13); $publishDate = $pp->scalarval(); $pp = $params->getParam(14); $expireDate = $pp->scalarval(); $pp = $params->getParam(15); $created = $pp->scalarval(); $pp = $params->getParam(16); $heading = $pp->scalarval(); $pp = $params->getParam(17); $body = $pp->scalarval(); $pp = $params->getParam(18); $hash = $pp->scalarval(); $pp = $params->getParam(19); $author = $pp->scalarval(); $pp = $params->getParam(20); $type = $pp->scalarval(); $pp = $params->getParam(21); $rating = $pp->scalarval(); if ($username != 'admin' && $prefs['feature_intertiki'] == 'y' && !empty($prefs['feature_intertiki_mymaster'])) { $ok = $userlib->intervalidate($prefs['interlist'][$prefs['feature_intertiki_mymaster']], $username, $password, false); } else { list($ok, $username, $error) = $userlib->validate_user($username, $password, '', ''); } if (!$ok) { return new XML_RPC_Response(0, 101, "Invalid username or password"); } // Verify if the user has tiki_p_sendme_pages if (!$userlib->user_has_permission($username, 'tiki_p_sendme_articles')) { return new XML_RPC_Response(0, 101, "Permissions denied user $username cannot send articles to this site"); } // Store the page in the tiki_received_pages_table $title = base64_decode($title); $authorName = base64_decode($authorName); $image_data = base64_decode($image_data); $heading = base64_decode($heading); $body = base64_decode($body); $commlib->receive_article($site, $username, $title, $authorName, $size, $use_image, $image_name, $image_type, $image_size, $image_x, $image_y, $image_data, $publishDate, $expireDate, $created, $heading, $body, $hash, $author, $type, $rating); return new XML_RPC_Response(new XML_RPC_Value(1, "boolean")); }