[Phpbbproject-svn] SF.net SVN: phpbbproject:[284] trunk
phpBB download manager, mainly aimed at MOD authors
Status: Planning
Brought to you by:
lord_le_brand
From: <lor...@us...> - 2008-07-29 23:25:37
|
Revision: 284 http://phpbbproject.svn.sourceforge.net/phpbbproject/?rev=284&view=rev Author: lord_le_brand Date: 2008-07-29 23:25:46 +0000 (Tue, 29 Jul 2008) Log Message: ----------- Started implementing ACL Locations Modified Paths: -------------- trunk/develop/create_schema_files_phpbb3.php trunk/develop/permissions.txt trunk/develop/todo_list.txt trunk/phpbb3/root/includes/project/info/project_main.php trunk/phpbb3/root/includes/project/info/project_project.php trunk/phpbb3/root/includes/sources_project/extensions.php trunk/phpbb3/root/project.php Modified: trunk/develop/create_schema_files_phpbb3.php =================================================================== --- trunk/develop/create_schema_files_phpbb3.php 2008-07-22 21:59:06 UTC (rev 283) +++ trunk/develop/create_schema_files_phpbb3.php 2008-07-29 23:25:46 UTC (rev 284) @@ -932,14 +932,6 @@ //------------------------------------------ // - // Permissions - // - - // @todo New table to work with poyntesm's auth patch - - //------------------------------------------ - - // // Trackers // Modified: trunk/develop/permissions.txt =================================================================== --- trunk/develop/permissions.txt 2008-07-22 21:59:06 UTC (rev 283) +++ trunk/develop/permissions.txt 2008-07-29 23:25:46 UTC (rev 284) @@ -1,6 +1,6 @@ Permissions for phpBB Project: -Wait for poyntesm to finish his patch for the auth class +Use ACL Locations MOD Assigned by authors: [?] Modified: trunk/develop/todo_list.txt =================================================================== --- trunk/develop/todo_list.txt 2008-07-22 21:59:06 UTC (rev 283) +++ trunk/develop/todo_list.txt 2008-07-29 23:25:46 UTC (rev 284) @@ -1,12 +1,13 @@ Todo list for phpBB Project +- Move database inserts for ACL tables to PHP - Author ordering in MOD(X) file/project overview page - Definitive decision on storing versioned files - Generate filetree more efficiently (download class) - Expand validate_project_title() - Decide on what information will go on view category module - Target version information -- Wait till poyntesm finishes his auth patch +- Implement ACL Locations MOD - Change the way authors are tied to projects using acl tables? - Decide on better module structure - Modules: Modified: trunk/phpbb3/root/includes/project/info/project_main.php =================================================================== --- trunk/phpbb3/root/includes/project/info/project_main.php 2008-07-22 21:59:06 UTC (rev 283) +++ trunk/phpbb3/root/includes/project/info/project_main.php 2008-07-29 23:25:46 UTC (rev 284) @@ -36,7 +36,7 @@ 'version' => '1.0.0', 'modes' => array( 'overview' => array('title' => 'PROJECT_MAIN_OVERVIEW', 'auth' => 'acl_p_', 'cat' => array('PROJECT_CAT_MAIN')), - 'viewcat' => array('title' => 'PROJECT_VIEW_CATEGORY', 'auth' => 'acl_p_view_category,$c_id', 'cat' => array('PROJECT_CAT_MAIN')), + 'viewcat' => array('title' => 'PROJECT_VIEW_CATEGORY', 'auth' => 'acl_p_view_category,$id_category', 'cat' => array('PROJECT_CAT_MAIN')), 'create_project' => array('title' => 'PROJECT_CREATE_PROJECT', 'auth' => 'acl_p_add_project', 'cat' => array('PROJECT_CAT_MAIN')), 'import' => array('title' => 'PROJECT_IMPORT_PROJECT', 'auth' => 'acl_p_add_project', 'cat' => array('PROJECT_CAT_MAIN')), ), Modified: trunk/phpbb3/root/includes/project/info/project_project.php =================================================================== --- trunk/phpbb3/root/includes/project/info/project_project.php 2008-07-22 21:59:06 UTC (rev 283) +++ trunk/phpbb3/root/includes/project/info/project_project.php 2008-07-29 23:25:46 UTC (rev 284) @@ -35,12 +35,12 @@ 'title' => 'PROJECT_CAT_PROJECT', 'version' => '1.0.0', 'modes' => array( - 'overview' => array('title' => 'PROJECT_PROJECT_OVERVIEW', 'auth' => 'acl_p_view_project,$pr_id', 'cat' => array('PROJECT_CAT_VIEW_PROJECT')), - 'view_info' => array('title' => 'PROJECT_VIEW_INFO', 'auth' => 'acl_p_view_project,$pr_id', 'cat' => array('PROJECT_CAT_VIEW_PROJECT')), - 'view_authors' => array('title' => 'PROJECT_VIEW_AUTHORS', 'auth' => 'acl_p_view_project,$pr_id', 'cat' => array('PROJECT_CAT_VIEW_PROJECT')), - 'view_history' => array('title' => 'PROJECT_VIEW_HISTORY', 'auth' => 'acl_p_view_project,$pr_id', 'cat' => array('PROJECT_CAT_VIEW_PROJECT')), - 'download' => array('title' => 'PROJECT_DOWNLOAD_PROJECT', 'auth' => 'acl_p_download_project,$pr_id', 'cat' => array('PROJECT_CAT_PROJECT')), - 'diff' => array('title' => 'PROJECT_VIEW_DIFF', 'auth' => 'acl_p_download_project,$pr_id', 'cat' => array('PROJECT_CAT_PROJECT')), + 'overview' => array('title' => 'PROJECT_PROJECT_OVERVIEW', 'auth' => 'acl_p_view_project,$id_project', 'cat' => array('PROJECT_CAT_VIEW_PROJECT')), + 'view_info' => array('title' => 'PROJECT_VIEW_INFO', 'auth' => 'acl_p_view_project,$id_project', 'cat' => array('PROJECT_CAT_VIEW_PROJECT')), + 'view_authors' => array('title' => 'PROJECT_VIEW_AUTHORS', 'auth' => 'acl_p_view_project,$id_project', 'cat' => array('PROJECT_CAT_VIEW_PROJECT')), + 'view_history' => array('title' => 'PROJECT_VIEW_HISTORY', 'auth' => 'acl_p_view_project,$id_project', 'cat' => array('PROJECT_CAT_VIEW_PROJECT')), + 'download' => array('title' => 'PROJECT_DOWNLOAD_PROJECT', 'auth' => 'acl_p_download_project,$id_project', 'cat' => array('PROJECT_CAT_PROJECT')), + 'diff' => array('title' => 'PROJECT_VIEW_DIFF', 'auth' => 'acl_p_download_project,$id_project', 'cat' => array('PROJECT_CAT_PROJECT')), ), ); } Modified: trunk/phpbb3/root/includes/sources_project/extensions.php =================================================================== --- trunk/phpbb3/root/includes/sources_project/extensions.php 2008-07-22 21:59:06 UTC (rev 283) +++ trunk/phpbb3/root/includes/sources_project/extensions.php 2008-07-29 23:25:46 UTC (rev 284) @@ -16,79 +16,4 @@ exit; } -/** - * @todo poyntesm's patch is gonna be here, once it's released - */ - -/** - * phpBB Project Module extension - * - * @package phpbbproject - */ -class project_p_master extends p_master -{ - public $acl_cat_id = false; - public $acl_project_id = false; - - /** - * Check module authorisation, with project_id and category_id :) - */ - function module_auth($module_auth, $forum_id = false, $category_id = false, $project_id = false) - { - global $auth; - - $module_auth = trim($module_auth); - - // Generally allowed to access module if module_auth is empty - if (!$module_auth) - { - return true; - } - - // With the code below we make sure only those elements get eval'd we really want to be checked - preg_match_all('/(?: - "[^"\\\\]*(?:\\\\.[^"\\\\]*)*" | - \'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\' | - [(),] | - [^\s(),]+)/x', $module_auth, $match); - - $tokens = $match[0]; - for ($i = 0, $size = sizeof($tokens); $i < $size; $i++) - { - $token = &$tokens[$i]; - - switch ($token) - { - case ')': - case '(': - case '&&': - case '||': - case ',': - break; - - default: - if (!preg_match('#(?:acl_([a-z_]+)(,\$(?:c_|pr_|)id)?)|(?:\$(?:c_|pr_|)id)|(?:aclf_([a-z_]+))|(?:cfg_([a-z_]+))|(?:request_([a-z_]+))#', $token)) - { - $token = ''; - } - break; - } - } - - $module_auth = implode(' ', $tokens); - - // Make sure $id seperation is working fine - $module_auth = str_replace(' , ', ',', $module_auth); - - $forum_id = ($forum_id === false) ? $this->acl_forum_id : $forum_id; - $category_id = ($category_id === false) ? $this->acl_cat_id : $category_id; - $project_id = ($project_id === false) ? $this->acl_project_id : $project_id; - - $is_auth = false; - // @todo Rewrite this for auth extension - eval('$is_auth = (int) (' . preg_replace(array('#acl_([a-z_]+)(,\$(?:c_|pr_|)id)?#', '#\$id#', '#\$c_id#', '#\$pr_id#', '#aclf_([a-z_]+)#', '#cfg_([a-z_]+)#', '#request_([a-z_]+)#'), array('(int) $auth->acl_get(\'\\1\'\\2)', '(int) $forum_id', '(int) $category_id', '(int) $project_id', '(int) $auth->acl_getf_global(\'\\1\')', '(int) $config[\'\\1\']', '!empty($_REQUEST[\'\\1\'])'), $module_auth) . ');'); - - return $is_auth; - } -} ?> \ No newline at end of file Modified: trunk/phpbb3/root/project.php =================================================================== --- trunk/phpbb3/root/project.php 2008-07-22 21:59:06 UTC (rev 283) +++ trunk/phpbb3/root/project.php 2008-07-29 23:25:46 UTC (rev 284) @@ -18,15 +18,11 @@ require("{$phpbb_root_path}common.$phpEx"); require("{$phpbb_root_path}includes/functions_module.$phpEx"); require("{$phpbb_root_path}includes/sources_project/constants.$phpEx"); -require("{$phpbb_root_path}includes/sources_project/extensions.$phpEx"); +//require("{$phpbb_root_path}includes/sources_project/extensions.$phpEx"); // Obsolete now require("{$phpbb_root_path}includes/sources_project/functions_project.$phpEx"); define('PROJECT_BASE_URL', "{$phpbb_root_path}project.$phpEx"); -/** - * @todo Initiate poyntesm's auth patch - */ - // Basic parameter data $id = request_var('i', ''); $mode = request_var('mode', ''); @@ -39,20 +35,19 @@ // Setting a variable to let the style designer know where he is ??? $template->assign_var('S_IN_PROJECT', true); -$module = new project_p_master(); +$module = new p_master(); -$project_id = request_var('pr', 0); -$category_id = request_var('c', 0); -$action = request_var('action', ''); +$category_id = request_var('c', 0); +$project_id = request_var('pr', 0); +$tracker_id = request_var('tid', 0); +$action = request_var('action', ''); -/** - * @todo Rewrite this for auth extension // If the user doesn't have any project permissions (globally or locally) he can't access any modules... if (!$auth->acl_getf_global('p_')) { trigger_error($user->lang['NOT_AUTHORISED']); } - +/* This just seems weird // if the user cannot view the project he tries to access then we won't allow other access either if ($project_id && !$auth->acl_get('p_view_project', $project_id)) { @@ -64,12 +59,10 @@ { trigger_error($user->lang['PROJECT_NOT_AUTH_CAT']); } - */ +//*/ if ($project_id) { - $module->acl_project_id = $project_id; - // Or do we want to overwrite it? if (!$category_id) { @@ -82,10 +75,11 @@ } } -if ($category_id) -{ - $module->acl_cat_id = $category_id; -} +$module->additional_ids = array( + 'category' => $category_id, + 'project' => $project_id, + 'tracker' => $tracker_id, +); // Instantiate module system and generate list of available modules $module->list_modules('project'); @@ -106,36 +100,38 @@ function _module__url($mode, $module_row) { - global $category_id, $project_id; + global $category_id, $project_id, $tracker_id; $return = ($category_id) ? "&c=$category_id" : ''; $return .= ($project_id) ? "&pr=$project_id" : ''; + $return .= ($tracker_id) ? "&tid=$tracker_id" : ''; return $return; } function _module_main_url($mode, $module_row) { - global $category_id, $project_id; + global $category_id, $project_id, $tracker_id; $return = ($category_id) ? "&c=$category_id" : ''; $return .= ($project_id) ? "&pr=$project_id" : ''; + $return .= ($tracker_id) ? "&tid=$tracker_id" : ''; return $return; } function _module_project_url($mode, $module_row) { - global $category_id, $project_id; + global $category_id, $project_id, $tracker_id; $return = ($category_id) ? "&c=$category_id" : ''; $return .= ($project_id) ? "&pr=$project_id" : ''; + $return .= ($tracker_id) ? "&tid=$tracker_id" : ''; return $return; } function _module_trackers_url($mode, $module_row) { - global $category_id, $project_id; + global $category_id, $project_id, $tracker_id; - $tracker_id = request_var('tid', 0); $tracker_category = request_var('tcat', 0); $ticket_id = request_var('ticket', 0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |