148 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
		
		
			
		
	
	
			148 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
| 
								 | 
							
								<!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">
							 | 
						||
| 
								 | 
							
								</head>
							 | 
						||
| 
								 | 
							
								<body>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<p align="center">
							 | 
						||
| 
								 | 
							
								<script type="text/javascript"><!--
							 | 
						||
| 
								 | 
							
								google_ad_client = "pub-4179059556107138";
							 | 
						||
| 
								 | 
							
								google_alternate_ad_url = "http://lam.sourceforge.net/google_adsense_script.html";
							 | 
						||
| 
								 | 
							
								google_ad_width = 728;
							 | 
						||
| 
								 | 
							
								google_ad_height = 90;
							 | 
						||
| 
								 | 
							
								google_ad_format = "728x90_as";
							 | 
						||
| 
								 | 
							
								google_ad_type = "text_image";
							 | 
						||
| 
								 | 
							
								google_ad_channel ="";
							 | 
						||
| 
								 | 
							
								google_page_url = document.location;
							 | 
						||
| 
								 | 
							
								google_color_border = "EEEEEE";
							 | 
						||
| 
								 | 
							
								google_color_bg = "FFFFFF";
							 | 
						||
| 
								 | 
							
								google_color_link = "0000FF";
							 | 
						||
| 
								 | 
							
								google_color_url = "008000";
							 | 
						||
| 
								 | 
							
								google_color_text = "000000";
							 | 
						||
| 
								 | 
							
								//--></script>
							 | 
						||
| 
								 | 
							
								<script type="text/javascript"
							 | 
						||
| 
								 | 
							
								  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
							 | 
						||
| 
								 | 
							
								</script>
							 | 
						||
| 
								 | 
							
								</p>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<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>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<p align="center">
							 | 
						||
| 
								 | 
							
								<script type="text/javascript"><!--
							 | 
						||
| 
								 | 
							
								google_ad_client = "pub-4179059556107138";
							 | 
						||
| 
								 | 
							
								google_alternate_ad_url = "http://lam.sourceforge.net/google_adsense_script.html";
							 | 
						||
| 
								 | 
							
								google_ad_width = 728;
							 | 
						||
| 
								 | 
							
								google_ad_height = 90;
							 | 
						||
| 
								 | 
							
								google_ad_format = "728x90_as";
							 | 
						||
| 
								 | 
							
								google_ad_type = "text_image";
							 | 
						||
| 
								 | 
							
								google_ad_channel ="";
							 | 
						||
| 
								 | 
							
								google_page_url = document.location;
							 | 
						||
| 
								 | 
							
								google_color_border = "EEEEEE";
							 | 
						||
| 
								 | 
							
								google_color_bg = "FFFFFF";
							 | 
						||
| 
								 | 
							
								google_color_link = "0000FF";
							 | 
						||
| 
								 | 
							
								google_color_url = "008000";
							 | 
						||
| 
								 | 
							
								google_color_text = "000000";
							 | 
						||
| 
								 | 
							
								//--></script>
							 | 
						||
| 
								 | 
							
								<script type="text/javascript"
							 | 
						||
| 
								 | 
							
								  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
							 | 
						||
| 
								 | 
							
								</script>
							 | 
						||
| 
								 | 
							
								</p>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</body>
							 | 
						||
| 
								 | 
							
								</html>
							 |