[ Index ] |
|
Code source de dotProject 2.1 RC1 |
1 <?php 2 3 if (! defined('DP_BASE_DIR')) { 4 die('You must not run this script manually. Instead run the Installer in install/index.php'); 5 } 6 7 @include_once DP_BASE_DIR."/includes/config.php"; 8 require_once DP_BASE_DIR."/includes/main_functions.php"; 9 require_once DP_BASE_DIR."/install/install.inc.php"; 10 require_once DP_BASE_DIR."/includes/db_adodb.php"; 11 require_once DP_BASE_DIR."/includes/db_connect.php"; 12 13 14 // Now update the GACL class information. 15 require_once DP_BASE_DIR."/classes/permissions.class.php"; 16 17 dPmsg("Creating new Permissions objects"); 18 $perms =& new dPacl; 19 20 // First, create the basic ACL sections. 21 $perms->add_object_section('System', "system", 1, 0, "aco"); 22 $perms->add_object_section('Application', "application", 2, 0, "aco"); 23 $perms->add_object_section('Users', "user", 1, 0, "aro"); 24 $perms->add_object_section('System', "sys", 1, 0, "axo"); 25 $perms->add_object_section('Application', "app", 2, 0, "axo"); 26 27 // Create the permissions in the ACO sections. 28 $perms->add_object("system", "Login", "login", 1, 0, "aco"); 29 30 $perms->add_object("application", "Access", "access", 1, 0, "aco"); 31 $perms->add_object("application", "View", "view", 2, 0, "aco"); 32 $perms->add_object("application", "Add", "add", 3, 0, "aco"); 33 $perms->add_object("application", "Edit", "edit", 4, 0, "aco"); 34 $perms->add_object("application", "Delete", "delete", 5, 0, "aco"); 35 36 // Now create the groups we need. 37 $role = $perms->add_group("role", "Roles", 0, "aro"); 38 39 $admin_role = $perms->add_group("admin", "Administrator", $role, "aro"); 40 $anon_role = $perms->add_group("anon", "Anonymous", $role, "aro"); 41 $guest_role = $perms->add_group("guest", "Guest", $role, "aro"); 42 $worker_role = $perms->add_group("normal", "Project worker", $role, "aro"); 43 44 $mod = $perms->add_group("mod", "Modules", 0, "axo"); 45 $all_mods = $perms->add_group("all", "All Modules", $mod, "axo"); 46 $admin_mods = $perms->add_group("admin", "Admin Modules", $mod, "axo"); 47 $non_admin_mods = $perms->add_group("non_admin", "Non-Admin Modules", $mod, "axo"); 48 49 // Now create all of the objects we need 50 $perms->add_object("sys", "ACL Administration", "acl", 1, 0, "axo"); 51 $perms->add_object("app", "User Administration", "admin", 1, 0, "axo"); 52 $perms->add_object("app", "Calendar", "calendar", 2, 0, "axo"); 53 $perms->add_object("app", "Events", "events", 2, 0, "axo"); 54 $perms->add_object("app", "Companies", "companies", 3, 0, "axo"); 55 $perms->add_object("app", "Contacts", "contacts", 4, 0, "axo"); 56 $perms->add_object("app", "Departments", "departments", 5, 0, "axo"); 57 $perms->add_object("app", "Files", "files", 6, 0, "axo"); 58 $perms->add_object("app", "Forums", "forums", 7, 0, "axo"); 59 $perms->add_object("app", "Help", "help", 8, 0, "axo"); 60 $perms->add_object("app", "Projects", "projects", 9, 0, "axo"); 61 $perms->add_object("app", "System Administration", "system", 10, 0, "axo"); 62 $perms->add_object("app", "Tasks", "tasks", 11, 0, "axo"); 63 $perms->add_object("app", "Task Logs", "task_log", 11, 0, "axo"); 64 $perms->add_object("app", "Tickets", "ticketsmith", 12, 0, "axo"); 65 $perms->add_object("app", "Public", "public", 13, 0, "axo"); 66 $perms->add_object("app", "Roles Administration", "roles", 14, 0, "axo"); 67 $perms->add_object("app", "User Table", "users", 15, 0, "axo"); 68 69 // Now we need to add some objects to some groups. 70 $perms->add_group_object($all_mods, "app", "admin", "axo"); 71 $perms->add_group_object($all_mods, "app", "calendar", "axo"); 72 $perms->add_group_object($all_mods, "app", "companies", "axo"); 73 $perms->add_group_object($all_mods, "app", "events", "axo"); 74 $perms->add_group_object($all_mods, "app", "contacts", "axo"); 75 $perms->add_group_object($all_mods, "app", "departments", "axo"); 76 $perms->add_group_object($all_mods, "app", "files", "axo"); 77 $perms->add_group_object($all_mods, "app", "forums", "axo"); 78 $perms->add_group_object($all_mods, "app", "help", "axo"); 79 $perms->add_group_object($all_mods, "app", "projects", "axo"); 80 $perms->add_group_object($all_mods, "app", "system", "axo"); 81 $perms->add_group_object($all_mods, "app", "tasks", "axo"); 82 $perms->add_group_object($all_mods, "app", "task_log", "axo"); 83 $perms->add_group_object($all_mods, "app", "ticketsmith", "axo"); 84 $perms->add_group_object($all_mods, "app", "public", "axo"); 85 $perms->add_group_object($all_mods, "app", "roles", "axo"); 86 $perms->add_group_object($all_mods, "app", "users", "axo"); 87 88 // Admin groups 89 $perms->add_group_object($admin_mods, "app", "admin", "axo"); 90 $perms->add_group_object($admin_mods, "app", "system", "axo"); 91 $perms->add_group_object($admin_mods, "app", "roles", "axo"); 92 $perms->add_group_object($admin_mods, "app", "users", "axo"); 93 94 // Non admin groups 95 $perms->add_group_object($non_admin_mods, "app", "calendar", "axo"); 96 $perms->add_group_object($non_admin_mods, "app", "events", "axo"); 97 $perms->add_group_object($non_admin_mods, "app", "companies", "axo"); 98 $perms->add_group_object($non_admin_mods, "app", "contacts", "axo"); 99 $perms->add_group_object($non_admin_mods, "app", "departments", "axo"); 100 $perms->add_group_object($non_admin_mods, "app", "files", "axo"); 101 $perms->add_group_object($non_admin_mods, "app", "forums", "axo"); 102 $perms->add_group_object($non_admin_mods, "app", "help", "axo"); 103 $perms->add_group_object($non_admin_mods, "app", "projects", "axo"); 104 $perms->add_group_object($non_admin_mods, "app", "tasks", "axo"); 105 $perms->add_group_object($non_admin_mods, "app", "task_log", "axo"); 106 $perms->add_group_object($non_admin_mods, "app", "ticketsmith", "axo"); 107 $perms->add_group_object($non_admin_mods, "app", "public", "axo"); 108 109 // Assign default permissions 110 111 // the Roles group has Login permission. 112 $login_perms = array(); 113 $login_perms['system'] = array("login"); 114 115 $all_perms = array(); 116 $all_perms['application'] = array('access', 'add', 'edit', 'view', 'delete'); 117 118 $access_perms = array(); 119 $access_perms['application'] = array('access'); 120 121 $view_perms = array(); 122 $view_perms['application'] = array('access', 'view'); 123 124 $acl_perms = array(); 125 $acl_perms['sys'] = array('acl'); 126 127 $perms->add_acl($login_perms, null, array($role), null, null, 1, 1, null, null, "user"); 128 129 // Administrator has ALL on ALL 130 $perms->add_acl($all_perms, null, array($admin_role), null, array($all_mods), 1, 1, null, null, "user"); 131 $perms->add_acl($access_perms, null, array($admin_role), $acl_perms, null, 1, 1, null, null, 'user'); 132 // TODO: Add the administrator ACL access. 133 134 // Guest has view on ALL 135 $perms->add_acl($view_perms, null, array($guest_role), null, array($non_admin_mods), 1, 1, null, null, "user"); 136 137 // Anon has only access on all 138 $perms->add_acl($access_perms, null, array($anon_role), null, array($non_admin_mods), 1, 1, null, null, "user"); 139 140 // Worker has All on non-admin 141 $perms->add_acl($all_perms, null, array($worker_role), null, array($non_admin_mods), 1, 1, null, null, "user"); 142 143 144 dPmsg("Converting admin user permissions to Administrator Role"); 145 // Now we have the basics set up we need to create objects for all users 146 147 $sql = "SELECT user_id, user_username, permission_id from users 148 LEFT JOIN permissions ON permission_user = users.user_id and permission_grant_on = 'all' 149 AND permission_item = -1 and permission_value = -1"; 150 151 $res = db_exec($sql); 152 if ($res) { 153 while ($row = db_fetch_assoc($res)) { 154 // Add the basic ARO 155 $perms->add_object("user", $row["user_username"], $row["user_id"], 1, 0, "aro"); 156 if ($row["permission_id"]) { 157 $perms->add_group_object($admin_role, "user", $row["user_id"], "aro"); 158 } 159 } 160 } 161 162 dPmsg("Searching for add-on modules to add to new permissions"); 163 // Upgrade permissions for custom modules 164 $sql = "SELECT mod_directory, mod_name, permissions_item_table 165 FROM modules 166 WHERE mod_ui_active = 1 167 AND mod_type = 'user'"; 168 $custom_modules = db_loadList($sql); 169 foreach($custom_modules as $mod) 170 { 171 $perms->addModule($mod['mod_directory'], $mod['mod_name']); 172 $perms->addGroupItem($mod['mod_directory'], "non_admin"); 173 174 if (isset($mod['permissions_item_table']) && $mod['permissions_item_table']) 175 $perms->addModuleSection($mod['permissions_item_table']); 176 } 177 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Feb 18 19:46:52 2007 | par Balluche grâce à PHPXref 0.7 |