| 
									
										
										
										
											2004-10-22 15:22:13 +00:00
										 |  |  | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> | 
					
						
							|  |  |  | <html> | 
					
						
							|  |  |  | <head> | 
					
						
							|  |  |  |   <meta content="text/html; charset=ISO-8859-15" | 
					
						
							|  |  |  |  http-equiv="content-type"> | 
					
						
							|  |  |  |   <title>File upload</title> | 
					
						
							|  |  |  |   <link rel="stylesheet" type="text/css" href="style/layout.css"> | 
					
						
							| 
									
										
										
										
											2008-01-01 13:06:51 +00:00
										 |  |  | 	<link rel="shortcut icon" type="image/x-icon" href="images/favicon.ico"> | 
					
						
							| 
									
										
										
										
											2004-10-22 15:22:13 +00:00
										 |  |  | </head> | 
					
						
							|  |  |  | <body> | 
					
						
							|  |  |  | <h1 style="text-align: center;">File upload<br> | 
					
						
							|  |  |  | </h1> | 
					
						
							|  |  |  | <br> | 
					
						
							|  |  |  | <div style="text-align: center;"><img | 
					
						
							|  |  |  |  style="width: 886px; height: 162px;" alt="upload" | 
					
						
							|  |  |  |  src="images/lam_upload.png"><br> | 
					
						
							|  |  |  | <div style="text-align: left;"><br> | 
					
						
							|  |  |  | <h2>Account selection (masscreate.php)<br> | 
					
						
							|  |  |  | </h2> | 
					
						
							|  |  |  | This is the initial page of the file upload. The user selects the | 
					
						
							|  |  |  | account type for the new upload.<br> | 
					
						
							|  |  |  | <br> | 
					
						
							|  |  |  | <br> | 
					
						
							|  |  |  | <h2>Attribute overview (masscreate.php)</h2> | 
					
						
							|  |  |  | After the account selection LAM will display an overview of the | 
					
						
							|  |  |  | possible and required input columns.<br> | 
					
						
							|  |  |  | The <span style="font-style: italic;">DN</span> attributes (<span | 
					
						
							|  |  |  |  style="font-style: italic;">DN suffix</span> and <span | 
					
						
							|  |  |  |  style="font-style: italic;">RDN</span>) are static and are always | 
					
						
							|  |  |  | displayed. The default suffix is read from config with <span | 
					
						
							|  |  |  |  style="font-weight: bold;">getAccountSuffix()</span> and the list of | 
					
						
							|  |  |  | RDN possibilities is taken from modules.inc - <span | 
					
						
							|  |  |  |  style="font-weight: bold;">getRDNAttributes()</span>.<br> | 
					
						
							|  |  |  | The next attributes are read from modules.inc - <span | 
					
						
							|  |  |  |  style="font-weight: bold;">getUploadColumns()</span>. LAM will display | 
					
						
							|  |  |  | all attributes of one module in a separate fieldset. The <span | 
					
						
							|  |  |  |  style="font-weight: bold;">getUploadColumns()</span> function also | 
					
						
							|  |  |  | returns if an attribute is required and additional information like an | 
					
						
							|  |  |  | example value.<br> | 
					
						
							|  |  |  | <br> | 
					
						
							|  |  |  | After clicking the upload button the user will be forwarded to the | 
					
						
							|  |  |  | account building page.<br> | 
					
						
							|  |  |  | <br> | 
					
						
							|  |  |  | <br> | 
					
						
							|  |  |  | <h2>Account building (massBuildAccounts.php)<br> | 
					
						
							|  |  |  | </h2> | 
					
						
							|  |  |  | This part takes the submitted <span style="font-weight: bold;">CSV file</span> | 
					
						
							|  |  |  | and generates the LDAP accounts.<br> | 
					
						
							|  |  |  | <br> | 
					
						
							|  |  |  | The scripts separates the head row from the data rows in the CSV file. | 
					
						
							|  |  |  | The head array is used to find the position of the input values. The | 
					
						
							|  |  |  | data array contains one subarray for each account.<br> | 
					
						
							|  |  |  | <br> | 
					
						
							|  |  |  | After the data has been extracted there are some basic checks done, | 
					
						
							|  |  |  | e.g. checking required and unique columns. The modules provide the | 
					
						
							|  |  |  | necessary information for this.<br> | 
					
						
							|  |  |  | <br> | 
					
						
							|  |  |  | Then all data is given to the modules with <span | 
					
						
							|  |  |  |  style="font-weight: bold;">buildUploadAccounts()</span> in | 
					
						
							|  |  |  | modules.inc. They return a list of accounts which can be uploaded with <span | 
					
						
							|  |  |  |  style="font-style: italic;">ldap-add()</span> and generate possible | 
					
						
							|  |  |  | error messages.<br> | 
					
						
							|  |  |  | <br> | 
					
						
							|  |  |  | If the accounts are built the script will give the user the possibility | 
					
						
							|  |  |  | to check the result with an <span style="font-style: italic;">LDIF-file</span> | 
					
						
							|  |  |  | or to do the upload.<br> | 
					
						
							|  |  |  | <br> | 
					
						
							|  |  |  | <br> | 
					
						
							|  |  |  | <h2>LDIF export (massBuildAccounts.php)<br> | 
					
						
							|  |  |  | </h2> | 
					
						
							|  |  |  | LAM simply takes the built accounts and generates an <span | 
					
						
							|  |  |  |  style="font-style: italic;">LDIF-file</span> from them. This is passed | 
					
						
							|  |  |  | to the user's browser.<br> | 
					
						
							|  |  |  | The <span style="font-style: italic;">LDIF-file</span> will only | 
					
						
							|  |  |  | contain the accounts itself. If modules do additional tasks after the | 
					
						
							|  |  |  | upload (e.g. adding users to groups) this will not be covered.<br> | 
					
						
							|  |  |  | <br> | 
					
						
							|  |  |  | <br> | 
					
						
							|  |  |  | <h2>Account creation (massDoUpload.php)<br> | 
					
						
							|  |  |  | </h2> | 
					
						
							|  |  |  | This script finally uploads the LDAP accounts with <span | 
					
						
							|  |  |  |  style="font-style: italic;">ldap_add()</span>.<br> | 
					
						
							|  |  |  | <br> | 
					
						
							|  |  |  | The upload can last longer than the maximum execution time of PHP. | 
					
						
							|  |  |  | Therefore the script will check regulary how much time is left and | 
					
						
							|  |  |  | pause the upload. This is resumed with a meta refresh which loads the | 
					
						
							|  |  |  | script again.<br> | 
					
						
							|  |  |  | <br> | 
					
						
							|  |  |  | After all accounts were created in LDAP the modules may do additional | 
					
						
							|  |  |  | tasks. LAM will call <span style="font-weight: bold;">doUploadPostActions()</span> | 
					
						
							|  |  |  | and also provide a list of failed accounts which can be ignored. The | 
					
						
							|  |  |  | function is called as long the returned status is <span | 
					
						
							|  |  |  |  style="font-style: italic;">"inProgress"</span>. The script uses again | 
					
						
							|  |  |  | a | 
					
						
							|  |  |  | meta refresh to handle the maximum execution time.<br> | 
					
						
							|  |  |  | Typical post actions are setting quotas or adding an user to groups.<br> | 
					
						
							|  |  |  | <br> | 
					
						
							|  |  |  | A progress bar is shown for the LDAP adding and the module actions to | 
					
						
							|  |  |  | give the user a hint how long it will still take.<br> | 
					
						
							|  |  |  | </div> | 
					
						
							|  |  |  | </div> | 
					
						
							|  |  |  | </body> | 
					
						
							|  |  |  | </html> |