# HG changeset patch # User Dan # Date 1198450701 18000 # Node ID 915d399dfdbfebad4f41cd3f49ab56837dca956f # Parent e17cc42d77cf55fb2a9a08f97c11e48318cc2a36 Corrected licensing issue on YoungPup's DOM-Drag (it is now public domain -> GPLv2+ for Enano); fixed wrongful access denial under specific circumstances (fetch_page_acl() on nonexistent page + wiki mode) diff -r e17cc42d77cf -r 915d399dfdbf includes/clientside/static/windows.js --- a/includes/clientside/static/windows.js Wed Dec 19 17:15:48 2007 -0500 +++ b/includes/clientside/static/windows.js Sun Dec 23 17:58:21 2007 -0500 @@ -234,6 +234,10 @@ * dom-drag.js * 09.25.2001 * www.youngpup.net + * The original version of this code is in the + * public domain. We have relicensed this modified + * version under the GPL version 2 or later for + * Enano. **************************************************/ var Drag = { diff -r e17cc42d77cf -r 915d399dfdbf includes/sessions.php --- a/includes/sessions.php Wed Dec 19 17:15:48 2007 -0500 +++ b/includes/sessions.php Sun Dec 23 17:58:21 2007 -0500 @@ -2707,6 +2707,13 @@ var $acl_defaults_used = Array(); /** + * Tracks whether Wiki Mode is on for the page we're operating on. + * @var bool + */ + + var $wiki_mode = false; + + /** * Constructor. * @param string $page_id The ID of the page to check * @param string $namespace The namespace of the page to check. @@ -2763,6 +2770,36 @@ $this->page_id = $page_id; $this->namespace = $namespace; + + $pathskey = $paths->nslist[$this->namespace].$this->page_id; + $ppwm = 2; + if ( isset($paths->pages[$pathskey]) ) + { + if ( isset($paths->pages[$pathskey]['wiki_mode']) ) + $ppwm = $paths->pages[$pathskey]['wiki_mode']; + } + if ( $ppwm == 1 && ( $session->user_logged_in || getConfig('wiki_mode_require_login') != '1' ) ) + $this->wiki_mode = true; + else if ( $ppwm == 1 && !$session->user_logged_in && getConfig('wiki_mode_require_login') == '1' ) + $this->wiki_mode = true; + else if ( $ppwm == 0 ) + $this->wiki_mode = false; + else if ( $ppwm == 2 ) + { + if ( $session->user_logged_in ) + { + $this->wiki_mode = ( getConfig('wiki_mode') == '1' ); + } + else + { + $this->wiki_mode = ( getConfig('wiki_mode') == '1' && getConfig('wiki_mode_require_login') != '1' ); + } + } + else + { + // Ech. Internal logic failure, this should never happen. + return false; + } } /** @@ -2776,30 +2813,29 @@ { // echo '
' . print_r($this->perms, true) . '
'; global $db, $session, $paths, $template, $plugins; // Common objects + if ( isset( $this->perms[$type] ) ) { if ( $this->perms[$type] == AUTH_DENY ) + { $ret = false; - else if ( $this->perms[$type] == AUTH_WIKIMODE && - ( isset($paths->pages[$paths->nslist[$this->namespace].$this->page_id]) && - ( $paths->pages[$paths->nslist[$this->namespace].$this->page_id]['wiki_mode'] == '1' || - ( $paths->pages[$paths->nslist[$this->namespace].$this->page_id]['wiki_mode'] == '2' - && getConfig('wiki_mode') == '1' - ) ) ) ) + } + else if ( $this->perms[$type] == AUTH_WIKIMODE && $this->wiki_mode ) + { $ret = true; - else if ( $this->perms[$type] == AUTH_WIKIMODE && ( - !isset($paths->pages[$paths->nslist[$this->namespace].$this->page_id]) - || ( - isset($paths->pages[$paths->nslist[$this->namespace].$this->page_id]) && ( - $paths->pages[$paths->nslist[$this->namespace].$this->page_id]['wiki_mode'] == '0' - || ( - $paths->pages[$paths->nslist[$this->namespace].$this->page_id]['wiki_mode'] == '2' && getConfig('wiki_mode') != '1' - ) ) ) ) ) + } + else if ( $this->perms[$type] == AUTH_WIKIMODE && !$this->wiki_mode ) + { $ret = false; + } else if ( $this->perms[$type] == AUTH_ALLOW ) + { $ret = true; + } else if ( $this->perms[$type] == AUTH_DISALLOW ) + { $ret = false; + } } else if(isset($this->acl_types[$type])) { diff -r e17cc42d77cf -r 915d399dfdbf licenses/index.html --- a/licenses/index.html Wed Dec 19 17:15:48 2007 -0500 +++ b/licenses/index.html Sun Dec 23 17:58:21 2007 -0500 @@ -85,6 +85,7 @@
  • One of the CAPTCHA easter eggs was ported from the phpBB Advanced Visual Confirmation Mod. The strange thing here is this: The installation instructions expressly state that the MOD is distributed under the GPL, but immediately afterwards it says that the MOD "can be freely used, but not distributed, without permission." Sorry buddy, but I'm with the FSF on this one, I'm legally allowed to distribute/modify it under the GPL.
  • The e-mail address encryption routine was originally written by Jim Tucek, and ported to PHP by Dan Fuhry. Jim allowed the code to be released under the GPL specifically for Enano.
  • Tigra Tree Menu - a modified version that remembers the state of the tree. The license terms are stated here. After contacting the author, I was given permission to use the Tigra Tree Menu code as if it were under the GNU GPL. Therefore, you may use this code unde the terms of the GPL, however if you're making commercial use of it, the Softcomplex guys would appreciate if (but not require that) you would contact them first.
  • +
  • youngpup's DOM-Drag class - the unmodified version is in the public domain; we chose to relicense it as of Enano 1.0.4 to clear up any potential legal complications
  • GNU Lesser General Public License

    @@ -94,12 +95,6 @@
  • debugConsole
  • -

    Creative Commons Licenses

    -

    View text: Attribution 2.0 [deed]

    - -

    The PHP License

    View the text of this license