Browse Source

Prepare ui for ldap

feature/ldap
Chocobozzz 8 years ago
parent
commit
12ae387298
  1. 7
      include/config.php
  2. 2
      include/connect.php
  3. 18
      include/functions.php
  4. 10
      include/grids.php
  5. 27
      include/html/grids.php
  6. 19
      index.php
  7. 30
      js/grids.js
  8. 6
      migration.php

7
include/config.php

@ -1,7 +1,14 @@
<?php <?php
// false -> SQL, true -> LDAP
$useLDAP = false;
$host = 'localhost'; $host = 'localhost';
// 389 if your want to use LDAP
$port = '3306'; $port = '3306';
// Unused with LDAP
$db = 'openvpn-admin'; $db = 'openvpn-admin';
$user = ''; $user = '';
$pass = ''; $pass = '';
?> ?>

2
include/connect.php

@ -1,5 +1,5 @@
<?php <?php
require(dirname(__FILE__) . "/config.php"); require_once(dirname(__FILE__) . "/config.php");
$options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO("mysql:host=$host;port=$port;dbname=$db", $user, $pass, $options); $bdd = new PDO("mysql:host=$host;port=$port;dbname=$db", $user, $pass, $options);

18
include/functions.php

@ -42,10 +42,12 @@
return password_verify($pass, $hash); return password_verify($pass, $hash);
} }
//login with LDAP function isUsingLDAP($useLDAP) {
return isset($useLDAP) && $useLDAP === true;
}
function loginLDAP($serverFQDN, $username, $password) function loginLDAP($serverFQDN, $username, $password)
{ {
//connect to LDAP server or AD server. Both work //connect to LDAP server or AD server. Both work
$ldap = ldap_connect($serverFQDN); $ldap = ldap_connect($serverFQDN);
//check if user exists if works return true if not return false //check if user exists if works return true if not return false
@ -59,12 +61,12 @@ function loginLDAP($serverFQDN, $username, $password)
//return false when login is NOK //return false when login is NOK
return false; return false;
} }
} }
//get all LDAP users and place them inside a database. //get all LDAP users and place them inside a database.
function getLDAPUsers() function getLDAPUsers()
{ {
} }
?> ?>

10
include/grids.php

@ -4,8 +4,8 @@
if(!isset($_SESSION['admin_id'])) if(!isset($_SESSION['admin_id']))
exit -1; exit -1;
require(dirname(__FILE__) . '/connect.php'); require_once(dirname(__FILE__) . '/connect.php');
require(dirname(__FILE__) . '/functions.php'); require_once(dirname(__FILE__) . '/functions.php');
// ---------------- SELECT ---------------- // ---------------- SELECT ----------------
@ -37,6 +37,12 @@
} }
} }
else if ($_GET['select'] == "user_ldap") {
// Fake data for now
echo json_encode([ [ "user_ldap_id" => "blabla", "user_ldap_online" => 1 ] ]);
}
// Select the logs // Select the logs
else if($_GET['select'] == "log" && isset($_GET['offset'], $_GET['limit'])){ else if($_GET['select'] == "log" && isset($_GET['offset'], $_GET['limit'])){
$offset = intval($_GET['offset']); $offset = intval($_GET['offset']);

27
include/html/grids.php

@ -1,5 +1,12 @@
<!-- Users grid --> <?php
<div class="block-grid row" id="user-grid"> // Use MySQL
// We allow the administrator to create user
// The user table is different too
if (isUsingLDAP($useLDAP) === false) {
?>
<!-- Users grid -->
<div class="block-grid row" id="user-grid">
<h4> <h4>
OpenVPN Users <button data-toggle="modal" data-target="#modal-user-add" type="button" class="btn btn-success btn-xs"><span class="glyphicon glyphicon-plus"></span></button> OpenVPN Users <button data-toggle="modal" data-target="#modal-user-add" type="button" class="btn btn-success btn-xs"><span class="glyphicon glyphicon-plus"></span></button>
</h4> </h4>
@ -29,7 +36,21 @@
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<?php
}
else {
?>
<!-- Users LDAP grid -->
<div class="block-grid row" id="user-ldap-grid">
<h4>
OpenVPN Users (LDAP)
</h4>
<table id="table-users-ldap" class="table"></table>
</div>
<?php
}
?>
<!-- Logs grid --> <!-- Logs grid -->
<div class="block-grid row" id="log-grid"> <div class="block-grid row" id="log-grid">

19
index.php

@ -1,8 +1,9 @@
<?php <?php
session_start(); session_start();
require(dirname(__FILE__) . '/include/functions.php'); require_once(dirname(__FILE__) . '/include/config.php');
require(dirname(__FILE__) . '/include/connect.php'); require_once(dirname(__FILE__) . '/include/connect.php');
require_once(dirname(__FILE__) . '/include/functions.php');
// Disconnecting ? // Disconnecting ?
if(isset($_GET['logout'])){ if(isset($_GET['logout'])){
@ -157,8 +158,8 @@
} }
// Print the installation form // Print the installation form
else { else {
require(dirname(__FILE__) . '/include/html/menu.php'); require_once(dirname(__FILE__) . '/include/html/menu.php');
require(dirname(__FILE__) . '/include/html/form/installation.php'); require_once(dirname(__FILE__) . '/include/html/form/installation.php');
} }
exit(-1); exit(-1);
@ -169,8 +170,8 @@
if(isset($error) && $error == true) if(isset($error) && $error == true)
printError('Login error'); printError('Login error');
require(dirname(__FILE__) . '/include/html/menu.php'); require_once(dirname(__FILE__) . '/include/html/menu.php');
require(dirname(__FILE__) . '/include/html/form/configuration.php'); require_once(dirname(__FILE__) . '/include/html/form/configuration.php');
} }
@ -179,8 +180,8 @@
if(isset($error) && $error == true) if(isset($error) && $error == true)
printError('Login error'); printError('Login error');
require(dirname(__FILE__) . '/include/html/menu.php'); require_once(dirname(__FILE__) . '/include/html/menu.php');
require(dirname(__FILE__) . '/include/html/form/login.php'); require_once(dirname(__FILE__) . '/include/html/form/login.php');
} }
// --------------- GRIDS --------------- // --------------- GRIDS ---------------
@ -200,7 +201,7 @@
</nav> </nav>
<?php <?php
require(dirname(__FILE__) . '/include/html/grids.php'); require_once(dirname(__FILE__) . '/include/html/grids.php');
} }
?> ?>
</body> </body>

