LAM tools

This commit is contained in:
Roland Gruber 2009-10-30 18:36:41 +00:00
parent 542a0c0e9e
commit 5a217af530
7 changed files with 747 additions and 0 deletions

123
lam/lib/tools.inc Normal file
View File

@ -0,0 +1,123 @@
<?php
/*
$Id$
This code is part of LDAP Account Manager (http://www.sourceforge.net/projects/lam)
Copyright (C) 2009 Roland Gruber
This program 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 2 of the License, or
(at your option) any later version.
This program 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 this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/**
* This file includes functions to manage LAM tools.
*
* @package tools
* @author Roland Gruber
*/
/**
* Returns the tools which are available for LAM.
*
* @return array list of LAMtool classes
*/
function getTools() {
$toolsDirName = dirname(__FILE__) . '/tools';
$toolsDir = dir($toolsDirName);
$entry = $toolsDir->read();
// include all files in the tools directory
while ($entry) {
if ((substr($entry, strlen($entry) - 4, 4) == '.inc') && is_file($toolsDirName . '/'.$entry)) {
include_once($toolsDirName . '/'.$entry);
}
$entry = $toolsDir->read();
}
// find tools classes
$classList = get_declared_classes();
$return = array();
for ($i = 0; $i < sizeof($classList); $i++) {
if (in_array('LAMTool', class_implements($classList[$i]))) {
$return[] = $classList[$i];
}
}
return $return;
}
/**
* Represents a tool.
* LAM will scan lib/tools/*.inc for classes which implement this interface. There will be an
* entry on the tools page inside LAM for each found class (if it matches the security level).
* A LAMTool only specifies name, description and location of a tool. The tool functionality
* is provided by the target page.
*
* @author Roland Gruber
* @package tools
*/
interface LAMTool {
/**
* Returns the name of the tool.
*
* @return string name
*/
function getName();
/**
* returns a description text for the tool.
*
* @return string description
*/
function getDescription();
/**
* Returns a link to the tool page (relative to templates/).
*
* @return string link
*/
function getLink();
/**
* Returns if the tool requires write access to LDAP.
*
* @return boolean true if write access is needed
*/
function getRequiresWriteAccess();
/**
* Returns if the tool requires password change rights.
*
* @return boolean true if password change rights are needed
*/
function getRequiresPasswordChangeRights();
/**
* Returns the link to the tool image (relative to graphics/)
*
* @return string image URL
*/
function getImageLink();
/**
* Returns the prefered position of this tool on the tools page.
* The position may be between 0 and 1000. 0 is the top position.
*
* @return int prefered position
*/
function getPosition();
}
?>

View File

@ -0,0 +1,104 @@
<?php
/*
$Id$
This code is part of LDAP Account Manager (http://www.sourceforge.net/projects/lam)
Copyright (C) 2009 Roland Gruber
This program 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 2 of the License, or
(at your option) any later version.
This program 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 this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/**
* This file includes the file upload tool specification.
*
* @author Roland Gruber
* @package tools
*/
/**
* File upload
*
* @package tools
*/
class toolFileUpload implements LAMTool {
/**
* Returns the name of the tool.
*
* @return string name
*/
function getName() {
return _("File upload");
}
/**
* returns a description text for the tool.
*
* @return string description
*/
function getDescription() {
return _("Creates accounts by uploading a CSV formated file.");
}
/**
* Returns a link to the tool page (relative to templates/).
*
* @return string link
*/
function getLink() {
return "masscreate.php";
}
/**
* Returns if the tool requires write access to LDAP.
*
* @return boolean true if write access is needed
*/
function getRequiresWriteAccess() {
return true;
}
/**
* Returns if the tool requires password change rights.
*
* @return boolean true if password change rights are needed
*/
function getRequiresPasswordChangeRights() {
return true;
}
/**
* Returns the link to the tool image (relative to graphics/)
*
* @return string image URL
*/
function getImageLink() {
return 'up.gif';
}
/**
* Returns the prefered position of this tool on the tools page.
* The position may be between 0 and 1000. 0 is the top position.
*
* @return int prefered position
*/
function getPosition() {
return 200;
}
}
?>

