cvs: pearweb /include pear-auth.php /public_html logout.php xmlrpc.php /sql releases.sql
| From: | Stig Bakken | Date: | Thu, 19 Apr 2001 11:45:52 +0000 |
| Subject: | cvs: pearweb /include pear-auth.php /public_html logout.php xmlrpc.php /sql releases.sql | ||
| Groups: | php.pear.cvs | ||
| Request: | Send a blank email to pear-cvs+get-49@lists.php.net to get a copy of this message | ||
ssb Thu Apr 19 04:45:52 2001 EDT
Added files:
/pearweb/public_html xmlrpc.php
Modified files:
/pearweb/include pear-auth.php
/pearweb/public_html logout.php
/pearweb/sql releases.sql
Log:
* work so far on uploading packages (XML-RPC interface)
Index: pearweb/include/pear-auth.php
diff -u pearweb/include/pear-auth.php:1.2 pearweb/include/pear-auth.php:1.3
--- pearweb/include/pear-auth.php:1.2 Wed Apr 18 17:59:05 2001
+++ pearweb/include/pear-auth.php Thu Apr 19 04:45:48 2001
@@ -1,5 +1,7 @@
<?php
+define('PEAR_AUTH_REALM', 'PEAR user');
+
function auth_reject($realm, $message = "Login Failed!")
{
Header("HTTP/1.0 401 Unauthorized");
@@ -14,10 +16,10 @@
{
global $PHP_AUTH_USER, $PHP_AUTH_PW, $dbh, $auth_user;
- $realm = "PEAR user";
$auth_user =& new PEAR_User(&$dbh, strtolower($PHP_AUTH_USER));
+ $auth_user->_readonly = true;
if (DB::isError($auth_user) || md5($PHP_AUTH_PW) != $auth_user->password) {
- auth_reject($realm);
+ auth_reject(PEAR_AUTH_REALM);
}
}
Index: pearweb/public_html/logout.php
diff -u pearweb/public_html/logout.php:1.1 pearweb/public_html/logout.php:1.2
--- pearweb/public_html/logout.php:1.1 Wed Apr 18 17:57:04 2001
+++ pearweb/public_html/logout.php Thu Apr 19 04:45:50 2001
@@ -4,6 +4,6 @@
Header("WWW-authenticate: basic realm=\"PEAR user\"");
Header("Refresh: 1; url=\"./\"");
-auth_reject("PEAR user", "Logging out");
+auth_reject(PEAR_AUTH_REALM, "Logging out");
?>
Index: pearweb/sql/releases.sql
diff -u pearweb/sql/releases.sql:1.2 pearweb/sql/releases.sql:1.3
--- pearweb/sql/releases.sql:1.2 Wed Apr 18 17:59:05 2001
+++ pearweb/sql/releases.sql Thu Apr 19 04:45:51 2001
@@ -5,6 +5,8 @@
doneby VARCHAR(20) NOT NULL REFERENCES users(handle),
releasedate DATETIME NOT NULL,
releasenotes TEXT DEFAULT '',
+ md5sum VARCHAR(32),
+ distfile VARCHAR(200),
PRIMARY KEY(id),
UNIQUE INDEX(package, version)
Index: pearweb/public_html/xmlrpc.php
+++ pearweb/public_html/xmlrpc.php
<?php // -*- C++ -*-
require_once "xmlrpc.inc";
require_once "xmlrpcs.inc";
$test_sig = array(array($xmlrpcString));
$test_doc = "Test XML-RPC method";
function test_wrp($m) {
$marg = $m->getParam(0);
$arg = $marg->scalarval();
}
$release_upload_sig = array(array($xmlrpcStruct, // return type
$xmlrpcString, // package
$xmlrpcString, // version
$xmlrpcString, // release notes
$xmlrpcBase64, // tar ball
$xmlrpcString // md5sum
));
$release_upload_doc = "Upload a new release for a package.";
function release_upload($m) {
// parameters: package, version, releasenotes, tarball, md5sum
// implicit: doneby, releasedate
// 1. verify that package exists
// 2. verify that user has access
// 3. verify that version does not exist
// 4. store tar ball to temp file
// 5. verify md5 checksum
// later: do lots of integrity checks on the tarball
global $xmlrpcerruser;
$mpackage = $m->getParam(0);
$mversion = $m->getParam(1);
$mrelnotes = $m->getParam(2);
$mdistfile = $m->getParam(3);
$mmd5sum = $m->getParam(4);
$package = $mpackage->scalarval();
$version = $mversion->scalarval();
$relnotes = $mrelnotes->scalarval();
$distfile = $mdistfile->scalarval();
$md5sum = $mmd5sum->scalarval();
if (md5($distfile) != $md5sum) {
return new xmlrpcresp(0, $xmlrpcerruser, "bad md5 checksum");
}
return new xmlrpcresp(new xmlrpcval("ok", "string"));
}
$s = new xmlrpc_server(array("release.upload" =>
array("function" => "release_upload",
"signature" => $release_upload_sig,
"docstring" => $release_upload_doc),
));
?>