added meta data for get_ldap_filter()
This commit is contained in:
		
							parent
							
								
									f1722aaee8
								
							
						
					
					
						commit
						44e3cfce7c
					
				|  | @ -17,10 +17,11 @@ E.g. if you create a new module and its class name is "qmail" then the | |||
| filename would be "qmail.inc".<br> | ||||
| <br> | ||||
| The class name of a module must contain only a-z, A-Z, 0-9, -, and _.<br> | ||||
| <br> | ||||
| All module classes should extend the baseModule class.<br> | ||||
| <br> | ||||
| <h2>2. Class functions</h2> | ||||
| <h3>2.1. Static functions</h3> | ||||
| <h3>2.1. Functions that have to work without superior accountContainer<br> | ||||
| </h3> | ||||
| These functions are called without instanciating an object of the | ||||
| module class. They must not depend on class variables and are only | ||||
| allowed to call other static functions.<br> | ||||
|  | @ -69,7 +70,7 @@ a-z, A-Z, 0-9, -, _ and spaces.<br> | |||
| The <span style="font-weight: bold;">$scope</span> parameter defines | ||||
| the account type ("user", "group", "host" at this time).<br> | ||||
| <br> | ||||
| <h3>2.1.3. is_base_module</h3> | ||||
| <h3>2.1.3. is_base_module*</h3> | ||||
| <br> | ||||
| <table style="text-align: left; width: 300px; height: 30px;" border="0" | ||||
|  cellspacing="2" cellpadding="2"> | ||||
|  | @ -77,7 +78,7 @@ the account type ("user", "group", "host" at this time).<br> | |||
|     <tr> | ||||
|       <td | ||||
|  style="vertical-align: top; background-color: rgb(204, 204, 204); text-align: center;"><span | ||||
|  style="font-weight: bold;">function is_base_module($scope)</span><br> | ||||
|  style="font-weight: bold;">function is_base_module()</span><br> | ||||
|       </td> | ||||
|     </tr> | ||||
|   </tbody> | ||||
|  | @ -85,16 +86,14 @@ the account type ("user", "group", "host" at this time).<br> | |||
| <br> | ||||
| Returns <span style="font-weight: bold;">true</span> if your module is | ||||
| a base module and otherwise <span style="font-weight: bold;">false</span>.<br> | ||||
| <span style="font-weight: bold;">$scope</span> is the account type | ||||
| ("user", "group", "host" at this time).<br> | ||||
| <br> | ||||
| <span style="font-weight: bold;"></span><br> | ||||
| Every account type needs at least one base module. A base module | ||||
| defines a full qualified account.<br> | ||||
| E.g. modules that use the object class posixAccount may be base modules | ||||
| as it makes sense to manage these Unix accounts. On the other hand the | ||||
| quota module is no base module as it needs posixAccount.<br> | ||||
| <br> | ||||
| <h3>2.1.4. get_ldap_filter</h3> | ||||
| <h3>2.1.4. get_ldap_filter*</h3> | ||||
| <br> | ||||
| <table style="text-align: left; width: 300px; height: 30px;" border="0" | ||||
|  cellspacing="2" cellpadding="2"> | ||||
|  | @ -160,6 +159,43 @@ your module depends on one of these modules.<br> | |||
| => array("exim"));</span><br | ||||
|  style="font-weight: bold; font-style: italic;"> | ||||
| <br> | ||||
| <h3>2.1.6. get_metaData()</h3> | ||||
| <br> | ||||
| <table cellpadding="2" cellspacing="2" border="0" | ||||
|  style="text-align: left; width: 300px;"> | ||||
|   <tbody> | ||||
|     <tr> | ||||
|       <td | ||||
|  style="vertical-align: top; background-color: rgb(204, 204, 204); text-align: center;"><span | ||||
|  style="font-weight: bold;">function get_metaData()</span><br> | ||||
|       </td> | ||||
|     </tr> | ||||
|   </tbody> | ||||
| </table> | ||||
| <br> | ||||
| Returns an hash array including meta data for the baseModule.<br> | ||||
| <br> | ||||
| <span style="font-weight: bold;">Example: return array("is_base" => | ||||
| true);</span><br style="font-weight: bold;"> | ||||
| <br> | ||||
| <h3>2.1.7. get_scope()</h3> | ||||
| <br> | ||||
| <table cellpadding="2" cellspacing="2" border="0" | ||||
|  style="text-align: left; width: 300px;"> | ||||
|   <tbody> | ||||
|     <tr> | ||||
|       <td | ||||
|  style="vertical-align: top; background-color: rgb(204, 204, 204); text-align: center;"><span | ||||
|  style="font-weight: bold;">function get_scope()</span><br> | ||||
|       </td> | ||||
|     </tr> | ||||
|   </tbody> | ||||
| </table> | ||||
| <br> | ||||
| Returns the account type (user/group/host) of this module object.<br> | ||||
| <span style="font-weight: bold;"></span><br> | ||||
| <span style="font-weight: bold;">This function is provided by the | ||||
| baseModule and should not be overwritten.</span><br> | ||||
| <br> | ||||
| <h3>2.2. Class functions</h3> | ||||
| <h3>2.2.1. Constructor</h3> | ||||
|  | @ -245,7 +281,7 @@ It must return the help entry as array for the submitted help | |||
| identifier. The format of the array to be returned is described in | ||||
| section 4. "Help entry syntax".<br> | ||||
| <br> | ||||
| <h3>2.1.5. get_profileOptions</h3> | ||||
| <h3>2.2.5. get_profileOptions</h3> | ||||
| <br> | ||||
| <table cellpadding="2" cellspacing="2" border="0" | ||||
|  style="text-align: left; width: 300px; height: 30px;"> | ||||
|  | @ -273,7 +309,7 @@ as keywords to load and save profiles. We recommend to use the module | |||
| name as prefix for them (e.g. posixAccount_homeDirectory) to avoid | ||||
| naming confilcts.<br> | ||||
| <br> | ||||
| <h3>2.1.6. check_profileOptions</h3> | ||||
| <h3>2.2.6. check_profileOptions</h3> | ||||
| <br> | ||||
| <table style="text-align: left; width: 400px; height: 30px;" border="0" | ||||
|  cellspacing="2" cellpadding="2"> | ||||
|  | @ -326,6 +362,10 @@ user to decide which fields are to be displayed on the PDF file. The | |||
| format of the array to be returned is described in section 5. "PDF | ||||
| syntax".<br> | ||||
| <br> | ||||
| <br> | ||||
| <span style="font-weight: bold;">*: These functions do not need to be | ||||
| implemented if meta data is supplied. See 6 for a list of meta data | ||||
| formats.</span><br> | ||||
| <h3><br> | ||||
| </h3> | ||||
| <h2>3. Meta HTML code</h2> | ||||
|  | @ -515,5 +555,17 @@ which should be displayed when this help entry is called. | |||
| <h3><br> | ||||
| </h3> | ||||
| <h2>5. PDF syntax</h2> | ||||
| <br> | ||||
| <br> | ||||
| <h2>6. Module meta data</h2> | ||||
| <h3>6.1 is_base_module()</h3> | ||||
|     "is_base" => boolean<br> | ||||
| <br> | ||||
| <h3>6.2 get_ldap_filter()</h3> | ||||
|     "ldap_filter" => array<br> | ||||
| <br> | ||||
| <span style="font-weight: bold;">   Example:</span><span | ||||
|  style="font-style: italic; font-weight: bold;"> array('or' => | ||||
| 'objectClass=posixAccount', 'and' => '(!(uid=*$))')</span> | ||||
| </body> | ||||
| </html> | ||||
|  |  | |||
|  | @ -85,6 +85,16 @@ class baseModule { | |||
| 		else return false; | ||||
| 	} | ||||
| 
 | ||||
