2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< ? php  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Displays  a  form  to  allow  the  user  to  enter  a  new  value  to  add 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  to  the  existing  list  of  values  for  a  multi - valued  attribute . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ package  phpLDAPadmin 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ subpackage  Page 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								require  './common.php' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# The DN and ATTR we are working with.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$request  =  array ();  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$request [ 'dn' ]  =  get_request ( 'dn' , 'GET' , true );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$request [ 'attr' ]  =  get_request ( 'attr' , 'GET' , true );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Check if the entry exists.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  ( !  $request [ 'dn' ]  ||  !  $app [ 'server' ] -> dnExists ( $request [ 'dn' ]))  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									error ( sprintf ( _ ( 'The entry (%s) does not exist.' ), $request [ 'dn' ]), 'error' , 'index.php' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$request [ 'page' ]  =  new  TemplateRender ( $app [ 'server' ] -> getIndex (), get_request ( 'template' , 'REQUEST' , false , null ));  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$request [ 'page' ] -> setDN ( $request [ 'dn' ]);  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$request [ 'page' ] -> accept ( true );  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$request [ 'template' ]  =  $request [ 'page' ] -> getTemplate ();  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  ( $request [ 'attribute' ] -> isReadOnly ())  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									error ( sprintf ( _ ( 'The attribute (%s) is in readonly mode.' ), $request [ 'attr' ]), 'error' , 'index.php' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*/  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Render the form
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  ( !  strcasecmp ( $request [ 'attr' ], 'objectclass' )  ||  get_request ( 'meth' , 'REQUEST' )  !=  'ajax' )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									# Render the form.
 
							 
						 
					
						
							
								
									
										
										
										
											2012-03-03 19:33:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									$request [ 'page' ] -> drawTitle ( sprintf ( _ ( 'Add new <b>%s</b> value to <b>%s</b>' ),  htmlspecialchars ( $request [ 'attr' ]), htmlspecialchars ( get_rdn ( $request [ 'dn' ])))); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									$request [ 'page' ] -> drawSubTitle (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( !  strcasecmp ( $request [ 'attr' ], 'objectclass' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<form action="cmd.php" method="post" class="new_value" id="entry_form">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<div>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<input type="hidden" name="cmd" value="add_oclass_form" />' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<form action="cmd.php" method="post" class="new_value" id="entry_form" enctype="multipart/form-data" onsubmit="return submitForm(this)">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<div>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $_SESSION [ APPCONFIG ] -> getValue ( 'confirm' , 'update' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<input type="hidden" name="cmd" value="update_confirm" />' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											echo  '<input type="hidden" name="cmd" value="update" />' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									printf ( '<input type="hidden" name="server_id" value="%s" />' , $app [ 'server' ] -> getIndex ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									printf ( '<input type="hidden" name="dn" value="%s" />' , htmlspecialchars ( $request [ 'dn' ])); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									echo  '</div>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									echo  '<table class="forminput" border="0" style="margin-left: auto; margin-right: auto;">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									echo  '<tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$request [ 'attribute' ]  =  $request [ 'template' ] -> getAttribute ( $request [ 'attr' ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									$request [ 'count' ]  =  $request [ 'attribute' ] -> getValueCount (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( $request [ 'count' ])  { 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-13 18:30:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										printf ( '<td class="top">'  .  _ ( 'Current list of <b>%s</b> values for attribute <b>%s</b>:' )  .  '</td>' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$request [ 'count' ], $request [ 'attribute' ] -> getFriendlyName ()); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# Display current attribute values
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<table border="0"><tr><td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  ( $i = 0 ; $i < $request [ 'count' ]; $i ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( $i  >  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												echo  '<br/>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$request [ 'page' ] -> draw ( 'CurrentValue' , $request [ 'attribute' ], $i ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$request [ 'page' ] -> draw ( 'HiddenValue' , $request [ 'attribute' ], $i ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</td></tr></table>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-13 18:30:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										printf ( '<td>'  .  _ ( 'No current value for attribute <b>%s</b>.' )  .  '</td>' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$request [ 'attribute' ] -> getFriendlyName ()); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										echo  '<td><br /><br /></td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									echo  '</tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									echo  '<tr>' ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-02-05 19:15:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									printf ( '<td class="top">%s</td>' , _ ( 'Enter the values you would like to add:' )); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									echo  '<td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( !  strcasecmp ( $request [ 'attr' ], 'objectclass' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# If our attr is an objectClass, fetch all available objectClasses and remove those from the list that are already defined in the entry
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$socs  =  $app [ 'server' ] -> SchemaObjectClasses (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foreach  ( $request [ 'attribute' ] -> getValues ()  as  $oclass ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											unset ( $socs [ strtolower ( $oclass )]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# Draw objectClass selection
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<table border="0">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<tr><td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<select name="new_values[objectclass][]" multiple="multiple" size="15">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										foreach  ( $socs  as  $name  =>  $oclass )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											# Exclude any structural ones, that are not in the heirachy, as they'll only generate an LDAP_OBJECT_CLASS_VIOLATION
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  (( $oclass -> getType ()  ==  'structural' )  &&  !  $oclass -> isRelated ( $request [ 'attribute' ] -> getValues ())) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												continue ;  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<option value="%s">%s</option>' , $oclass -> getName ( false ), $oclass -> getName ( false )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</select>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</td></tr><tr><td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<br />' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										printf ( '<input id="save_button" type="submit" value="%s" %s />' , 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-12 19:23:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											_ ( 'Add new object class' ), 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-21 17:50:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											( isAjaxEnabled ()  ?  sprintf ( 'onclick="return ajSUBMIT(\'BODY\',document.getElementById(\'entry_form\'),\'%s\');"' , _ ( 'Updating object' ))  :  '' )); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										echo  '</td></tr></table>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $_SESSION [ APPCONFIG ] -> getValue ( 'appearance' , 'show_hints' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<tr><td colspan="2"><small><br /><img src="%s/light.png" alt="Hint" /><span class="hint">%s</span></small></td></tr>' , 
							 
						 
					
						
							
								
									
										
										
										
											2012-02-08 19:12:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												IMGDIR , _ ( 'Note: You may be required to enter new attributes that these object classes require' )); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</table>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</form>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										# Draw a blank field
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<table border="0"><tr><td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$request [ 'page' ] -> draw ( 'FormValue' , $request [ 'attribute' ], $request [ 'count' ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</td></tr><tr><td>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$sattr  =  $app [ 'server' ] -> getSchemaAttribute ( $request [ 'attr' ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $sattr -> getDescription ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<small><b>%s:</b> %s</small><br />' , _ ( 'Description' ), $sattr -> getDescription ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $sattr -> getType ()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											printf ( '<small><b>%s:</b> %s</small><br />' , _ ( 'Syntax' ), $sattr -> getType ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $sattr -> getMaxLength ()) 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-13 18:30:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											printf ( '<small>'  .  _ ( '<b>Maximum length:</b> %s characters' )  .  '</small><br />' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												number_format ( $sattr -> getMaxLength ())); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<br />' ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-07-12 19:23:27 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										printf ( '<input type="submit" id="save_button" name="submit" value="%s" />' , _ ( 'Add value' )); 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-26 10:44:28 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										echo  '</td></tr></table>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</td></tr>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</table>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</form>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  else  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									if  ( is_null ( $attribute  =  $request [ 'template' ] -> getAttribute ( $request [ 'attr' ])))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$request [ 'template' ] -> addAttribute ( $request [ 'attr' ], array ( 'values' => array ())); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$attribute  =  $request [ 'template' ] -> getAttribute ( $request [ 'attr' ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$attribute -> show (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '<table class="entry" cellspacing="0" align="center" border="0">' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$request [ 'page' ] -> draw ( 'Template' , $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$request [ 'page' ] -> draw ( 'Javascript' , $attribute ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										echo  '</table>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$request [ 'count' ]  =  $attribute -> getValueCount (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$request [ 'page' ] -> draw ( 'FormReadWriteValue' , $attribute , $request [ 'count' ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								?>