104
lam/lib/tools/ouEditor.inc Normal file
View File

@ -0,0 +1,104 @@
<?php
/*
$Id$
This code is part of LDAP Account Manager (http://www.sourceforge.net/projects/lam)
Copyright (C) 2009 Roland Gruber
This program 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 2 of the License, or
(at your option) any later version.
This program 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 this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/**
* This file includes the OU editor tool specification.
*
* @author Roland Gruber
* @package tools
*/
/**
* OU editor
*
* @package tools
*/
class toolOUEditor implements LAMTool {
/**
* Returns the name of the tool.
*
* @return string name
*/
function getName() {
return _("OU editor");
}
/**
* returns a description text for the tool.
*
* @return string description
*/
function getDescription() {
return _("Manages OU objects in your LDAP tree.");
}
/**
* Returns a link to the tool page (relative to templates/).
*
* @return string link
*/
function getLink() {
return "ou_edit.php";
}
/**
* Returns if the tool requires write access to LDAP.
*
* @return boolean true if write access is needed
*/
function getRequiresWriteAccess() {
return true;
}
/**
* Returns if the tool requires password change rights.
*
* @return boolean true if password change rights are needed
*/
function getRequiresPasswordChangeRights() {
return true;
}
/**
* Returns the link to the tool image (relative to graphics/)
*
* @return string image URL
*/
function getImageLink() {
return 'ou.png';
}
/**
* Returns the prefered position of this tool on the tools page.
* The position may be between 0 and 1000. 0 is the top position.
*
* @return int prefered position
*/
function getPosition() {
return 300;
}
}
?>

104
lam/lib/tools/pdfEdit.inc Normal file
View File

@ -0,0 +1,104 @@
<?php
/*
$Id$
This code is part of LDAP Account Manager (http://www.sourceforge.net/projects/lam)
Copyright (C) 2009 Roland Gruber
This program 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 2 of the License, or
(at your option) any later version.
This program 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 this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/**
* This file includes the PDF editor tool specification.
*
* @author Roland Gruber
* @package tools
*/
/**
* PDF editor
*
* @package tools
*/
class toolPDFEditor implements LAMTool {
/**
* Returns the name of the tool.
*
* @return string name
*/
function getName() {
return _("PDF editor");
}
/**
* returns a description text for the tool.
*
* @return string description
*/
function getDescription() {
return _("This tool allows you to customize the PDF pages.");
}
/**
* Returns a link to the tool page (relative to templates/).
*
* @return string link
*/
function getLink() {
return "pdfedit/pdfmain.php";
}
/**
* Returns if the tool requires write access to LDAP.
*
* @return boolean true if write access is needed
*/
function getRequiresWriteAccess() {
return true;
}
/**
* Returns if the tool requires password change rights.
*
* @return boolean true if password change rights are needed
*/
function getRequiresPasswordChangeRights() {
return true;
}
/**
* Returns the link to the tool image (relative to graphics/)
*
* @return string image URL
*/
function getImageLink() {
return 'pdf.png';
}
/**
* Returns the prefered position of this tool on the tools page.
* The position may be between 0 and 1000. 0 is the top position.
*
* @return int prefered position
*/
function getPosition() {
return 400;
}
}
?>

View File

