Portions created by the Initial Developer are Copyright (C) 2008-2012 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ require_once "root.php"; require_once "includes/require.php"; require_once "includes/checkauth.php"; if (permission_exists('group_permissions') || if_group("superadmin")) { //access granted } else { echo "access denied"; exit; } require_once "includes/header.php"; require_once "includes/paging.php"; //get the list of installed apps from the core and mod directories $config_list = glob($_SERVER["DOCUMENT_ROOT"] . PROJECT_PATH . "/*/*/app_config.php"); $x=0; foreach ($config_list as &$config_path) { include($config_path); $x++; } //if there are no permissions listed in v_group_permissions then set the default permissions $sql = ""; $sql .= "select count(*) as count from v_group_permissions "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); foreach ($result as &$row) { $group_permission_count = $row["count"]; break; //limit to 1 row } unset ($prep_statement); if ($group_permission_count == 0) { //no permissions found add the defaults foreach($apps as $app) { foreach ($app['permissions'] as $row) { foreach ($row['groups'] as $group) { //add the record $sql = "insert into v_group_permissions "; $sql .= "("; $sql .= "group_permission_uuid, "; $sql .= "domain_uuid, "; $sql .= "permission_name, "; $sql .= "group_name "; $sql .= ")"; $sql .= "values "; $sql .= "("; $sql .= "'".uuid()."', "; $sql .= "'$domain_uuid', "; $sql .= "'".$row['name']."', "; $sql .= "'".$group."' "; $sql .= ")"; $db->exec(check_sql($sql)); unset($sql); } } } } //get the http values and set them as php variables $group_name = $_REQUEST['group_name']; //get the permissions assigned to this group $sql = ""; $sql .= " select * from v_group_permissions "; $sql .= "where domain_uuid = '$domain_uuid' "; $sql .= "and group_name = '$group_name' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); foreach ($result as &$row) { $permission_name = $row["permission_name"]; $permissions_db[$permission_name] = "true"; } //show the db checklist //echo "
";
	//print_r($permissions_db);
	//echo "
"; //list all the permissions in the database foreach($apps as $app) { foreach ($app['permissions'] as $row) { if ($permissions_db[$row['name']] == "true") { $permissions_db_checklist[$row['name']] = "true"; } else { $permissions_db_checklist[$row['name']] = "false"; } } } //show the db checklist //echo "
";
	//print_r($permissions_db_checklist);
	//echo "
"; //process the http post if (count($_POST)>0) { foreach($_POST['permissions_form'] as $permission) { $permissions_form[$permission] = "true"; } //list all the permissions foreach($apps as $app) { foreach ($app['permissions'] as $row) { if ($permissions_form[$row['name']] == "true") { $permissions_form_checklist[$row['name']] = "true"; } else { $permissions_form_checklist[$row['name']] = "false"; } } } //show the form db checklist //echo "
";
			//print_r($permissions_form_checklist);
			//echo "
"; //list all the permissions foreach($apps as $app) { foreach ($app['permissions'] as $row) { $permission = $row['name']; if ($permissions_db_checklist[$permission] == "true" && $permissions_form_checklist[$permission] == "true") { //matched do nothing } if ($permissions_db_checklist[$permission] == "false" && $permissions_form_checklist[$permission] == "false") { //matched do nothing } if ($permissions_db_checklist[$permission] == "true" && $permissions_form_checklist[$permission] == "false") { //delete the record $sql = "delete from v_group_permissions "; $sql .= "where domain_uuid = '$domain_uuid' "; $sql .= "and group_name = '$group_name' "; $sql .= "and permission_name = '$permission' "; $db->exec(check_sql($sql)); unset($sql); //set the permission to false in the permissions_db_checklist $permissions_db_checklist[$permission] = "false"; } if ($permissions_db_checklist[$permission] == "false" && $permissions_form_checklist[$permission] == "true") { //add the record $sql = "insert into v_group_permissions "; $sql .= "("; $sql .= "group_permission_uuid, "; $sql .= "domain_uuid, "; $sql .= "permission_name, "; $sql .= "group_name "; $sql .= ")"; $sql .= "values "; $sql .= "("; $sql .= "'".uuid()."', "; $sql .= "'$domain_uuid', "; $sql .= "'$permission', "; $sql .= "'$group_name' "; $sql .= ")"; $db->exec(check_sql($sql)); unset($sql); //set the permission to true in the permissions_db_checklist $permissions_db_checklist[$permission] = "true"; } } } } //show the content echo "
\n"; echo "
"; echo "\n"; echo "\n"; echo " "; echo ""; echo "
\n"; echo "
"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
Group Permissions for $group_name\n"; if (permission_exists('group_edit')) { echo " "; } echo " "; echo "
\n"; echo " Assign permissions to groups.

\n"; echo "
\n"; echo "
\n"; $c = 0; $row_style["0"] = "row_style0"; $row_style["1"] = "row_style1"; echo "
\n"; //list all the permissions foreach($apps as $app) { $app_name = $app['name']; $description = $app['description']['en-us']; echo "".$app_name."
\n"; echo "".$description."

"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; foreach ($app['permissions'] as $row) { echo "\n"; echo " \n"; echo " \n"; echo "\n"; if ($c==0) { $c=1; } else { $c=0; } } echo "\n"; echo " \n"; echo "\n"; echo "
PermissionsDescription
\n"; if ($permissions_db_checklist[$row['name']] == "true") { echo " \n"; } else { echo " \n"; } echo "   ".$row['name']."\n"; echo " \n"; echo "   ".$row['description']."\n"; echo "
\n"; echo " \n"; echo "
"; echo "
\n"; } //end foreach unset($sql, $result, $row_count); echo "
"; echo "

"; echo "

"; echo "
"; echo "
"; echo "\n"; echo "

"; //show the footer require_once "includes/footer.php"; ?>