Index: trunk/wb/admin/pages/settings.php
===================================================================
--- trunk/wb/admin/pages/settings.php	(revision 318)
+++ trunk/wb/admin/pages/settings.php	(revision 319)
@@ -59,14 +59,8 @@
 $results_array = $results->fetchRow();
 
 // Get display name of person who last modified the page
-$query_user = "SELECT username,display_name FROM ".TABLE_PREFIX."users WHERE user_id = '".$results_array['modified_by']."'";
-$get_user = $database->query($query_user);
-if($get_user->numRows() != 0) {
-	$user = $get_user->fetchRow();
-} else {
-	$user['display_name'] = 'Unknown';
-	$user['username'] = 'unknown';
-}
+$user=$admin->get_user_details($results_array['modified_by']);
+
 // Convert the unix ts for modified_when to human a readable form
 if($results_array['modified_when'] != 0) {
 	$modified_ts = gmdate(TIME_FORMAT.', '.DATE_FORMAT, $results_array['modified_when']+TIMEZONE);
Index: trunk/wb/admin/pages/delete.php
===================================================================
--- trunk/wb/admin/pages/delete.php	(revision 318)
+++ trunk/wb/admin/pages/delete.php	(revision 319)
@@ -40,8 +40,9 @@
 require_once(WB_PATH.'/framework/functions.php');
 
 // Get perms
-$results = $database->query("SELECT admin_groups,admin_users FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'");
-$results_array = $results->fetchRow();
+if (!$admin->get_page_permission($page_id,'admin')) {
+	$admin->print_error($MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS']);
+}
 
 // Find out more about the page
 $query = "SELECT * FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'";
@@ -52,12 +53,8 @@
 if($results->numRows() == 0) {
 	$admin->print_error($MESSAGE['PAGES']['NOT_FOUND']);
 }
+
 $results_array = $results->fetchRow();
-$old_admin_groups = explode(',', str_replace('_', '', $results_array['admin_groups']));
-$old_admin_users = explode(',', str_replace('_', '', $results_array['admin_users']));
-if(!is_numeric(array_search($admin->get_group_id(), $old_admin_groups)) AND !is_numeric(array_search($admin->get_user_id(), $old_admin_users))) {
-	$admin->print_error($MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS']);
-}
 
 $visibility = $results_array['visibility'];
 
Index: trunk/wb/admin/pages/modify.php
===================================================================
--- trunk/wb/admin/pages/modify.php	(revision 318)
+++ trunk/wb/admin/pages/modify.php	(revision 319)
@@ -37,38 +37,16 @@
 $admin = new admin('Pages', 'pages_modify');
 
 // Get perms
-$database = new database();
-$results = $database->query("SELECT admin_groups,admin_users FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'");
-$results_array = $results->fetchRow();
-$old_admin_groups = explode(',', str_replace('_', '', $results_array['admin_groups']));
-$old_admin_users = explode(',', str_replace('_', '', $results_array['admin_users']));
-if(!is_numeric(array_search($admin->get_group_id(), $old_admin_groups)) AND !is_numeric(array_search($admin->get_user_id(), $old_admin_users))) {
+if(!$admin->get_page_permission($page_id,'admin')) {
 	$admin->print_error($MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS']);
 }
 
 // Get page details
-$database = new database();
-$query = "SELECT page_id,page_title,modified_by,modified_when FROM ".TABLE_PREFIX."pages WHERE page_id = '$page_id'";
-$results = $database->query($query);
-if($database->is_error()) {
-	$admin->print_header();
-	$admin->print_error($database->get_error());
-}
-if($results->numRows() == 0) {
-	$admin->print_header();
-	$admin->print_error($MESSAGE['PAGES']['NOT_FOUND']);
-}
-$results_array = $results->fetchRow();
+$results_array=$admin->get_page_details($page_id);
 
 // Get display name of person who last modified the page
-$query_user = "SELECT username,display_name FROM ".TABLE_PREFIX."users WHERE user_id = '".$results_array['modified_by']."'";
-$get_user = $database->query($query_user);
-if($get_user->numRows() != 0) {
-	$user = $get_user->fetchRow();
-} else {
-	$user['display_name'] = 'Unknown';
-	$user['username'] = 'unknown';
-}
+$user=$admin->get_user_details($results_array['modified_by']);
+
 // Convert the unix ts for modified_when to human a readable form
 if($results_array['modified_when'] != 0) {
 	$modified_ts = gmdate(TIME_FORMAT.', '.DATE_FORMAT, $results_array['modified_when']+TIMEZONE);
Index: trunk/wb/admin/pages/add.php
===================================================================
--- trunk/wb/admin/pages/add.php	(revision 318)
+++ trunk/wb/admin/pages/add.php	(revision 319)
@@ -39,6 +39,13 @@
 $admin_groups = $admin->get_post('admin_groups');
 $viewing_groups = $admin->get_post('viewing_groups');
 
+if ($parent!=0) {
+	if (!$admin->get_page_permission($parent,'admin'))
+		$admin->print_error($MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS']);
+} elseif (!$admin->get_permission('pages_add_l0','system')) {
+	$admin->print_error($MESSAGE['PAGES']['INSUFFICIENT_PERMISSIONS']);
+}	
+
 // Validate data
 if($title == '') {
 	$admin->print_error($MESSAGE['PAGES']['BLANK_TITLE']);
@@ -74,7 +81,6 @@
 }
 
 // Check if a page with same page filename exists
-$database = new database();
 $get_same_page = $database->query("SELECT page_id FROM ".TABLE_PREFIX."pages WHERE link = '$link'");
 if($get_same_page->numRows() > 0 OR file_exists(WB_PATH.PAGES_DIRECTORY.$link.'.php') OR file_exists(WB_PATH.PAGES_DIRECTORY.$link.'/')) {
 	$admin->print_error($MESSAGE['PAGES']['PAGE_EXISTS']);
@@ -99,7 +105,6 @@
 
 // Insert page into pages table
 $query = "INSERT INTO ".TABLE_PREFIX."pages (page_title,menu_title,parent,template,target,position,visibility,searching,menu,language,admin_groups,viewing_groups,modified_when,modified_by) VALUES ('$title','$title','$parent','$template','_top','$position','$visibility','1','1','".DEFAULT_LANGUAGE."','$admin_groups','$viewing_groups','".mktime()."','".$admin->get_user_id()."')";
-$database = new database();
 $database->query($query);
 if($database->is_error()) {
 	$admin->print_error($database->get_error());
Index: trunk/wb/modules/admin.php
===================================================================
--- trunk/wb/modules/admin.php	(revision 318)
+++ trunk/wb/modules/admin.php	(revision 319)
@@ -108,14 +108,8 @@
 $results_array = $results->fetchRow();
 
 // Get display name of person who last modified the page
-$query_user = "SELECT username,display_name FROM ".TABLE_PREFIX."users WHERE user_id = '".$results_array['modified_by']."'";
-$get_user = $database->query($query_user);
-if($get_user->numRows() != 0) {
-	$user = $get_user->fetchRow();
-} else {
-	$user['display_name'] = 'Unknown';
-	$user['username'] = 'unknown';
-}
+$user=$admin->get_user_details($results_array['modified_by']);
+
 // Convert the unix ts for modified_when to human a readable form
 if($results_array['modified_when'] != 0) {
 	$modified_ts = gmdate(TIME_FORMAT.', '.DATE_FORMAT, $results_array['modified_when']+TIMEZONE);
