summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 8c5fcc2)
raw | patch | inline | side by side (parent: 8c5fcc2)
author | cajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Thu, 1 Oct 2009 12:01:59 +0000 (12:01 +0000) | ||
committer | cajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Thu, 1 Oct 2009 12:01:59 +0000 (12:01 +0000) |
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@14436 594d385d-05f5-0310-b6e9-bd551577e9d8
gosa-core/plugins/admin/departments/class_domain.inc | [new file with mode: 0644] | patch | blob |
gosa-core/plugins/admin/departments/domain.tpl | [new file with mode: 0644] | patch | blob |
diff --git a/gosa-core/plugins/admin/departments/class_domain.inc b/gosa-core/plugins/admin/departments/class_domain.inc
--- /dev/null
@@ -0,0 +1,95 @@
+<?php
+/*
+ * This code is part of GOsa (http://www.gosa-project.org)
+ * Copyright (C) 2003-2008 GONICUS GmbH
+ *
+ * ID: $$Id: class_departmentGeneric.inc 11085 2008-05-28 10:54:49Z hickert $$
+ *
+ * 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
+ */
+
+class domain extends department
+{
+ /* attribute list for save action */
+ var $attributes = array( "dc", "ou", "description","gosaUnitTag");
+ var $objectclasses = array("top", "domain", "gosaDepartment");
+ var $structuralOC = array("locality");
+ var $type = "dc";
+ var $dc = "";
+ var $orgi_dc = "";
+ var $namingAttr = "dc";
+
+
+ function check()
+ {
+ $message = plugin::check();
+
+ /* Check for presence of this department */
+ $ldap= $this->config->get_ldap_link();
+ $ldap->ls ("(&(dc=".$this->dc.")(objectClass=domain))", $this->base, array('dn'));
+ if ($this->orig_dc == "new" && $ldap->count()){
+ $message[]= msgPool::duplicated(_("Name"));
+ } elseif ($this->orig_dn != $this->dn && $ldap->count()){
+ $message[]= msgPool::duplicated(_("Name"));
+ }
+
+ /* All required fields are set? */
+ if ($this->dc == ""){
+ $message[]= msgPool::required(_("Name"));
+ }elseif(tests::is_department_name_reserved($this->dc,$this->base)){
+ $message[]= msgPool::reserved(_("Name"));
+ }elseif(!preg_match ('/[a-z0-9 \.,\-_]/i', $this->dc)){
+ $message[]= msgPool::invalid(_("Name"), $this->dc, "/[a-z0-9 \.,\-_]/");
+ }
+
+ /* Check description */
+ if ($this->description == ""){
+ $message[]= msgPool::required(_("Description"));
+ }
+
+ /* Check if we are allowed to create or move this object
+ */
+ if($this->orig_dn == "new" && !$this->acl_is_createable($this->base)){
+ $message[] = msgPool::permCreate();
+ }elseif($this->orig_dn != "new" && $this->base != $this->orig_base && !$this->acl_is_moveable($this->base)){
+ $message[] = msgPool::permMove();
+ }
+
+ return($message);
+ }
+
+
+ /* Return plugin informations for acl handling */
+ static function plInfo()
+ {
+ return (array("plShortName" => _("Domain Component"),
+ "plDescription" => _("Domain Component"),
+ "plSelfModify" => FALSE,
+ "plPriority" => 4,
+ "plDepends" => array(),
+ "plSection" => array("administration"),
+ "plCategory" => array("department"),
+
+ "plProvidedAcls" => array(
+ "dc" => _("Name"),
+ "description" => _("Description"),
+ "base" => _("Base"),
+ "gosaUnitTag" => _("Administrative settings"))
+ ));
+ }
+}
+
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
diff --git a/gosa-core/plugins/admin/departments/domain.tpl b/gosa-core/plugins/admin/departments/domain.tpl
--- /dev/null
@@ -0,0 +1,57 @@
+<!--////////////////////
+ // LOCALITY (l)
+ //////////////////// -->
+
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4>
+ <tr>
+ <td style="vertical-align:top; width:50%">
+ <h2><img class="center" alt="" align="middle" src="images/rightarrow.png"> {t}Properties{/t}</h2>
+ <table summary="">
+ <tr>
+ <td><LABEL for="dc">{t}Domain name{/t}</LABEL>{$must}</td>
+ <td>
+{render acl=$dcACL}
+ <input id="dc" name="dc" size=25 maxlength=60 value="{$dc}" title="{t}Name of domain to create{/t}">
+{/render}
+ </td>
+ </tr>
+ <tr>
+ <td><LABEL for="description">{t}Description{/t}</LABEL>{$must}</td>
+ <td>
+{render acl=$descriptionACL}
+ <input id="description" name="description" size=25 maxlength=80 value="{$description}" title="{t}Descriptive text for department{/t}">
+{/render}
+ </td>
+ </tr>
+ {if !$is_root_dse}
+ <tr>
+ <td><LABEL for="base">{t}Base{/t}</LABEL>{$must}</td>
+ <td>
+{render acl=$baseACL}
+ <select id="base" size="1" name="base" title="{t}Choose subtree to place department in{/t}">
+ {html_options options=$bases selected=$base_select}
+ </select>
+{/render}
+
+{render acl=$baseACL disable_picture='images/lists/folder_grey.png'}
+ <input type="image" name="chooseBase" src="images/lists/folder.png" class="center" title="{t}Select a base{/t}">
+{/render}
+ </td>
+ </tr>
+ {/if}
+ </table>
+ </td>
+ </tr>
+</table>
+<p class='seperator'> </p>
+<table summary="" style="width:100%; vertical-align:top; text-align:left;" cellpadding=4>
+ <tr>
+ <td style="vertical-align:top; width:100%">
+ <h2><img class="center" alt="" align="middle" src="images/lists/locked.png"> {t}Administrative settings{/t}</h2>
+{render acl=$gosaUnitTagACL}
+ <input id="is_administrational_unit" type=checkbox name="is_administrational_unit" value="1" {$gosaUnitTag}><label for="is_administrational_unit">{t}Tag department as an independent administrative unit{/t}</label>
+{/render}
+ </td>
+ </tr>
+</table>
+<input type='hidden' name='dep_generic_posted' value='1'>