|
|
- <?
- session_start();
- $response=array();
- if (isset($_POST['username'])) {
- $_SESSION['username']=$_POST['username'];
- $_SESSION['password']=$_POST['password'];
- }
-
- if (!isset($_SESSION['username'])) {
- $response['error']='Credenziali non valide';
- echo json_encode($response);
- exit;
- }
- if (isset($_GET['logout'])){
- session_destroy();
- $response['info']='Logout effettuato';
- $response['loggedin']=False;
- echo json_encode($response);
- exit;
- }
- include 'config.php';
- include 'lilikuser.php';
-
- $u=new LilikUser($_SESSION['username']);
-
- #bind ldap or exit
- $loggedin=$u->check_password($_SESSION['password']);
- $response['loggedin']=$loggedin;
- if (!$loggedin){
- $response['error']='Credenziali non valide';
- echo json_encode($response);
- exit;
- }
-
- $admin=$u->is_admin();
- $response['admin']=$admin;
- $user=$_SESSION['username'];
- if (isset($_GET['user']) and $_GET['user']!=$_SESSION['username']){
- if ($admin){
- $user=$_GET['user'];
- }else{
- $response['error']='Permessi non sufficienti per visualizzare l\'utente';
- echo json_encode($response);
- exit;
- }
- }
-
- if (isset($_POST['new_user'])){
- if($admin){
- $u3=new LilikUser($user);
- $u3->create($_POST['new_name'],$_POST['new_surname'],$_POST['new_passwd']);
- $response['success']='Utente creato <a href="/users/'.$user.'/">vai alla pagina</a>';
- echo json_encode($response);
- exit;
- }else{
- $response['error']='Permessi non sufficienti per creare l\'utente';
- }
- }
-
- $u2=new LilikUser($user);
- if (!$u2->exist()){
- $response['error']='Utente inesistente';
- $response['exist']=false;
- echo json_encode($response);
- exit;
- }
- $response['avaible_services']=$u2->get_services();
-
- if (isset($_POST['new_password'])) {
- if(!$admin and !$u2->check_password($_POST['old_password'])){
- $response['error']='Password errata';
- }else{
- if ($_POST['new_password']==$_POST['new_password2'] and $_POST['new_password']!=''){
- $u2->set_attr('userPassword', $_POST['new_password']);
- $response['edit']=True;
- if ($user==$_SESSION['username']){
- $_SESSION['password']=$_POST['new_password'];
- }
- }else{
- $response['error']='La password non coincide';
- }
- }
- }
-
- if (isset($_POST['services'])) {
- if($admin){
- $response['edit']=True;
- $actual=$u2->get_enabled_services();
- $to_disable=array_diff($actual, $_POST['services']);
- $to_enable=array_diff($_POST['services'], $actual);
- foreach (["enable"=>$to_enable, "disable"=>$to_disable] as $function=>$services){
- foreach ($services as $service){
- try {
- $u2->$function($service);
- } catch (Exception $e) {
- if ($e->getMessage()=="Service not found"){
- $response['error']="Servizio sconosciuto: $service";
- }else{
- throw $e;
- }
- }
- }
- }
- }else{
- $response['error']='Permessi non sufficienti';
- }
- }
-
-
- if (isset($_POST['cn'])) {
- if($admin){
- $response['edit']=True;
- if ($u2->get_attr('cn')!=$_POST['cn']){
- $u2->set_attr('cn', $_POST['cn']);
-
- }
- }else{
- $response['error']='Permessi non sufficienti';
- }
- }
-
- if ($response['edit']==True and !isset($response['error'])){
- $response['success']='Salvataggio effettuato';
- }
-
- $response['services']=$u2->get_enabled_services();
- $response['username']=$user;
- $response['cn']=$u2->get_attr('cn');
-
- echo json_encode($response);
-
- ?>
|