From: Reini U. <ru...@us...> - 2004-06-01 15:28:13
|
Update of /cvsroot/phpwiki/phpwiki/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12996 Modified Files: DbSession.php Theme.php WikiUserNew.php XmlParser.php editpage.php main.php Log Message: AdminUser only ADMIN_USER not member of Administrators some RateIt improvements by dfrankow edit_toolbar buttons Index: DbSession.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/DbSession.php,v retrieving revision 1.17 retrieving revision 1.18 diff -u -2 -b -p -d -r1.17 -r1.18 --- DbSession.php 27 May 2004 17:49:05 -0000 1.17 +++ DbSession.php 1 Jun 2004 15:27:59 -0000 1.18 @@ -2,5 +2,5 @@ /** - * Store sessions data in Pear DB / ADODB .... + * Store sessions data in Pear DB / ADODB / dba / .... * * History @@ -187,5 +187,5 @@ extends DbSession $time = time(); if (DEBUG and $sess_data == 'wiki_user|N;') { - trigger_error("delete session $qid",E_USER_WARNING); + trigger_error("delete empty session $qid", E_USER_WARNING); /*echo "<pre>"; print_r($GLOBALS['request']->_user); Index: Theme.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/Theme.php,v retrieving revision 1.98 retrieving revision 1.99 diff -u -2 -b -p -d -r1.98 -r1.99 --- Theme.php 27 May 2004 17:49:05 -0000 1.98 +++ Theme.php 1 Jun 2004 15:27:59 -0000 1.99 @@ -434,4 +434,5 @@ class Theme { } } + function getAuthorMessage ($revision, $only_authenticated = true) { $dbi =& $GLOBALS['request']->_dbi; @@ -1344,4 +1345,9 @@ function listAvailableLanguages() { // $Log$ +// Revision 1.99 2004/06/01 15:27:59 rurban +// AdminUser only ADMIN_USER not member of Administrators +// some RateIt improvements by dfrankow +// edit_toolbar buttons +// // Revision 1.98 2004/05/27 17:49:05 rurban // renamed DB_Session to DbSession (in CVS also) Index: WikiUserNew.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/WikiUserNew.php,v retrieving revision 1.78 retrieving revision 1.79 diff -u -2 -b -p -d -r1.78 -r1.79 --- WikiUserNew.php 27 May 2004 17:49:06 -0000 1.78 +++ WikiUserNew.php 1 Jun 2004 15:27:59 -0000 1.79 @@ -167,7 +167,12 @@ function _determineAdminUserOrOtherUser( return $GLOBALS['ForbiddenUser']; - $group = &WikiGroup::getGroup($GLOBALS['request']); - if ($UserName == ADMIN_USER or $group->isMember(GROUP_ADMIN)) + //FIXME: check admin membership later at checkPass. now we cannot raise the level. + //$group = &WikiGroup::getGroup($GLOBALS['request']); + if ($UserName == ADMIN_USER) return new _AdminUser($UserName); + /* elseif ($group->isMember(GROUP_ADMIN)) { + return _determineBogoUserOrPassUser($UserName); + } + */ else return _determineBogoUserOrPassUser($UserName); @@ -487,9 +492,13 @@ class _WikiUser //return isa($this,'_PassUser'); //return isa($this,'_BogoUser') || isa($this,'_PassUser'); - return $this->_level >= WIKIAUTH_BOGO; // hmm. + return $this->_level >= WIKIAUTH_BOGO; } function isAdmin () { - return $this->_level == WIKIAUTH_ADMIN; + static $group; + if ($this->_level == WIKIAUTH_ADMIN) return true; + + if (!$group) $group = &WikiGroup::getGroup($GLOBALS['request']); + return ($this->_level > WIKIAUTH_BOGO and $group->isMember(GROUP_ADMIN)); } @@ -516,4 +525,5 @@ class _WikiUser /** * Called on an auth_args POST request, such as login, logout or signin. + * TODO: Check BogoLogin users with empty password. (self-signed users) */ function AuthCheck ($postargs) { @@ -528,4 +538,5 @@ class _WikiUser if ($logout) { // Log out $GLOBALS['request']->_user = new _AnonUser(); + $GLOBALS['request']->_user->_userid = ''; return $GLOBALS['request']->_user; } elseif ($cancel) @@ -535,7 +546,10 @@ class _WikiUser $authlevel = $this->checkPass($passwd === false ? '' : $passwd); - if (!$authlevel) + if (!$authlevel) { + if ($passwd) + return _("Invalid password."); + else return _("Invalid password or userid."); - elseif ($authlevel < $require_level) + } elseif ($authlevel < $require_level) return _("Insufficient permissions."); @@ -796,6 +810,4 @@ extends _AnonUser * Default is PersonalPage auth and prefs. * - * TODO: email verification - * * @author: Reini Urban * @tables: pref @@ -926,12 +938,11 @@ extends _AnonUser $dbh = $request->getDbh(); // session restauration doesn't re-connect to the database automatically, - // so dirty it here. - if (($dbh->getParam('dbtype') == 'SQL') and isset($this->_auth_dbi) and - empty($this->_auth_dbi->connection)) + // so dirty it here, to force a reconnect. + if (isset($this->_auth_dbi)) { + if (($dbh->getParam('dbtype') == 'SQL') and empty($this->_auth_dbi->connection)) unset($this->_auth_dbi); - if (($dbh->getParam('dbtype') == 'ADODB') and isset($this->_auth_dbi) and - empty($this->_auth_dbi->_connectionID)) + if (($dbh->getParam('dbtype') == 'ADODB') and empty($this->_auth_dbi->_connectionID)) unset($this->_auth_dbi); - + } if (empty($this->_auth_dbi)) { if ($dbh->getParam('dbtype') != 'SQL' and $dbh->getParam('dbtype') != 'ADODB') @@ -1126,5 +1137,5 @@ extends _AnonUser if(!empty($submitted_password)) { if (strlen($stored_password) < PASSWORD_LENGTH_MINIMUM) { - // Todo. hmm... + // With the EditMetaData plugin trigger_error(_("The length of the stored password is shorter than the system policy allows. Sorry, you cannot login.\n You have to ask the System Administrator to reset your password.")); return false; @@ -1254,5 +1265,9 @@ extends _PassUser } } - $this->userExists(); + if (isWikiWord($this->_userid)) { + $this->_level = WIKIAUTH_BOGO; + } else { + $this->_level = WIKIAUTH_ANON; + } return $this->_level; } @@ -1285,5 +1300,5 @@ extends _PassUser _("Your access permissions are only for a BogoUser.\n"). _("Please set your password in UserPreferences."), - $this->_userid), E_USER_NOTICE); + $this->_userid), E_USER_WARNING); $this->_level = WIKIAUTH_BOGO; return $this->_level; @@ -2187,4 +2202,9 @@ extends _PassUser * For security, this class should not be extended. Instead, extend * from _PassUser (think of this as unix "root"). + * + * FIXME: This should be a singleton class. Only ADMIN_USER may be of class AdminUser! + * Other members of the Administrators group must raise their level otherwise somehow. + * Currently every member is a AdminUser, which will not work for the various + * storage methods. */ class _AdminUser @@ -2195,12 +2215,20 @@ extends _PassUser } function checkPass($submitted_password) { + if ($this->_userid == ADMIN_USER) $stored_password = ADMIN_PASSWD; + else { + // TODO: safety check if really member of the ADMIN group? + + $stored_password = $this->_pref->get('passwd'); + } if ($this->_checkPass($submitted_password, $stored_password)) { $this->_level = WIKIAUTH_ADMIN; return $this->_level; } else { - $this->_level = WIKIAUTH_ANON; - return $this->_level; + return $this->_tryNextPass($submitted_password); + //$this->_level = WIKIAUTH_ANON; + //return $this->_level; } + } function storePass($submitted_password) { @@ -2484,5 +2512,5 @@ extends _UserPreference list($ok,$msg) = ValidateMail($value); if ($ok and mail($value,"[".WIKI_NAME ."] "._("Email Verification"), - sprintf(_("Welcome to %s!\nYou email account is verified and\nwill be used to send pagechange notifications.\nSee %s"), + sprintf(_("Welcome to %s!\nYour email account is verified and\nwill be used to send page change notifications.\nSee %s"), WIKI_NAME, WikiURL($GLOBALS['request']->getArg('pagename'),'',true)))) $this->set('emailVerified',1); @@ -2880,4 +2908,9 @@ extends UserPreferences // $Log$ +// Revision 1.79 2004/06/01 15:27:59 rurban +// AdminUser only ADMIN_USER not member of Administrators +// some RateIt improvements by dfrankow +// edit_toolbar buttons +// // Revision 1.78 2004/05/27 17:49:06 rurban // renamed DB_Session to DbSession (in CVS also) Index: XmlParser.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/XmlParser.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -2 -b -p -d -r1.1 -r1.2 --- XmlParser.php 24 May 2004 17:31:31 -0000 1.1 +++ XmlParser.php 1 Jun 2004 15:28:00 -0000 1.2 @@ -156,20 +156,5 @@ class XmlParser { } else { // other url_fopen workarounds: curl, socket (http 80 only) - require_once("lib/HttpClient.php"); - $bits = parse_url($file); - $host = $bits['host']; - $port = isset($bits['port']) ? $bits['port'] : 80; - $path = isset($bits['path']) ? $bits['path'] : '/'; - if (isset($bits['query'])) { - $path .= '?'.$bits['query']; - } - $client = new HttpClient($host, $port); - $client->use_gzip = false; - if ($debug) $client->debug = true; - if (!$client->get($path)) { - $data = false; - } else { - $data = $client->getContent(); - } + $data = url_get_contents($file); if (empty($data)) return; $this->parse($data); @@ -179,4 +164,9 @@ class XmlParser { // $Log$ +// Revision 1.2 2004/06/01 15:28:00 rurban +// AdminUser only ADMIN_USER not member of Administrators +// some RateIt improvements by dfrankow +// edit_toolbar buttons +// // Revision 1.1 2004/05/24 17:31:31 rurban // new XmlParser and HtmlParser, RssParser based on that. Index: editpage.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/editpage.php,v retrieving revision 1.67 retrieving revision 1.68 diff -u -2 -b -p -d -r1.67 -r1.68 --- editpage.php 27 May 2004 17:49:06 -0000 1.67 +++ editpage.php 1 Jun 2004 15:28:00 -0000 1.68 @@ -4,7 +4,10 @@ rcs_id('$Id$'); require_once('lib/Template.php'); +// USE_HTMLAREA - WYSIWYG HTML Editor // Not yet enabled, since we cannot convert HTML to Wiki Markup yet. +// (See HtmlParser.php for the ongoing efforts) // We might use a HTML PageType, which is contra wiki, but some people might prefer HTML markup. -// Todo: change from constant to user preference variable. (or checkbox setting) +// TODO: Change from constant to user preference variable (checkbox setting), +// when HtmlParser is finished. if (!defined('USE_HTMLAREA')) define('USE_HTMLAREA',false); if (USE_HTMLAREA) require_once('lib/htmlarea.php'); @@ -58,4 +61,5 @@ class PageEditor } elseif ($initial_content = $request->getArg('initial_content')) { $this->_content = $initial_content; + $this->_redirect_to = $request->getArg('save_and_redirect_to'); } } @@ -73,7 +77,16 @@ class PageEditor $tokens['PAGE_LOCKED_MESSAGE'] = $this->getLockedMessage(); } + elseif ($this->request->getArg('save_and_redirect_to') != "") { + if ($this->savePage()) { + // noreturn + $this->request->redirect(WikiURL($this->request->getArg('save_and_redirect_to'))); + return true; // Page saved. + } + $saveFailed = true; + } elseif ($this->editaction == 'save') { - if ($this->savePage()) + if ($this->savePage()) { return true; // Page saved. + } $saveFailed = true; } @@ -108,4 +121,5 @@ class PageEditor $tokens = array_merge($tokens, $this->getFormElements()); + // TODO: add this to the EDIT_TOOLBAR if (defined('JS_SEARCHREPLACE') and JS_SEARCHREPLACE) { $tokens['JS_SEARCHREPLACE'] = 1; @@ -193,51 +207,51 @@ function speich() { $toolarray = array( array( - "image"=>"button_bold.png", + "image"=>"ed_format_bold.gif", "open"=>"*", "close"=>"*", - "sample"=>_("bold_sample"), - "tip"=>_("bold_tip")), - array("image"=>"button_italic.png", + "sample"=>_("Bold text"), + "tip"=>_("Bold text")), + array("image"=>"ed_format_italic.gif", "open"=>"_", "close"=>"_", - "sample"=>_("italic_sample"), - "tip"=>_("italic_tip")), - array("image"=>"button_link.png", + "sample"=>_("Italic text"), + "tip"=>_("Italic text")), + array("image"=>"ed_pagelink.gif", "open"=>"[", "close"=>"]", - "sample"=>_("link_sample"), - "tip"=>_("link_tip")), - array("image"=>"button_extlink.png", + "sample"=>_("[ Label | PageName]"), + "tip"=>_("Link to page")), + array("image"=>"ed_link.gif", "open"=>"[", "close"=>"]", - "sample"=>_("extlink_sample"), - "tip"=>_("extlink_tip")), - array("image"=>"button_headline.png", + "sample"=>_("[label | http://www.example.com]"), + "tip"=>_("External link (remember http:// prefix)")), + array("image"=>"ed_headline.gif", "open"=>"\\n!!! ", "close"=>"\\n", - "sample"=>_("headline_sample"), - "tip"=>_("headline_tip")), - array("image"=>"button_image.png", + "sample"=>_("Headline text"), + "tip"=>_("Level 1 headline")), + array("image"=>"ed_image.gif", "open"=>"[ ", "close"=>" ]", - "sample"=>_("image_sample"), - "tip"=>_("image_tip")), - array("image"=>"button_nowiki.png", + "sample"=>_("Example.jpg"), + "tip"=>_("Embedded image")), + array("image"=>"ed_nowiki.gif", "open"=>"\\n\\<verbatim\\>\\n", "close"=>"\\n\\</verbatim\\>\\n", - "sample"=>_("nowiki_sample"), - "tip"=>_("nowiki_tip")), - array("image"=>"button_sig.png", + "sample"=>_("Insert non-formatted text here"), + "tip"=>_("Ignore wiki formatting")), + array("image"=>"ed_sig.gif", "open" => "--" . $GLOBALS['request']->_user->UserName(), "close" => "", "sample"=>"", - "tip"=>_("sig_tip")), - array("image"=>"button_hr.png", + "tip"=>_("Your signature")), + array("image"=>"ed_hr.gif", "open"=>"\\n----\\n", "close"=>"", "sample"=>"", - "tip"=>_("hr_tip")) + "tip"=>_("Horizontal line")) ); - $toolbar = "document.writeln(\"<div id=\\\"toolbar\\\">\");\n"; + $toolbar = "document.writeln(\"<div class=\\\"edit-toolbar\\\" id=\\\"toolbar\\\">\");\n"; foreach ($toolarray as $tool) { $image = $Theme->getImageURL($tool["image"]); @@ -704,4 +718,15 @@ extends PageEditor /** $Log$ + Revision 1.68 2004/06/01 15:28:00 rurban + AdminUser only ADMIN_USER not member of Administrators + some RateIt improvements by dfrankow + edit_toolbar buttons + + Revision _1.6 2004/05/26 15:48:00 syilek + fixed problem with creating page with slashes from one true page + + Revision _1.5 2004/05/25 16:51:53 syilek + added ability to create a page from the category page and not have to edit it + Revision 1.67 2004/05/27 17:49:06 rurban renamed DB_Session to DbSession (in CVS also) Index: main.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/main.php,v retrieving revision 1.152 retrieving revision 1.153 diff -u -2 -b -p -d -r1.152 -r1.153 --- main.php 27 May 2004 17:49:06 -0000 1.152 +++ main.php 1 Jun 2004 15:28:00 -0000 1.153 @@ -456,4 +456,14 @@ $this->version = phpwiki_version(); case 'upgrade': return WIKIAUTH_ADMIN; + + /* authcheck occurs only in the plugin. + required actionpage RateIt */ + /* + case 'rate': + case 'delete_rating': + // Perhaps this should be WIKIAUTH_USER + return WIKIAUTH_BOGO; + */ + default: global $WikiNameRegexp; @@ -614,6 +624,8 @@ $this->version = phpwiki_version(); function _deduceUsername() { global $HTTP_SERVER_VARS, $HTTP_ENV_VARS; + if (!empty($this->args['auth']) and !empty($this->args['auth']['userid'])) return $this->args['auth']['userid']; + if (!empty($HTTP_SERVER_VARS['PHP_AUTH_USER'])) return $HTTP_SERVER_VARS['PHP_AUTH_USER']; @@ -946,4 +958,9 @@ main(); // $Log$ +// Revision 1.153 2004/06/01 15:28:00 rurban +// AdminUser only ADMIN_USER not member of Administrators +// some RateIt improvements by dfrankow +// edit_toolbar buttons +// // Revision 1.152 2004/05/27 17:49:06 rurban // renamed DB_Session to DbSession (in CVS also) |