30
js/grids.js

@ -19,8 +19,7 @@ $(function () {
// ------------------------- USERS definitions ------------------------- // ------------------------- USERS definitions -------------------------
var $userTable = $('#table-users'); var $userTable = $('#table-users');
var $modalUserAdd = $('#modal-user-add'); var $userLDAPTable = $('#table-users-ldap');
var $userAddSave = $modalUserAdd.find('#modal-user-add-save');
function addUser(username, password) { function addUser(username, password) {
$.ajax({ $.ajax({
@ -53,6 +52,10 @@ $(function () {
}); });
} }
if ($userTable.length !== 0) {
var $modalUserAdd = $('#modal-user-add');
var $userAddSave = $modalUserAdd.find('#modal-user-add-save');
var userEditable = { var userEditable = {
url: gridsUrl, url: gridsUrl,
params: function (params) { params: function (params) {
@ -71,7 +74,7 @@ $(function () {
} else { } else {
console.warn('Your browser does not support Object.assign. You will not be able to modify the date inputs.'); console.warn('Your browser does not support Object.assign. You will not be able to modify the date inputs.');
} }
}
// ------------------------- ADMIN definitions ------------------------- // ------------------------- ADMIN definitions -------------------------
var $adminTable = $('#table-admins'); var $adminTable = $('#table-admins');
@ -121,13 +124,15 @@ $(function () {
} }
} }
// ------------------------- ADMIN definitions ------------------------- // ------------------------- LOGS definitions -------------------------
var $logTable = $('#table-logs'); var $logTable = $('#table-logs');
// -------------------- USERS -------------------- // -------------------- USERS --------------------
// Bootstrap table definition // Bootstrap table definition
if ($userTable.length !== 0) {
$userTable.bootstrapTable({ $userTable.bootstrapTable({
url: gridsUrl, url: gridsUrl,
sortable: false, sortable: false,
@ -168,6 +173,23 @@ $(function () {
addUser($usernameInput.val(), $passwordInput.val()); addUser($usernameInput.val(), $passwordInput.val());
$modalUserAdd.modal('hide'); $modalUserAdd.modal('hide');
}); });
}
else {
$userLDAPTable.bootstrapTable({
url: gridsUrl,
sortable: false,
queryParams: function (params) {
params.select = 'user_ldap';
return params;
},
// Primary key
idField: 'user_ldap_id',
columns: [
{ title: "ID", field: "user_ldap_id"},
{ title: "Online", field: "user_ldap_online" },
]
});
}
// -------------------- ADMINS -------------------- // -------------------- ADMINS --------------------

6
migration.php

@ -7,9 +7,9 @@
$www = $argv[1]; $www = $argv[1];
require("$www/include/config.php"); require_once("$www/include/config.php");
require("$www/include/connect.php"); require_once("$www/include/connect.php");
require("$www/include/functions.php"); require_once("$www/include/functions.php");
$migrations = getMigrationSchemas(); $migrations = getMigrationSchemas();

Loading…
Cancel
Save