2013-10-09 20:47:43 +02:00
< ? php
/*
2014-01-21 19:00:26 +01:00
Copyright ( C ) 2013 - 2014 Grégory Soutadé
2013-10-09 20:47:43 +02:00
This file is part of gPass .
gPass is free software : you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation , either version 3 of the License , or
( at your option ) any later version .
gPass is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU General Public License for more details .
You should have received a copy of the GNU General Public License
along with gPass . If not , see < http :// www . gnu . org / licenses />.
*/
include ( 'functions.php' );
2014-01-21 19:00:26 +01:00
include ( 'conf.php' );
2013-10-09 20:47:43 +02:00
session_start ();
2013-10-23 19:39:47 +02:00
$user = " " ;
2013-10-09 20:47:43 +02:00
2013-10-23 19:39:47 +02:00
if ( $ADMIN_MODE && isset ( $_POST [ 'create_user' ]))
{
if ( create_user ( $_POST [ 'user' ]))
$user = $_POST [ 'user' ];
}
else
{
if ( isset ( $_POST [ 'get_passwords' ]) && isset ( $_POST [ 'user' ]))
return list_entries ( $_POST [ 'user' ]);
2013-10-22 18:33:44 +02:00
2013-10-23 19:39:47 +02:00
if ( isset ( $_POST [ 'add_entry' ]) && isset ( $_POST [ 'user' ]) &&
isset ( $_POST [ 'login' ]) && isset ( $_POST [ 'password' ]))
return add_entry ( $_POST [ 'user' ], $_POST [ 'login' ], $_POST [ 'password' ]);
2013-10-22 18:33:44 +02:00
2013-10-23 19:39:47 +02:00
if ( isset ( $_POST [ 'delete_entry' ]) && isset ( $_POST [ 'user' ]) &&
isset ( $_POST [ 'login' ]))
return delete_entry ( $_POST [ 'user' ], $_POST [ 'login' ]);
}
2013-10-19 16:34:12 +02:00
2013-10-09 20:47:43 +02:00
?>
<! DOCTYPE html >
< html >
2013-10-19 16:34:12 +02:00
< head >
< meta http - equiv = " Content-Type " content = " text/html;charset=utf-8 " >
2014-06-10 20:40:53 +02:00
< link rel = " icon " type = " image/png " href = " ressources/favicon.png " />
< link rel = " stylesheet " type = " text/css " href = " ressources/gpass.css " />
2014-01-21 19:00:26 +01:00
< script language = " javascript " >
< ? php
echo " pkdbf2_level= $PKDBF2_LEVEL ; \n " ;
?>
</ script >
2013-10-19 16:34:12 +02:00
< script src = " ressources/jsaes.js " ></ script >
< script src = " ressources/jssha256.js " ></ script >
< script src = " ressources/hmac.js " ></ script >
< script src = " ressources/pkdbf2.js " ></ script >
< script src = " ressources/gpass.js " ></ script >
2014-02-01 10:50:23 +01:00
< script src = " ressources/pwdmeter.js " ></ script >
2013-10-19 16:34:12 +02:00
< title > gPass : global Password </ title >
</ head >
< body onload = " start(); " >
< div id = " logo " >
< a href = " http://indefero.soutade.fr/p/gpass " >< img src = " ressources/gpass.png " alt = " logo " /></ a >
</ div >
2013-10-09 20:47:43 +02:00
2013-10-16 18:40:06 +02:00
< div id = " admin " < ? php if ( ! $ADMIN_MODE ) echo " style= \" display:none \" " ; ?> >
2013-10-19 16:34:12 +02:00
< form method = " post " >
< input type = " text " name = " user " /> < input type = " submit " name = " create_user " value = " Create user " onclick = " return confirm('Are you sure want to create this user ?'); " />
</ form >
</ div >
2013-10-09 20:47:43 +02:00
< div id = " user " >
< ? php
2013-10-23 19:39:47 +02:00
global $user ;
2013-10-09 20:47:43 +02:00
$users = scandir ( " ./users/ " );
$count = 0 ;
foreach ( $users as $u )
{
if ( is_dir ( " ./users/ " . $u ) && $u [ 0 ] != '_' && $u [ 0 ] != '.' )
$count ++ ;
}
if ( $count == 0 )
2013-10-12 11:20:54 +02:00
echo " <b>No user found</b><br/> \n " ;
2013-10-09 20:47:43 +02:00
else
{
2014-04-02 07:47:54 +02:00
echo " <b>User</b> <select id= \" selected_user \" name= \" user \" onchange= \" document.getElementById('master_key').value = '';update_master_key(false); \" > " . " \n " ;
2013-10-09 20:47:43 +02:00
foreach ( $users as $u )
{
if ( is_dir ( " ./users/ " . $u ) && $u [ 0 ] != '_' && $u [ 0 ] != '.' )
{
if ( $user == " " ) $user = $u ;
if ( $user == $u )
echo " <option value= \" $u\ " selected = \ " 1 \" /> $u </option> " ;
else
echo " <option value= \" $u\ " /> $u </ option > " ;
}
}
2013-10-12 11:20:54 +02:00
echo " </select> \n " ;
2014-02-19 17:34:51 +01:00
echo ' <b>Master key </b> <input id="master_key" type="password" onkeypress="if (event.keyCode == 13) update_master_key(true);"/>' ;
echo " <input type= \" button \" value= \" See \" onclick= \" update_master_key(true); \" /> " . " \n " ;
2013-10-09 20:47:43 +02:00
2013-10-23 19:39:47 +02:00
if ( ! isset ( $_SERVER [ 'HTTPS' ]))
2013-10-19 16:34:12 +02:00
echo " <div id= \" addon_address \" >Current addon address is : http:// " . $_SERVER [ 'SERVER_NAME' ] . " / " . $user . " </div> \n " ;
else
echo " <div id= \" addon_address \" >Current addon address is : https:// " . $_SERVER [ 'SERVER_NAME' ] . " / " . $user . " </div> \n " ;
2013-10-09 20:47:43 +02:00
}
?>
2013-10-19 16:34:12 +02:00
< div id = " passwords " >
2013-10-09 20:47:43 +02:00
</ div >
< div id = " add_new_password " >
< ? php
global $user ;
if ( $user != " " )
{
2013-10-12 11:20:54 +02:00
echo " <b>Add a new password</b><br/> \n " ;
2013-10-09 20:47:43 +02:00
2013-10-22 18:33:44 +02:00
echo 'URL <input type="text" name="url"/>' ;
2013-10-09 20:47:43 +02:00
echo 'login <input type="text" name="login" />' ;
2013-10-22 18:33:44 +02:00
echo 'password <input id="new_password" type="text" name="password"/>' ;
2014-02-17 08:00:28 +01:00
echo 'master key <input type="text" name="mkey" onkeypress="if (event.keyCode == 13) add_password();" onkeyup="chkPass(this.value);"/>' ;
2013-10-09 20:47:43 +02:00
echo '<input type="button" value="Generate password" onClick="generate_password();"/>' ;
2013-10-22 18:33:44 +02:00
echo " <input type= \" button \" name= \" add \" value= \" Add \" onclick= \" add_password(); \" /> " ;
2014-02-01 10:50:23 +01:00
echo " <br /> " ;
echo '<div><a href="http://en.wikipedia.org/wiki/Password_strength">Master key strength</a><div id="scorebarBorder"><div id="score">0%</div><div id="scorebar"> </div></div></div>' ;
2013-10-09 20:47:43 +02:00
}
?>
</ div >
</ div >
</ body >
2013-10-19 16:34:12 +02:00
</ html >