summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 59ecbea)
raw | patch | inline | side by side (parent: 59ecbea)
author | zeph <zeph@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Sat, 22 Mar 2008 17:34:38 +0000 (17:34 +0000) | ||
committer | zeph <zeph@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Sat, 22 Mar 2008 17:34:38 +0000 (17:34 +0000) |
git-svn-id: https://oss.gonicus.de/repositories/gosa/branches/2.5-plugins@9957 594d385d-05f5-0310-b6e9-bd551577e9d8
sudo-ldap/schema/sudo.schema | patch | blob | history | |
sudo-ldap/src/class_sudoLdap.inc | [new file with mode: 0644] | patch | blob |
sudo-ldap/src/main.inc | [new file with mode: 0644] | patch | blob |
index 8117ec6245c5c76c331eb2f4d0a818585db7775c..d82761b5f9337c1a3ddbabce75ff63613b6d6110 100644 (file)
- #
- # schema file for sudo
- #
+#
+# schema file for sudo
+#
attributetype ( 1.3.6.1.4.1.15953.9.1.1
NAME 'sudoUser'
diff --git a/sudo-ldap/src/class_sudoLdap.inc b/sudo-ldap/src/class_sudoLdap.inc
--- /dev/null
@@ -0,0 +1,60 @@
+<?php
+/*!
+ \brief sudoLdap plugin
+ \author Guido Serra <gserra@guidoserra.it>
+ \version 1.00
+ \date 22.03.2008
+
+ This class provides the functionality to read and write all attributes
+ relevant for sudo-ldap from/to the LDAP.
+ */
+
+class sudoLdap extends plugin
+{
+ /* Definitions */
+ var $plHeadline= "sudo-ldap";
+ var $plDescription= "This does something";
+
+ /* Plugin specific values */
+
+ var $attributes = array("sudoUser", "sudoHost", "sudoCommand", "sudoRunAs", "sudoOption");
+ var $objectclasses = array("sudoRole");
+
+ var $uid ="";
+
+ /* constructor, if 'dn' is set, the node loads the given
+ 'dn' from LDAP */
+ function sudoLdap ($config, $dn= NULL, $parent= NULL)
+ {
+ /* Configuration is fine, allways */
+ $this->config= $config;
+
+ /* Load bases attributes */
+ plugin::plugin($config, $dn, $parent);
+
+ /* set user id */
+ if(isset($this->attrs['uid'])){
+ $this->uid = $this->attrs['uid'][0];
+ }
+
+ $ldap= $this->config->get_ldap_link();
+
+ }
+
+
+ /* execute generates the html output for this node */
+ function execute($isCopyPaste = false)
+ {
+ /* Call parent execute */
+ plugin::execute();
+ $display= "";
+
+ $display = "execute()";
+
+ return($display);
+ }
+
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/sudo-ldap/src/main.inc b/sudo-ldap/src/main.inc
--- /dev/null
+++ b/sudo-ldap/src/main.inc
@@ -0,0 +1,111 @@
+<?php
+/*
+ This code is part of GOsa (https://gosa.gonicus.de)
+ Copyright (C) 2008 Guido Serra <gserra@guidoserra.it>
+
+ 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
+ */
+
+/* Clear display */
+$display= "";
+
+if (!$remove_lock){
+
+ /* Reset requested? */
+ if (isset($_POST['edit_cancel']) ||
+ (isset($_GET['reset']) && $_GET['reset'] == 1)){
+
+ del_lock ($ui->dn);
+ sess_del ('edit');
+ sess_del ('sudoLdap');
+ }
+
+ /* Create sudoLdap object on demand */
+ if (!isset($_SESSION['sudoLdap']) || (isset($_GET['reset']) && $_GET['reset'] == 1)){
+ $_SESSION['sudoLdap']= new sudoLdap ($config, $ui->dn);
+ }
+ $sudoLdap= $_SESSION['sudoLdap'];
+
+ /* save changes back to object */
+ if (isset ($_SESSION['edit'])){
+ $sudoLdap->save_object ();
+ }
+
+ /* Enter edit mode? */
+ if ((isset($_POST['edit'])) && (!isset( $_SESSION['edit']))){
+
+ /* Check locking */
+ if (($username= get_lock($ui->dn)) != ""){
+ $_SESSION['back_plugin']= $plug;
+ gen_locked_message ($username, $ui->dn);
+ exit ();
+ }
+
+ /* Lock the current entry */
+ add_lock ($ui->dn, $ui->dn);
+ $_SESSION['dn']= $ui->dn;
+ $_SESSION['edit']= TRUE;
+ }
+
+ /* Adjust acl's to mode */
+ if (isset($_SESSION['edit'])){
+ $acl= get_permissions ($ui->dn, $ui->subtreeACL);
+ $sudoLdap->acl= get_module_permission($acl, "sudoLdap", $ui->dn);
+ } else {
+ $acl= get_permissions ($ui->dn, $ui->subtreeACL);
+ $editacl= get_module_permission($acl, "sudoLdap", $ui->dn);
+ $sudoLdap->acl= "#none#";
+ }
+
+ /* save changes to LDAP and disable edit mode */
+ $info= "";
+ if (isset($_POST['edit_finish'])){
+
+ /* Perform checks */
+ $message= $sudoLdap->check ();
+
+ /* No errors, save object */
+ if (count ($message) == 0){
+ $sudoLdap->save ();
+ gosa_log ("SUDO/ldap object'".$ui->dn."' has been saved");
+ $sudoLdap->acl= "#none#";
+ $editacl= get_module_permission($acl, "sudoLdap", $ui->dn);
+ del_lock ($ui->dn);
+ sess_del ('edit');
+
+ /* Remove from session */
+ sess_del ('sudoLdap');
+ } else {
+ /* Errors found, show message */
+ show_errors ($message);
+ }
+ }
+
+ /* Execute formular */
+ $display.= $sudoLdap->execute ();
+
+ /* Store changes in session */
+ if (isset ($_SESSION['edit'])){
+ $_SESSION['sudoLdap']= $sudoLdap;
+ }
+
+ /* Page header*/
+ $display= print_header(get_template_path('images/posix.png'),
+ _("sudo-ldap"), $info).$display;
+
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>