mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-12-20 23:43:49 +01:00
LScli :: add remove command
This commit is contained in:
parent
ddd6b265e3
commit
53b15e89f8
1 changed files with 70 additions and 0 deletions
|
@ -1996,6 +1996,69 @@ class LSldapObject {
|
||||||
echo implode("\n$prefix - ", $values);
|
echo implode("\n$prefix - ", $values);
|
||||||
echo "\n";
|
echo "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* CLI remove command
|
||||||
|
*
|
||||||
|
* @param[in] $command_args array Command arguments :
|
||||||
|
* - Positional arguments :
|
||||||
|
* - LSobject type
|
||||||
|
* - object DN
|
||||||
|
* - Optional arguments :
|
||||||
|
* - -N|--no-confirm : Do not ask for confirmation
|
||||||
|
*
|
||||||
|
* @retval boolean True on succes, false otherwise
|
||||||
|
**/
|
||||||
|
public static function cli_remove($command_args) {
|
||||||
|
$objType = null;
|
||||||
|
$dn = null;
|
||||||
|
$confirm = true;
|
||||||
|
foreach ($command_args as $arg) {
|
||||||
|
if ($arg == '-N' || $arg == '--no-confirm')
|
||||||
|
$confirm = false;
|
||||||
|
elseif (is_null($objType)) {
|
||||||
|
$objType = $arg;
|
||||||
|
}
|
||||||
|
elseif (is_null($dn)) {
|
||||||
|
$dn = $arg;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
LScli :: usage("Invalid $arg parameter.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_null($objType) || is_null($dn))
|
||||||
|
LScli :: usage('You must provide LSobject type and DN.');
|
||||||
|
|
||||||
|
if (!LSsession :: loadLSobject($objType))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
$obj = new $objType();
|
||||||
|
if (!$obj->loadData($dn)) {
|
||||||
|
LSlog :: fatal("Fail to load object $dn data from LDAP");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($confirm) {
|
||||||
|
echo $obj -> _cli_show($raw_values);
|
||||||
|
// Sure ?
|
||||||
|
echo "\nAre you sure you want to delete this object ? Type 'yes' to continue: ";
|
||||||
|
$handle = fopen ("php://stdin","r");
|
||||||
|
$line = fgets($handle);
|
||||||
|
if(trim($line) != 'yes'){
|
||||||
|
echo "User cancel\n";
|
||||||
|
return True;
|
||||||
|
}
|
||||||
|
echo "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($obj -> remove()) {
|
||||||
|
LSlog :: info("Object ".$obj->getDn()." removed.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
LSlog :: error("Fail to remove object ".$obj->getDn().".");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2127,3 +2190,10 @@ LScli :: add_command(
|
||||||
'Show an LSobject',
|
'Show an LSobject',
|
||||||
'[object type] [dn] [-r|--raw-values]'
|
'[object type] [dn] [-r|--raw-values]'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
LScli :: add_command(
|
||||||
|
'remove',
|
||||||
|
array('LSldapObject', 'cli_remove'),
|
||||||
|
'Remove an LSobject',
|
||||||
|
'[object type] [dn] [-N|--no-confirm]'
|
||||||
|
);
|
||||||
|
|
Loading…
Reference in a new issue