@ -0,0 +1,104 @@
<?php
/*
$Id$
This code is part of LDAP Account Manager (http://www.sourceforge.net/projects/lam)
Copyright (C) 2009 Roland Gruber
This program 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 2 of the License, or
(at your option) any later version.
This program 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 this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/**
* This file includes the profile editor tool specification.
*
* @author Roland Gruber
* @package tools
*/
/**
* Profile editor
*
* @package tools
*/
class toolProfileEditor implements LAMTool {
/**
* Returns the name of the tool.
*
* @return string name
*/
function getName() {
return _("Profile editor");
}
/**
* returns a description text for the tool.
*
* @return string description
*/
function getDescription() {
return _("Here you can manage your account profiles.");
}
/**
* Returns a link to the tool page (relative to templates/).
*
* @return string link
*/
function getLink() {
return "profedit/profilemain.php";
}
/**
* Returns if the tool requires write access to LDAP.
*
* @return boolean true if write access is needed
*/
function getRequiresWriteAccess() {
return true;
}
/**
* Returns if the tool requires password change rights.
*
* @return boolean true if password change rights are needed
*/
function getRequiresPasswordChangeRights() {
return true;
}
/**
* Returns the link to the tool image (relative to graphics/)
*
* @return string image URL
*/
function getImageLink() {
return 'edit.png';
}
/**
* Returns the prefered position of this tool on the tools page.
* The position may be between 0 and 1000. 0 is the top position.
*
* @return int prefered position
*/
function getPosition() {
return 100;
}
}
?>

View File

@ -0,0 +1,104 @@
<?php
/*
$Id$
This code is part of LDAP Account Manager (http://www.sourceforge.net/projects/lam)
Copyright (C) 2009 Roland Gruber
This program 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 2 of the License, or
(at your option) any later version.
This program 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 this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/**
* This file includes the schema browser tool specification.
*
* @author Roland Gruber
* @package tools
*/
/**
* Schema browser
*
* @package tools
*/
class toolSchemaBrowser implements LAMTool {
/**
* Returns the name of the tool.
*
* @return string name
*/
function getName() {
return _("Schema browser");
}
/**
* returns a description text for the tool.
*
* @return string description
*/
function getDescription() {
return _("Here you can browse LDAP object classes and attributes.");
}
/**
* Returns a link to the tool page (relative to templates/).
*
* @return string link
*/
function getLink() {
return "schema/schema.php";
}
/**
* Returns if the tool requires write access to LDAP.
*
* @return boolean true if write access is needed
*/
function getRequiresWriteAccess() {
return false;
}
/**
* Returns if the tool requires password change rights.
*
* @return boolean true if password change rights are needed
*/
function getRequiresPasswordChangeRights() {
return false;
}
/**
* Returns the link to the tool image (relative to graphics/)
*
* @return string image URL
*/
function getImageLink() {
return 'schemaBrowser.png';
}
/**
* Returns the prefered position of this tool on the tools page.
* The position may be between 0 and 1000. 0 is the top position.
*
* @return int prefered position
*/
function getPosition() {
return 500;
}
}
?>

104
lam/lib/tools/tests.inc Normal file
View File

@ -0,0 +1,104 @@
<?php
/*
$Id$
This code is part of LDAP Account Manager (http://www.sourceforge.net/projects/lam)
Copyright (C) 2009 Roland Gruber
This program 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 2 of the License, or
(at your option) any later version.
This program 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 this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/**
* This file includes the test tool specification.
*
* @author Roland Gruber
* @package tools
*/
/**
* Tests page
*
* @package tools
*/
class toolTests implements LAMTool {
/**
* Returns the name of the tool.
*
* @return string name
*/
function getName() {
return _("Tests");
}
/**
* returns a description text for the tool.
*
* @return string description
*/
function getDescription() {
return _("Here you can test if certain LAM features work on your installation.");
}
/**
* Returns a link to the tool page (relative to templates/).
*
* @return string link
*/
function getLink() {
return "tests/index.php";
}
/**
* Returns if the tool requires write access to LDAP.
*
* @return boolean true if write access is needed
*/
function getRequiresWriteAccess() {
return true;
}
/**
* Returns if the tool requires password change rights.
*
* @return boolean true if password change rights are needed
*/
function getRequiresPasswordChangeRights() {
return true;
}
/**
* Returns the link to the tool image (relative to graphics/)
*
* @return string image URL
*/
function getImageLink() {
return 'tests.png';
}
/**
* Returns the prefered position of this tool on the tools page.
* The position may be between 0 and 1000. 0 is the top position.
*
* @return int prefered position
*/
function getPosition() {
return 600;
}
}
?>