<?php // $Header: /cvsroot/phpldapadmin/phpldapadmin/templates/template_config.php,\ // v 1.17 2004/05/08 11:14:55 xrenard Exp $ /** * template_config.php * ------------------- * General configuration file for templates. * File Map: * 1 - Generic templates configuration * 2 - Samba template configuration * 3 - method used in template and other files */ /*###################################################################################### ## Templates for entry creation ## ## ---------------------------- ## ## ## ## Fill in this array with templates that you can create to suit your needs. ## ## Each entry defines a description (to be displayed in the template list) and ## ## a handler, which is a file that will be executed with certain POST vars set. ## ## See the templates provided here for examples of how to make your own template. ## ## ## ######################################################################################*/ $templates = array(); $templates[] = array( 'desc' => 'User Account', 'icon' => 'images/user.png', 'handler' => 'new_user_template.php' ); // You can use the 'regexp' directive to restrict where // entries can be created for this template //'regexp' => '^ou=People,o=.*,c=.*$' 'regexp' => '^ou=people,dc=.*,dc=.*$' $templates[] = array( 'desc' => 'Address Book Entry (inetOrgPerson)', 'icon' => 'images/user.png', 'handler' => 'new_address_template.php' ); $templates[] = array( 'desc' => 'Kolab User Entry', 'icon' => 'images/user.png', 'handler' => 'new_kolab_template.php' ); $templates[] = array( 'desc' => 'Organizational Unit', 'icon' => 'images/ou.png', 'handler' => 'new_ou_template.php' ); $templates[] = array( 'desc' => 'Posix Group', 'icon' => 'images/ou.png', 'handler' => 'new_posix_group_template.php' ); $templates[] = array( 'desc' => 'Samba NT Machine', 'icon' => 'images/nt_machine.png', 'handler' => 'new_nt_machine.php' ); $templates[] = array( 'desc' => 'Samba 3 NT Machine', 'icon' => 'images/nt_machine.png', 'handler' => 'new_smb3_nt_machine.php' ); /*$templates[] = array( 'desc' => 'Samba User', 'icon' => 'images/nt_user.png', 'handler' => 'new_smbuser_template.php' ); */ $templates[] = array( 'desc' => 'Samba 3 User', 'icon' => 'images/nt_user.png', 'handler' => 'new_smb3_user_template.php' ); $templates[] = array( 'desc' => 'Samba 3 Group Mapping', 'icon' => 'images/ou.png', 'handler' => 'new_smbgroup_template.php' ); $templates[] = array( 'desc' => 'DNS Entry', 'icon' => 'images/dc.png', 'handler' => 'new_dns_entry.php' ); $templates[] = array( 'desc' => 'Simple Security Object', 'icon' => 'images/user.png', 'handler' => 'new_security_object_template.php' ); $templates[] = array( 'desc' => 'Custom', 'icon' => 'images/object.png', 'handler' => 'custom.php' ); /*##################################################################################### ## POSIX GROUP TEMPLATE CONFIGURATION ## ## ---------------------------------- ## ## ## #####################################################################################*/ // uncomment to set the base dn of posix groups // default is set to the base dn of the server $base_posix_groups="ou=groups,dc=gsr,dc=pt"; /*###################################################################################### ## SAMBA TEMPLATE CONFIGURATION ## ## ---------------------------- ## ## ## ## In order to use the samba templates, you might edit the following properties: ## ## 1 - $mkntpwdCommand : the path to the mkntpwd utility provided with/by Samba. ## ## 2 - $default_samba3_domains : the domain name and the domain sid. ## ## ## ######################################################################################*/ // path 2 the mkntpwd utility (Customize) $mkntpwdCommand = "/usr/local/sbin/mkntpwd"; // Default domains definition (Customize) // (use `net getlocalsid` on samba server) $default_samba3_domains = array(); $default_samba3_domains[] = array( 'name' => 'GSRDOMAIN', 'sid' => 'S-1-5-21-3777331929-1837441497-3139219028' ); // The base dn of samba group. (CUSTOMIZE) $samba_base_groups = "ou=groups,dc=gsr,dc=pt"; //Definition of built-in local groups $built_in_local_groups = array( "S-1-5-21-3777331929-1837441497-3139219028-512" => "Administrators", "S-1-5-21-3777331929-1837441497-3139219028-513" => "Users", "S-1-5-21-3777331929-1837441497-3139219028-514" => "Guests", "S-1-5-21-3777331929-1837441497-3139219028-21007" => "Power Users", "S-1-5-21-3777331929-1837441497-3139219028-21009" => "Account Operators", "S-1-5-21-3777331929-1837441497-3139219028-21011" => "Server Operators", "S-1-5-21-3777331929-1837441497-3139219028-21013" => "Print Operators", "S-1-5-21-3777331929-1837441497-3139219028-21015" => "backup Operators", "S-1-5-21-3777331929-1837441497-3139219028-21017" => "Replicator" ); /*###################################################################################### ## Methods used in/by templates ## ## ---------------------------- ## ######################################################################################*/ /* * Returns the name of the template to use based on the DN and * objectClasses of an entry. If no specific modification * template is available, simply return 'default'. The caller * should append '.php' and prepend 'templates/modification/' * to the returned string to get the file name. */ function get_template( $server_id, $dn ) { // fetch and lowercase all the objectClasses in an array $object_classes = get_object_attr( $server_id, $dn, 'objectClass', true ); if( $object_classes === null || $object_classes === false) return 'default'; foreach( $object_classes as $i => $class ) $object_classes[$i] = strtolower( $class ); $rdn = get_rdn( $dn ); if( in_array( 'groupofnames', $object_classes ) || in_array( 'groupofuniquenames', $object_classes ) ) return 'group_of_names'; /* if( in_array( 'person', $object_classes ) && in_array( 'posixaccount', $object_classes ) ) return 'user'; */ // TODO: Write other templates and criteria therefor // else if ... // return 'some other template'; // else if ... // return 'some other template'; // etc. return 'default'; } /** * Return the domains info * */ function get_samba3_domains(){ global $default_samba3_domains; // do the search for the sambadomainname object here // In the meantime, just return the default domains return $default_samba3_domains; } /** * Utily class to get the samba passwords. */ class MkntPasswdUtil{ var $clearPassword = NULL; var $sambaPassword ; function MkntPasswdUtil(){ $sambaPassword = array("sambaLMPassword" => NULL, "sambaNTPassword" => NULL); } function createSambaPasswords($password){ global $mkntpwdCommand; $this->clearPassword = $password; file_exists ( $mkntpwdCommand ) && is_executable ( $mkntpwdCommand ) \ or pla_error(' Unable to create the Samba passwords. Please, check \ the configuration in template_config.php'); $sambaPassCommand = $mkntpwdCommand . " " . $password; if($sambaPassCommandOutput = shell_exec($sambaPassCommand)){ $this->sambaPassword['sambaLMPassword'] = \ trim( substr( $sambaPassCommandOutput , 0 , \ strPos( $sambaPassCommandOutput,':' ) ) ); $this->sambaPassword['sambaNTPassword'] = \ trim( substr( $sambaPassCommandOutput, \ strPos( $sambaPassCommandOutput ,':' ) +1 ) ); return true; } else{ return false; } } function getSambaLMPassword(){ return $this->sambaPassword['sambaLMPassword']; } function getSambaNTPassword(){ return $this->sambaPassword['sambaNTPassword']; } function getSambaClearPassword(){ return $this->clearPassword; } function valueOf($key){ return $this->sambaPassword[$key]; } } /** * Return posix group entries * */ function get_posix_groups( $server_id , $base_dn = NULL ){ global $servers; if( is_null( $base_dn ) ) $base_dn = $servers[$server_id]['base']; $results = pla_ldap_search( $server_id, "objectclass=posixGroup", \ $base_dn, array() ); if( !$results ) return false; else return $results; } ?> |