| 	/** | ||||
| 	* returns an LDAP filter for the account lists | ||||
| 	* | ||||
| 	* @return string LDAP filter | ||||
| 	*/ | ||||
| 	function get_ldap_filter() { | ||||
| 		if (isset($this->meta['ldap_filter'])) return $this->meta['ldap_filter']; | ||||
| 		else return ""; | ||||
| 	} | ||||
| 
 | ||||
| // TODO implement missing interface
 | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -72,7 +72,8 @@ function get_ldap_filter($scope) { | |||
| 	$orFilter = ''; | ||||
| 	for ($i = 0; $i < sizeof($mods); $i++) { | ||||
| 		if (is_base_module($mods[$i], $scope)) { | ||||
| 			$modinfo = call_user_func(array($mods[$i], "get_ldap_filter"), $scope); | ||||
| 			$module = new $mods[$i]($scope); | ||||
| 			$modinfo = $module->get_ldap_filter(); | ||||
| 			if (isset($modinfo['or'])) $filters['or'][] = $modinfo['or']; | ||||
| 			if (isset($modinfo['and'])) $filters['and'][] = $modinfo['and']; | ||||
| 		} | ||||
|  |  | |||
|  | @ -62,7 +62,10 @@ class posixAccount extends baseModule { | |||
| 	function get_metaData() { | ||||
| 		$return = array(); | ||||
| 		if ($this->get_scope() == "user") { | ||||
| 			// this is a base module
 | ||||
| 			$return["is_base"] = true; | ||||
| 			// LDAP filter
 | ||||
| 			$return["ldap_filter"] = array('or' => "(objectClass=posixAccount)", 'and' => "(!(uid=*$))"); | ||||
| 		} | ||||
| 		return $return; | ||||
| 	} | ||||
|  | @ -153,13 +156,6 @@ class posixAccount extends baseModule { | |||
| 		else return false; | ||||
| 	} | ||||
| 
 | ||||
| 	// returns an LDAP filter for the account lists
 | ||||
| 	// $scope: the account type ("user", "group", "host")
 | ||||
| 	function get_ldap_filter($scope) { | ||||
| 		if ($scope == "user") return array('or' => "(objectClass=posixAccount)", 'and' => "(!(uid=*$))"); | ||||
| 		else return false; | ||||
| 	} | ||||
| 
 | ||||
| 	/* This function returns a list with all required modules | ||||
| 	*/ | ||||
| 	function get_dependencies($scope) { | ||||
|  |  | |||
|  | @ -62,7 +62,10 @@ class posixGroup extends baseModule { | |||
| 	function get_metaData() { | ||||
| 		$return = array(); | ||||
| 		if ($this->get_scope() == "group") { | ||||
| 			// this is a base module
 | ||||
| 			$return["is_base"] = true; | ||||
| 			// LDAP filter
 | ||||
| 			$return["ldap_filter"] = array('or' => "(objectClass=posixGroup)"); | ||||
| 		} | ||||
| 		return $return; | ||||
| 	} | ||||
|  | @ -142,13 +145,6 @@ class posixGroup extends baseModule { | |||
| 		else return false; | ||||
| 	} | ||||
| 
 | ||||
| 	// returns an LDAP filter for the account lists
 | ||||
| 	// $scope: the account type ("user", "group", "host")
 | ||||
| 	function get_ldap_filter($scope) { | ||||
| 		if ($scope == "group") return array('or' => "(objectClass=posixGroup)"); | ||||
| 		else return false; | ||||
| 	} | ||||
| 
 | ||||
| 	/* This function returns a list with all required modules | ||||
| 	*/ | ||||
| 	function get_dependencies($scope) { | ||||
|  |  | |||
|  | @ -62,7 +62,10 @@ class sambaAccount extends baseModule { | |||
| 	function get_metaData() { | ||||
| 		$return = array(); | ||||
| 		if ($this->get_scope() == "host") { | ||||
| 			// this is a base module
 | ||||
| 			$return["is_base"] = true; | ||||
| 			// LDAP filter
 | ||||
| 			$return["ldap_filter"] = array('and' => '(uid=*$)', 'or' => "(objectClass=posixAccount)"); | ||||
| 		} | ||||
| 		return $return; | ||||
| 	} | ||||
|  | @ -146,13 +149,6 @@ class sambaAccount extends baseModule { | |||
| 		else return false; | ||||
| 	} | ||||
| 
 | ||||
| 	// returns an LDAP filter for the account lists
 | ||||
| 	// $scope: the account type ("user", "group", "host")
 | ||||
| 	function get_ldap_filter($scope) { | ||||
| 		if ($scope == "host") return array('and' => '(uid=*$)', 'or' => "(objectClass=posixAccount)"); | ||||
| 		else return false; | ||||
| 	} | ||||
| 
 | ||||
| 	/* This function returns a list with all required modules | ||||
| 	*/ | ||||
| 	function get_dependencies($scope) { | ||||
|  |  | |||
|  | @ -62,7 +62,10 @@ class sambaSamAccount extends baseModule { | |||
| 	function get_metaData() { | ||||
| 		$return = array(); | ||||
| 		if ($this->get_scope() == "host") { | ||||
| 			// this is a base module
 | ||||
| 			$return["is_base"] = true; | ||||
| 			// LDAP filter
 | ||||
| 			$return["ldap_filter"] = array('and' => '(uid=*$)', 'or' => "(objectClass=posixAccount)"); | ||||
| 		} | ||||
| 		return $return; | ||||
| 	} | ||||
|  | @ -146,14 +149,7 @@ class sambaSamAccount extends baseModule { | |||
| 		else return false; | ||||
| 	} | ||||
| 
 | ||||
| 	// returns an LDAP filter for the account lists
 | ||||
| 	// $scope: the account type ("user", "group", "host")
 | ||||
| 	function get_ldap_filter($scope) { | ||||
| 		if ($scope == "host") return array('and' => '(uid=*$)', 'or' => "(objectClass=posixAccount)"); | ||||
| 		else return false; | ||||
| 	} | ||||
| 
 | ||||
| /* This function returns a list with all required modules | ||||
| 	/* This function returns a list with all required modules | ||||
| 	*/ | ||||
| 	function get_dependencies($scope) { | ||||
| 		if ($scope=='host') return array('depends' => array('posixAccount'), 'conflicts' => array() ); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue