".get_lang($selection.'_info').""; 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_f('assign_new_home_to_'.$id_type,$assign_name)."

"; echo "
"; echo "\n"; echo ""; echo '\n"; if( isset($_POST['home_id']) and !empty($_POST['home_id']) ) { ?> getUserGameHome($_SESSION['user_id'],$_POST['home_id']); $access_rights = $home_info['access_rights']; } foreach ( $selections as $selection => $flag) { echo create_selection($selection,$flag,$access_rights); } echo "\n". "\n". "\n". "\n"; echo "\n"; } echo "
".get_lang("assign_expiration_date").":\n". "
".get_lang("server_expiration_date").":". "
". "\n". "
". get_lang("assign_expiration_date_info") ."
\n"; } else { echo "

".get_lang("no_more_homes_available_that_can_be_assigned_for_this_$id_type")."

"; if( $isAdmin ) echo get_lang_f("you_can_add_a_new_game_server_from","".get_lang("game_servers")."")."

"; } // View servers for use if there are any. $game_homes = $db->getHomesFor($id_type,$assign_id); if( empty($game_homes) ) { echo "

".get_lang_f("no_homes_assigned_to_".$id_type,$assign_name)."

"; } else { echo "

".get_lang("assigned_homes")."

"; echo ''; echo ""; foreach( $game_homes as $row ) { $access_rights = empty($row['access_rights']) ? "-" : $row['access_rights']; $type = $id_type == "group" ? "user_group_expiration_date" : "user_expiration_date"; $expiration = $row[$type] == "X" ? "X" : date('d/m/Y H:i:s', $row[$type]); echo ""; } 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
"; echo "\n". "
$flag) { echo "data-$flag=\"$selection\" "; } echo ">
"; } if ( $id_type === "group" ) echo create_back_button('user_admin','show_groups'); else echo create_back_button('user_admin'); } ?>