"; if (preg_match("/$flag/",$access_rights)) return $right; } function exec_ogp_module() { global $db; $isAdmin = $db->isAdmin($_SESSION['user_id']); if(isset($_REQUEST['user_id'])){ if(empty($_REQUEST['user_id']) || $db->getUserById($_REQUEST['user_id']) == null) { print_failure(get_lang("valid_user")); return; } }else if(isset($_REQUEST['group_id'])){ if(empty($_REQUEST['group_id']) || $db->getGroupById($_REQUEST['group_id']) == null) { print_failure(get_lang("valid_group")); return; } }else{ print_failure(get_lang("invalid_url")); return; } if ( isset( $_REQUEST['user_id'] ) && !$isAdmin ) { echo "
".get_lang("not_available")."
"; return; } if ( isset( $_REQUEST['group_id'] ) && !$isAdmin ) { $result = $db->getUserGroupList($_SESSION['user_id']); foreach ( $result as $row ) #loop through the groups { if ( $row['group_id'] == $_REQUEST['group_id'] ) { $own_group = TRUE; } } } if( !$isAdmin && !isset($own_group) ) { echo "".get_lang("not_available")."
"; return; } $selections = array(); $full_access = ''; foreach($db->getModulesAccessRights() as $ar) { $selections[$ar['description']] = $ar['flag']; $full_access .= $ar['flag']; } if(isset($_POST['change_access_rights'])) { if(is_array($_POST['home_ids'])) { if($isAdmin) $access_right_flags = implode('',$_POST['flags']); foreach($_POST['home_ids'] as $i => $home_id) { if(!$isAdmin) { $home_info = $db->getUserGameHome($_SESSION['user_id'],$home_id); $access_rights = $home_info['access_rights']; $flags = $_POST['flags']; foreach($flags as $i => $flag) { if(!strstr($access_rights, $flag)) unset($flags[$i]); } $access_right_flags = implode('',$flags); } if(!$db->updateAccessRightsFor($_POST['id_type'],$_POST['assign_id'],$home_id,$access_right_flags)) print_failure(get_lang_f("failed_to_assign_game_for_",$id_type,$db->getError())); } } return; } if ( isset($_REQUEST['user_id']) ) { $assign_id = $_REQUEST['user_id']; $id_type = "user"; $user = $db->getUserById($assign_id); $assign_name = $user['users_login']; } else if ( isset($_REQUEST['group_id']) ) { $assign_id = $_REQUEST['group_id']; $id_type = "group"; $group = $db->getGroupById($assign_id); $assign_name = $group['group_name']; } $submit = isset($_POST['submit']) ? $_POST['submit'] : ""; if( isset($_REQUEST['assign']) ) { $access_rights = ""; foreach ($selections as $selection => $flag) { if (isset($_REQUEST[$selection])) $access_rights .= $flag; } $hacker = FALSE; if( !$isAdmin ) { $home_info = $db->getUserGameHome($_SESSION['user_id'],$_REQUEST['home_id']); if(!$home_info) { print_failure(get_lang_f("failed_to_assign_game_for",$id_type,"(Hacking attempt)")); $hacker = TRUE; } else { foreach ($selections as $selection => $flag) { if (isset($_REQUEST[$selection])) { if( !preg_match("/$flag/",$home_info['access_rights']) ) { print_failure(get_lang_f("failed_to_assign_game_for",$id_type,"(Hacking attempt)")); $hacker = TRUE; } } } } } if (!$hacker) { if ( $db->assignHomeTo($id_type,$assign_id,$_REQUEST['home_id'], $access_rights) === TRUE ) { $db->updateExpirationDate($_REQUEST['home_id'], $_POST['expiration_date'], $id_type, $assign_id); print_success(get_lang_f("assigned_home_to_".$id_type,$_REQUEST['home_id'],$assign_name)); $db->logger(get_lang_f("assigned_home_to_".$id_type,$_REQUEST['home_id'],$assign_name)); } else { print_failure(get_lang_f("failed_to_assign_game_for_",$id_type,$db->getError())); } } unset($_POST['home_id']); } else if ( isset($_REQUEST['unassign']) ) { if ( $db->unassignHomeFrom($id_type,$assign_id,$_REQUEST['home_id']) === TRUE ) { print_success(get_lang_f("unassigned_home_from_".$id_type,$_REQUEST['home_id'],$assign_name)); $db->logger(get_lang_f("unassigned_home_from_".$id_type,$_REQUEST['home_id'],$assign_name)); } else { print_failure(get_lang_f("failed_to_assign_game_from_",$id_type)); } } $remote_servers = $db->getRemoteServers(); if ( empty($remote_servers) ) { print_failure(get_lang("no_remote_servers_available_please_add_at_least_one")); echo "".get_lang("add_remote_server")."
"; return; } if ( $isAdmin ) $available_homes = $db->getAvailableHomesFor($id_type,$assign_id); else $available_homes = $db->getAvailableUserHomesFor($id_type,$assign_id,$_SESSION['user_id']); if ( !empty($available_homes) ) { echo "| ".get_lang("home_id")." | ".get_lang("game_server")." | ".get_lang("game_type")." | ".get_lang("game_home")." | ".get_lang("game_home_name")." | ".get_lang("access_rights")." | ".get_lang("assign_expiration_date")." | ".get_lang("actions")." |
|---|---|---|---|---|---|---|---|
| " . $row['home_id'] . " | ".$row['agent_ip']." (Agent) | " . $row['game_name'] . " | " . $row['home_path'] . " | " . htmlentities($row["home_name"]) . " | $access_rights | $expiration |