#!/usr/bin/php
<?php
(file_exists("/usr/share/mcms/user_management_functions.php")) or die("Unable to open /usr/share/mcms/user_management_functions.php");
(include("/usr/share/mcms/user_management_functions.php")) or die("Unable to open /usr/share/mcms/user_management_functions.php");
global $remove;

function usage() {
  global $argv;
  echo "Usage: $argv[0] [options] LOGIN\n";
  echo "  -r, --remove                  remove home directory\n";
  echo "  -q, --quiet                   do not print summary of user removal\n";
  echo "  -h, --help                    print this help message\n";
  exit(254);
}

function parseargs($argc, $argv){
  global $gecos, $uid, $gid, $groups, $homedir, $shell, $password, $forcepwchange, $quiet, $comment, $login, $randpass, $verbose, $remove;
  if($argc<2 || in_array($argv[1],array('--help','-h','-help','-?'))) usage();
  $shortopts="rqv";
  $longopts=array("remove", "quiet", "verbose");
  $options=getopt($shortopts, $longopts);
  $login=$argv[$argc-1];

  if (isset($options['r']) || isset($options['remove']) ) {
    $remove=true;
  } else {
    $remove=false;
  }

  if (isset($options['q']) || isset($options['quiet']) ) {
    $quiet=true;
  } else {
    $quiet=false;
  }
}  //end parseargs

//execution starts here
init();
parseargs($argc,$argv);

$logincheck=popen("getent passwd $login","r");
$loginfound=trim(fgets($logincheck,4096));
if($loginfound=="") {
  echo "User $login does not exist\n";
  usage();
}
pclose($logincheck);
$homecheck=popen("getent passwd $login | awk 'BEGIN{FS=\":\"}{print $6}'","r");
$homedir=trim(fgets($homecheck,4096));
pclose($homecheck);
if($remove && $homedir=="") {
  echo "Home directory not specified for user but remove option was specified.\n";
  echo "Skipping homedir removal\n";
  $remove=false;
}

ldap_del_user($login);
$allgroups=ldap_get_groups();
foreach($allgroups as $group) {
  ldap_group_del_member($group['name'],$login);
}
flush_ldap_client($login,"");
if($remove==true) {
  system("rm -rf $homedir");
}
if(!$quiet) {
  echo "Deleted user $login\n";
}
?>
