Private GIT

Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
1 result

edit-Radius.php

Blame
  • edit-Radius.php 5.47 KiB
    <?php
    
    /**
     * Set Radius method
     *****************/
    
    # verify that user is logged in
    $User->check_user_session();
    
    # validate action
    $Admin->validate_action ($_POST['action'], true);
    
    # ID must be numeric */
    if($_POST['action']!="add") {
    	if(!is_numeric($_POST['id']))	{ $Result->show("danger", _("Invalid ID"), true, true); }
    
    	# feth method settings
    	$method_settings = $Admin->fetch_object ("usersAuthMethod", "id", $_POST['id']);
    	$method_settings->params = pf_json_decode($method_settings->params);
    }
    else {
    	$method_settings = new StdClass ();
    	# set default values
        $method_settings->params = new StdClass ();
        $method_settings->params->hostname = "localhost";
    	$method_settings->params->port = 1812;
    	$method_settings->params->timeout = 2;
    
    }
    
    # set delete flag
    $delete = $_POST['action']=="delete" ? "disabled" : "";
    ?>
    
    <!-- header -->
    <div class="pHeader"><?php print _('Radius connection settings'); ?></div>
    
    <!-- content -->
    <div class="pContent">
    
    	<form id="editAuthMethod" name="editAuthMethod">
    	<table class="editAuthMethod table table-noborder table-condensed">
    
    	<!-- description -->
    	<tr>
    		<td><?php print _('Description'); ?></td>
    		<td>
    			<input type="text" name="description" class="form-control input-sm" value="<?php print @$method_settings->description; ?>" <?php print $delete; ?>>
    		</td>
    		<td class="base_dn info2">
    			<?php print _('Set name for authentication method'); ?>
    		</td>
    	</tr>
    
    	<tr>
    		<td colspan="3"><hr></td>
    	</tr>
    
    	<!-- Server -->
    	<tr>
    		<td style="width:130px;"><?php print _('Radius server'); ?></td>
    		<td style="width:250px;">
    			<input type="text" name="hostname" class="form-control input-sm" value="<?php print @$method_settings->params->hostname; ?>" <?php print $delete; ?>>
    			<input type="hidden" name="type" value="Radius">
    			<input type="hidden" name="id" value="<?php print @$method_settings->id; ?>">
    			<input type="hidden" name="action" value="<?php print @$_POST['action']; ?>">
    			<input type="hidden" name="csrf_cookie" value="<?php print $csrf; ?>">
    		</td>
    		<td class="info2"><?php print _('Enter Radius server'); ?>
    		</td>
    	</tr>
    
    	<!-- secret -->
    	<tr>
    		<td><?php print _('Secret'); ?></td>
    		<td>
    			<input type="password" name="secret" class="form-control input-sm" value="<?php print @$method_settings->params->secret; ?>" <?php print $delete; ?>>
    		</td>
    		<td class="base_dn info2">
    			<?php print _('Enter radius secret'); ?>
    		</td>
    	</tr>
    
    	<!-- port -->
    	<tr>
    		<td><?php print _('Port'); ?></td>
    		<td>
    			<input type="text" name="port" class="form-control input-sm" value="<?php print @$method_settings->params->port; ?>" <?php print $delete; ?>>
    		</td>
    		<td class="base_dn info2">
    			<?php print _('Enter radius port (default 1812)'); ?>
    		</td>
    	</tr>
    
    	<!-- port -->
    	<tr>
    		<td><?php print _('Suffix'); ?></td>
    		<td>
    			<input type="text" name="suffix" class="form-control input-sm" value="<?php print @$method_settings->params->suffix; ?>" <?php print $delete; ?>>
    		</td>
    		<td class="base_dn info2">
    			<?php print _('Enter suffix'); ?>
    		</td>
    	</tr>
    
    	<!-- protocol -->
    	<tr>
    		<td><?php print _('Protocol'); ?></td>
    		<td>
    			<select name="authProtocol" class="form-control input-sm input-w-auto">
    			<?php
    			$values = ["pap","chap","mschapv1"];
    			foreach($values as $v) {
    				if($v==@$method_settings->params->authProtocol)	{ print "<option value='$v' selected=selected>$v</option>"; }
    				else											{ print "<option value='$v'					 >$v</option>"; }
    			}
    			?>
    			</select>
    		</td>
    		<td class="base_dn info2">
    			<?php print _('Set timeout in seconds'); ?>
    		</td>
    	</tr>
    
    	<!-- timeout -->
    	<tr>
    		<td><?php print _('Timeout'); ?></td>
    		<td>
    			<select name="timeout" class="form-control input-sm input-w-auto">
    			<?php
    			$values = array(1,2,3,5,10);
    			foreach($values as $v) {
    				if($v==@$method_settings->params->timeout)	{ print "<option value='$v' selected=selected>$v</option>"; }
    				else										{ print "<option value='$v'					 >$v</option>"; }
    			}
    			?>
    			</select>
    		</td>
    		<td class="base_dn info2">
    			<?php print _('Set timeout in seconds'); ?>
    		</td>
    	</tr>
    
    	</table>
    	</form>
    
    	<?php
    	# check for socket support !
    	if(!in_array("sockets", get_loaded_extensions())) {
    		$Log->write( _("Radius login"), _("php Socket extension missing!"), 2 );
    		$Result->show("danger", _("php Socket extension missing!"), false);
    	}
    	# check for Composer errors
    	if($User->composer_has_errors (["dapphp/radius"])) {
    		print "<hr>";
    		print_r($Result->show("warning", $User->composer_err));
    	}
    	?>
    </div>
    
    
    <!-- footer -->
    <div class="pFooter">
    	<div class="btn-group">
    		<button class="btn btn-sm btn-default hidePopups"><?php print _('Cancel'); ?></button>
    		<button class='btn btn-sm btn-default submit_popup <?php if($_POST['action']=="delete") { print "btn-danger"; } else { print "btn-success"; } ?>' data-script="app/admin/authentication-methods/edit-result.php" data-result_div="editAuthMethodResult" data-form='editAuthMethod'>
    			<i class="fa <?php if($_POST['action']=="add") { print "fa-plus"; } else if ($_POST['action']=="delete") { print "fa-trash-o"; } else { print "fa-check"; } ?>"></i> <?php print escape_input(ucwords(_($_POST['action']))); ?>
    		</button>	</div>
    
    	<?php
    	# check for mathing users
    	if($_POST['action']=="delete") {
    		$users = $Admin->fetch_multiple_objects ("users", "authMethod", @$method_settings->id);
    		if($users!==false) {
    			$Result->show("warning", sizeof($users)._(" users have this method for logging in. They will be reset to local auth!"), false);
    		}
    	}
    	?>
    
    	<!-- Result -->
    	<div id="editAuthMethodResult"></div>
    </div>