2003-12-27 11:21:00 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< ? php  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$Id $  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-10-27 18:47:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  This  code  is  part  of  LDAP  Account  Manager  ( http :// www . ldap - account - manager . org / ) 
							 
						 
					
						
							
								
									
										
										
										
											2006-03-03 17:30:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  Copyright  ( C )  2003  -  2006   Tilo  Lutz 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-04 19:08:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                2007  -  2012   Roland  Gruber 
							 
						 
					
						
							
								
									
										
										
										
											2003-12-27 11:21:00 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  This  program  is  free  software ;  you  can  redistribute  it  and / or  modify 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it  under  the  terms  of  the  GNU  General  Public  License  as  published  by 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  the  Free  Software  Foundation ;  either  version  2  of  the  License ,  or 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ( at  your  option )  any  later  version . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  This  program  is  distributed  in  the  hope  that  it  will  be  useful , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  but  WITHOUT  ANY  WARRANTY ;  without  even  the  implied  warranty  of 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  MERCHANTABILITY  or  FITNESS  FOR  A  PARTICULAR  PURPOSE .   See  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  GNU  General  Public  License  for  more  details . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  You  should  have  received  a  copy  of  the  GNU  General  Public  License 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  along  with  this  program ;  if  not ,  write  to  the  Free  Software 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Foundation ,  Inc . ,  59  Temple  Place ,  Suite  330 ,  Boston ,  MA   02111 - 1307   USA 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*/  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-07-21 10:33:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Manages  quotas  for  users  and  groups .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  @ package  modules  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  @ author  Tilo  Lutz  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  @ author  Roland  Gruber  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  @ author  Michael  Duergner  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*/  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Manages  quotas  for  users  and  groups .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  @ package  modules  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*/  
						 
					
						
							
								
									
										
										
										
											2004-06-08 18:54:37 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  quota  extends  baseModule  {  
						 
					
						
							
								
									
										
										
										
											2009-12-12 17:22:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
									
										
										
										
											2012-07-15 12:05:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/** delimiter for lamdaemon commands */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-12 17:22:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									private  static  $SPLIT_DELIMITER  =  " ###x##y##x### " ; 
							 
						 
					
						
							
								
									
										
										
										
											2012-07-15 12:05:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/** prefix for lamdaemon results */ 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-14 12:57:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									private  static  $QUOTA_PREFIX  =  'QUOTA_ENTRY ' ; 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-13 19:58:58 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2004-09-26 13:48:52 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/**  this  functin  fills  the  error  message  array  with  messages 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									**/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									function  load_Messages ()  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-12 17:22:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// error messages for input checks
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> messages [ 'softblock' ][ 0 ]  =  array ( 'ERROR' ,  _ ( 'Block soft quota' ),  _ ( 'Block soft quota contains invalid characters. Only natural numbers are allowed.' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> messages [ 'softblock' ][ 1 ]  =  array ( 'ERROR' ,  _ ( 'Account %s:' )  .  ' %s' ,  _ ( 'Block soft quota contains invalid characters. Only natural numbers are allowed.' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> messages [ 'hardblock' ][ 0 ]  =  array ( 'ERROR' ,  _ ( 'Block hard quota' ),  _ ( 'Block hard quota contains invalid characters. Only natural numbers are allowed.' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> messages [ 'hardblock' ][ 1 ]  =  array ( 'ERROR' ,  _ ( 'Account %s:' )  .  ' %s' ,  _ ( 'Block hard quota contains invalid characters. Only natural numbers are allowed.' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> messages [ 'softinode' ][ 0 ]  =  array ( 'ERROR' ,  _ ( 'Inode soft quota' ),  _ ( 'Inode soft quota contains invalid characters. Only natural numbers are allowed.' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> messages [ 'softinode' ][ 1 ]  =  array ( 'ERROR' ,  _ ( 'Account %s:' )  .  ' %s' ,  _ ( 'Inode soft quota contains invalid characters. Only natural numbers are allowed.' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> messages [ 'hardinode' ][ 0 ]  =  array ( 'ERROR' ,  _ ( 'Inode hard quota' ),  _ ( 'Inode hard quota contains invalid characters. Only natural numbers are allowed.' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> messages [ 'hardinode' ][ 1 ]  =  array ( 'ERROR' ,  _ ( 'Account %s:' )  .  ' %s' ,  _ ( 'Inode hard quota contains invalid characters. Only natural numbers are allowed.' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> messages [ 'block_cmp' ][ 0 ]  =  array ( 'ERROR' ,  _ ( 'Block quota' ),  _ ( 'Block soft quota must be smaller than block hard quota.' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> messages [ 'block_cmp' ][ 1 ]  =  array ( 'ERROR' ,  _ ( 'Account %s:' )  .  ' %s' ,  _ ( 'Block soft quota must be smaller than block hard quota.' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> messages [ 'inode_cmp' ][ 0 ]  =  array ( 'ERROR' ,  _ ( 'Inode quota' ),  _ ( 'Inode soft quota must be smaller than inode hard quota.' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> messages [ 'inode_cmp' ][ 1 ]  =  array ( 'ERROR' ,  _ ( 'Account %s:' )  .  ' %s' ,  _ ( 'Inode soft quota must be smaller than inode hard quota.' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> messages [ 'upload' ][ 0 ]  =  array ( 'ERROR' ,  _ ( 'Account %s:' )  .  ' %s' ,  _ ( 'Quota has wrong format!' )); 
							 
						 
					
						
							
								
									
										
										
										
											2004-09-26 13:48:52 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2006-08-13 12:58:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2004-06-13 19:58:58 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  Returns  meta  data  that  is  interpreted  by  parent  class 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									* 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  @ return  array  array  with  meta  data 
							 
						 
					
						
							
								
									
										
										
										
											2008-02-03 14:28:28 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									*  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  @ see  baseModule :: get_metaData () 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-13 19:58:58 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									*/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									function  get_metaData ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$return  =  array (); 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-19 18:42:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// icon
 
							 
						 
					
						
							
								
									
										
										
										
											2007-12-01 12:34:52 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$return [ 'icon' ]  =  'hard-driveBig.png' ; 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-13 19:58:58 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// manages user and group accounts
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$return [ " account_types " ]  =  array ( " user " ,  " group " ); 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-14 16:05:36 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// alias name
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$return [ " alias " ]  =  _ ( 'Quota' ); 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-20 17:32:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( $this -> get_scope ()  ==  'group' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// module dependencies
 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-18 14:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											$return [ 'dependencies' ]  =  array ( 'depends'  =>  array ( array ( 'posixGroup' ,  'rfc2307bisPosixGroup' )),  'conflicts'  =>  array ()); 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-20 17:32:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $this -> get_scope ()  ==  'user' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// module dependencies
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return [ 'dependencies' ]  =  array ( 'depends'  =>  array ( 'posixAccount' ),  'conflicts'  =>  array ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// managed attributes
 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-11 17:51:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$return [ 'attributes' ]  =  array ( 'uid' ,  'cn' ); 
							 
						 
					
						
							
								
									
										
										
										
											2004-08-17 15:16:17 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// available PDF fields
 
							 
						 
					
						
							
								
									
										
										
										
											2004-10-30 16:46:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$return [ 'PDF_fields' ]  =   array ( 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-05 12:38:23 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											'quotas'  =>  _ ( 'Quota' ) 
							 
						 
					
						
							
								
									
										
										
										
											2004-10-30 16:46:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										); 
							 
						 
					
						
							
								
									
										
										
										
											2004-10-02 17:41:42 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// help entries
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$return [ 'help' ]  =  array ( 
							 
						 
					
						
							
								
									
										
										
										
											2004-10-30 16:46:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											" Mountpoint "  =>  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												" Headline "  =>  _ ( " Mountpoint " ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												" Text "  =>  _ ( " Mountpoint of device with enabled quotas. " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											" UsedBlocks "  =>  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												" Headline "  =>  _ ( " Used blocks " ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												" Text "  =>  _ ( " Used blocks. 1000 blocks are usually 1MB " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											" SoftBlockLimit "  =>  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												" Headline "  =>  _ ( " Soft block limit " ), 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-11 17:51:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												" Text "  =>  _ ( " Soft block limit. " ),  " SeeAlso "  =>  array ( 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-30 18:57:26 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													'link'  =>  'http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/Quota.html#ss4.4' , 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-11 17:51:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													'text'  =>  'Quota How-To' ) 
							 
						 
					
						
							
								
									
										
										
										
											2004-10-30 16:46:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											" HardBlockLimit "  =>  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												" Headline "  =>  _ ( " Hard block limit " ), 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-12 16:13:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												" Text "  =>  _ ( " Hard block limit " ),  " SeeAlso "  =>  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													'link'  =>  'http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/Quota.html#ss4.5' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													'text'  =>  'Quota How-To' ) 
							 
						 
					
						
							
								
									
										
										
										
											2004-10-30 16:46:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											" GraceBlockPeriod "  =>  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												" Headline "  =>  _ ( " Grace block period " ), 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-12 16:13:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												" Text "  =>  _ ( " Grace block period. Most filesystems use a fixed maximum value of 7 days. " ),  " SeeAlso "  =>  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													'link'  =>  'http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/Quota.html#ss4.6' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													'text'  =>  'Quota How-To' ) 
							 
						 
					
						
							
								
									
										
										
										
											2004-10-30 16:46:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											" UsedInodes "  =>  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												" Headline "  =>  _ ( " Used inodes " ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												" Text "  =>  _ ( " Used inodes (files) " ) . '.' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											" SoftInodeLimit "  =>  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												" Headline "  =>  _ ( " Soft inode limit " ), 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-12 16:13:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												" Text "  =>  _ ( " Soft inode (files) limit. " ),  " SeeAlso "  =>  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													'link'  =>  'http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/Quota.html#ss4.4' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													'text'  =>  'Quota How-To' ) 
							 
						 
					
						
							
								
									
										
										
										
											2004-10-30 16:46:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											" HardInodeLimit "  =>  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												" Headline "  =>  _ ( " Hard inode limit " ), 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-12 16:13:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												" Text "  =>  _ ( " Hard inode (files) limit " ),  " SeeAlso "  =>  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													'link'  =>  'http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/Quota.html#ss4.5' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													'text'  =>  'Quota How-To' ) 
							 
						 
					
						
							
								
									
										
										
										
											2004-10-30 16:46:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											" GraceInodePeriod "  =>  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												" Headline "  =>  _ ( " Grace inode period " ), 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-12 16:13:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												" Text "  =>  _ ( " Grace inode (files) period. Most filesystems use a fixed maximum value of 7 days. " ),  " SeeAlso "  =>  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													'link'  =>  'http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/Quota.html#ss4.6' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													'text'  =>  'Quota How-To' ) 
							 
						 
					
						
							
								
									
										
										
										
											2005-07-19 12:21:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											" upload "  =>  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												" Headline "  =>  _ ( " Quota " ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												" Text "  =>  _ ( " Please enter the quota settings for this mount point. The syntax is:  { soft block limit}, { hard block limit}, { soft inode limit}, { hard inode limit} " ) 
							 
						 
					
						
							
								
									
										
										
										
											2004-10-30 16:46:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											) 
							 
						 
					
						
							
								
									
										
										
										
											2004-10-02 17:41:42 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										); 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-13 19:58:58 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  $return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/** Saves the quota settings */ 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-13 17:28:37 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									private  $quota ; 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  Initializes  the  quota  values . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									function  initQuotas ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( isset ( $this -> quota ))  return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$userName  =  '+' ; 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-03 18:02:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  (( $this -> getAccountContainer ()  !=  null )  &&  ! $this -> getAccountContainer () -> isNewAccount )  { 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-11 17:51:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  ( $this -> get_scope ()  ==  'user' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( ! isset ( $this -> attributes [ 'uid' ][ 0 ]))  return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$userName  =  $this -> attributes [ 'uid' ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											else  if  ( $this -> get_scope ()  ==  'group' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( ! isset ( $this -> attributes [ 'cn' ][ 0 ]))  return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$userName  =  $this -> attributes [ 'cn' ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2006-09-09 11:46:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// get list of lamdaemon servers
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$lamdaemonServers  =  explode ( " ; " ,  $_SESSION [ 'config' ] -> get_scriptServers ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  ( $s  =  0 ;  $s  <  sizeof ( $lamdaemonServers );  $s ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$temp  =  explode ( " : " ,  $lamdaemonServers [ $s ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$server  =  $temp [ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// get quotas
 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-14 09:34:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											$quotas  =  lamdaemon ( implode ( quota :: $SPLIT_DELIMITER ,  array ( $userName ,  " quota " ,  " get " ,  $this -> get_scope ())),  $server ); 
							 
						 
					
						
							
								
									
										
										
										
											2010-10-10 11:51:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  ( sizeof ( $quotas )  ==  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											$allQuotas  =  explode ( " : " ,  $quotas [ 0 ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											array_pop ( $allQuotas );  // remove empty element at the end
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											for  ( $i  =  0 ;  $i  <  sizeof ( $allQuotas );  $i ++ )  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-14 12:57:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												if  ( strpos ( $allQuotas [ $i ],  quota :: $QUOTA_PREFIX )  !==  0 )  continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$allQuotas [ $i ]  =  substr ( $allQuotas [ $i ],  strlen ( quota :: $QUOTA_PREFIX )); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$singleQuota  =  explode ( " , " ,  $allQuotas [ $i ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$this -> quota [ $server ][ $i ]  =  $singleQuota ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $this -> quota [ $server ][ $i ][ 4 ]  <  time ())  $this -> quota [ $server ][ $i ][ 4 ]  =  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												else  $this -> quota [ $server ][ $i ][ 4 ]  =  strval ( intval (( $this -> quota [ $server ][ $i ][ 4 ]  -  time ()) / 3600 ))  . ' ' .  _ ( 'hours' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( $this -> quota [ $server ][ $i ][ 8 ]  <  time ())  $this -> quota [ $server ][ $i ][ 8 ]  =  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												else  $this -> quota [ $server ][ $i ][ 8 ]  =  strval ( intval (( $this -> quota [ $server ][ $i ][ 8 ]  -  time ()) / 3600 ))  . ' ' .  _ ( 'hours' ); 
							 
						 
					
						
							
								
									
										
										
										
											2003-12-27 11:21:00 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2003-12-27 11:21:00 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-18 14:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  Gets  the  cn  from  the  Unix  group  module . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  @ return  String  cn  attribute 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									private  function  getCn ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$modules  =  array ( 'posixGroup' ,  'groupOfNames' ,  'groupOfUniqueNames' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  ( $i  =  0 ;  $i  <  sizeof ( $modules );  $i ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( $this -> getAccountContainer () -> getAccountModule ( $modules [ $i ])  !=  null )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$attrs  =  $this -> getAccountContainer () -> getAccountModule ( $modules [ $i ]) -> getAttributes (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( isset ( $attrs [ 'cn' ][ 0 ]))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													return  $attrs [ 'cn' ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
									
										
										
										
											2007-11-03 14:17:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  This  function  is  used  to  check  if  this  module  page  can  be  displayed . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  It  returns  false  if  a  module  depends  on  data  from  other  modules  which  was  not  yet  entered . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									* 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  @ return  boolean  true ,  if  page  can  be  displayed 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*/ 
							 
						 
					
						
							
								
									
										
										
										
											2003-12-27 11:21:00 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									function  module_ready ()  { 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-10 19:04:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( $this -> get_scope () == 'user' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$attrs  =  $this -> getAccountContainer () -> getAccountModule ( 'posixAccount' ) -> getAttributes (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( $attrs [ 'uid' ][ 0 ] == '' )  return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $this -> get_scope () == 'group' )  { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-18 14:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  (( $this -> getCn ()  ==  null )  ||  ( $this -> getCn ()  ==  '' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-10 19:04:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2003-12-27 11:21:00 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										return  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2005-09-13 17:20:07 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2003-12-27 11:21:00 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
									
										
										
										
											2012-07-15 12:05:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 *  Quotas  are  set  in  postmodify . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  
							 
						 
					
						
							
								
									
										
										
										
											2009-05-21 16:33:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 *  @ see  baseModule :: postModifyActions () 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 * 
							 
						 
					
						
							
								
									
										
										
										
											2012-07-15 12:05:47 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 *  @ param  boolean  $newAccount  is  new  account 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-21 16:33:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 *  @ param  array  $attributes  LDAP  attributes  of  this  entry 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-04 19:08:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 *  @ return  array  array  which  contains  status  messages .  Each  entry  is  an  array  containing  the  status  message  parameters . 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-21 16:33:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									public  function  postModifyActions ( $newAccount ,  $attributes )  { 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-04 19:08:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$messages  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( ! isset ( $this -> quota )  ||  ! is_array ( $this -> quota ))  return  $messages ; 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// determine if this is a user or group account
 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-10 19:04:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( $this -> get_scope () == 'user' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$attrs  =  $this -> getAccountContainer () -> getAccountModule ( 'posixAccount' ) -> getAttributes (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$id  =  $attrs [ 'uid' ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $this -> get_scope () == 'group' )  { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-18 14:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											$id  =  $this -> getCn (); 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-10 19:04:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// get list of lamdaemon servers
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$serverDescriptions  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$lamdaemonServers  =  explode ( " ; " ,  $_SESSION [ 'config' ] -> get_scriptServers ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  ( $s  =  0 ;  $s  <  sizeof ( $lamdaemonServers );  $s ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$temp  =  explode ( " : " ,  $lamdaemonServers [ $s ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( isset ( $temp [ 1 ]))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$serverDescriptions [ $temp [ 0 ]]  =  $temp [ 1 ]; 
							 
						 
					
						
							
								
									
										
										
										
											2003-12-27 11:21:00 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$servers  =  array_keys ( $this -> quota ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  ( $q  =  0 ;  $q  <  sizeof ( $servers );  $q ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$server  =  $servers [ $q ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$i = 0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$quotastring  =  " " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											for  ( $i  =  0 ;  $i  <  sizeof ( $this -> quota [ $server ]);  $i ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$quotastring  =  $quotastring  .  $this -> quota [ $server ][ $i ][ 0 ]  .  ','  .  $this -> quota [ $server ][ $i ][ 2 ]  .  ','  .  $this -> quota [ $server ][ $i ][ 3 ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													.  ','  .  $this -> quota [ $server ][ $i ][ 6 ]  .  ','  .  $this -> quota [ $server ][ $i ][ 7 ]  .  ':' ; 
							 
						 
					
						
							
								
									
										
										
										
											2003-12-27 11:21:00 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-14 09:34:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											lamdaemon ( implode ( quota :: $SPLIT_DELIMITER ,  array ( $id ,  " quota " ,  " set " ,  $this -> get_scope (),  " $quotastring\n " )),  $server ); 
							 
						 
					
						
							
								
									
										
										
										
											2003-12-27 11:21:00 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2012-01-04 19:08:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  $messages ; 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2003-12-27 11:21:00 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  Allows  the  module  to  run  commands  before  the  LDAP  entry  is  deleted . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  
							 
						 
					
						
							
								
									
										
										
										
											2010-11-26 20:16:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 *  @ return  array  Array  which  contains  status  messages .  Each  entry  is  an  array  containing  the  status  message  parameters . 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									function  preDeleteActions ()  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$this -> initQuotas (); 
							 
						 
					
						
							
								
									
										
										
										
											2012-06-05 18:19:52 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( ! isset ( $this -> quota )  ||  ! is_array ( $this -> quota ))  return  array (); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// determine if this is a user or group account
 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-10 19:04:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( $this -> get_scope () == 'user' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$attrs  =  $this -> getAccountContainer () -> getAccountModule ( 'posixAccount' ) -> getAttributes (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$id  =  $attrs [ 'uid' ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( $this -> get_scope () == 'group' )  { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-18 14:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											$id  =  $this -> getCn (); 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-10 19:04:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// get list of lamdaemon servers
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$serverDescriptions  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$lamdaemonServers  =  explode ( " ; " ,  $_SESSION [ 'config' ] -> get_scriptServers ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  ( $s  =  0 ;  $s  <  sizeof ( $lamdaemonServers );  $s ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$temp  =  explode ( " : " ,  $lamdaemonServers [ $s ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( isset ( $temp [ 1 ]))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$serverDescriptions [ $temp [ 0 ]]  =  $temp [ 1 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2003-12-27 11:21:00 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$servers  =  array_keys ( $this -> quota ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  ( $q  =  0 ;  $q  <  sizeof ( $servers );  $q ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$server  =  $servers [ $q ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$i = 0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$quotastring  =  " " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											while  ( $this -> quota [ $server ][ $i ][ 0 ])  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$quotastring  =  $quotastring  .  $this -> quota [ $server ][ $i ][ 0 ]  .  ',0,0,0,0:' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$i ++ ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-14 09:34:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											lamdaemon ( implode ( quota :: $SPLIT_DELIMITER ,  array ( $id ,  " quota " ,  " set " ,  $this -> get_scope (),  " $quotastring\n " )),  $server ); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2010-11-26 20:16:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  array (); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2003-12-27 11:21:00 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-09-07 12:58:34 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  Processes  user  input  of  the  primary  module  page . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  It  checks  if  all  input  values  are  correct  and  updates  the  associated  LDAP  attributes . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									* 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  @ return  array  list  of  info / error  messages 
							 
						 
					
						
							
								
									
										
										
										
											2003-12-27 11:21:00 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									*/ 
							 
						 
					
						
							
								
									
										
										
										
											2006-08-13 12:58:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									function  process_attributes ()  { 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-05 16:56:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( ! isset ( $this -> quota )  ||  ! is_array ( $this -> quota ))  return  array (); 
							 
						 
					
						
							
								
									
										
										
										
											2006-05-17 17:40:42 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$errors  =  array (); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// get list of lamdaemon servers
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$serverDescriptions  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$lamdaemonServers  =  explode ( " ; " ,  $_SESSION [ 'config' ] -> get_scriptServers ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  ( $s  =  0 ;  $s  <  sizeof ( $lamdaemonServers );  $s ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$temp  =  explode ( " : " ,  $lamdaemonServers [ $s ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( isset ( $temp [ 1 ]))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$serverDescriptions [ $temp [ 0 ]]  =  $temp [ 1 ]; 
							 
						 
					
						
							
								
									
										
										
										
											2003-12-30 15:36:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$servers  =  array_keys ( $this -> quota ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  ( $q  =  0 ;  $q  <  sizeof ( $servers );  $q ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$server  =  $servers [ $q ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$id  =  $this -> replaceSpecialChars ( $server ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$i = 0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// loop for every mointpoint with quotas
 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-12 16:14:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											while  ( isset ( $this -> quota [ $server ][ $i ][ 0 ]))  { 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$this -> quota [ $server ][ $i ][ 2 ]  =  $_POST [ $i  .  '_2_'  .  $id ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$this -> quota [ $server ][ $i ][ 3 ]  =  $_POST [ $i  .  '_3_'  .  $id ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$this -> quota [ $server ][ $i ][ 6 ]  =  $_POST [ $i  .  '_6_'  .  $id ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$this -> quota [ $server ][ $i ][ 7 ]  =  $_POST [ $i  .  '_7_'  .  $id ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												// Check if values are OK and set automatic values. if not error-variable will be set
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( ! get_preg ( $this -> quota [ $server ][ $i ][ 2 ],  'digit' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$errors []  =  $this -> messages [ 'softblock' ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( ! get_preg ( $this -> quota [ $server ][ $i ][ 3 ],  'digit' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$errors []  =  $this -> messages [ 'hardblock' ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( ! get_preg ( $this -> quota [ $server ][ $i ][ 6 ],  'digit' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$errors []  =  $this -> messages [ 'softinode' ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( ! get_preg ( $this -> quota [ $server ][ $i ][ 7 ],  'digit' )) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$errors []  =  $this -> messages [ 'hardinode' ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( intval ( $this -> quota [ $server ][ $i ][ 2 ])  >  intval ( $this -> quota [ $server ][ $i ][ 3 ])) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$errors []  =  $this -> messages [ 'block_cmp' ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( intval ( $this -> quota [ $server ][ $i ][ 6 ])  >  intval ( $this -> quota [ $server ][ $i ][ 7 ])) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$errors []  =  $this -> messages [ 'inode_cmp' ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$i ++ ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2006-05-17 17:40:42 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  $errors ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2003-12-27 11:21:00 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2007-11-03 14:17:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  Returns  the  HTML  meta  data  for  the  main  account  page . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  
							 
						 
					
						
							
								
									
										
										
										
											2010-09-29 16:47:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 *  @ return  htmlElement  HTML  meta  data 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-03 14:17:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 */ 
							 
						 
					
						
							
								
									
										
										
										
											2006-08-13 12:58:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									function  display_html_attributes ()  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-29 16:47:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$return  =  new  htmlTable (); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$this -> initQuotas (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( ! is_array ( $this -> quota ))  return  $return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// get list of lamdaemon servers
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$serverDescriptions  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$lamdaemonServers  =  explode ( " ; " ,  $_SESSION [ 'config' ] -> get_scriptServers ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  ( $s  =  0 ;  $s  <  sizeof ( $lamdaemonServers );  $s ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$temp  =  explode ( " : " ,  $lamdaemonServers [ $s ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( isset ( $temp [ 1 ]))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$serverDescriptions [ $temp [ 0 ]]  =  $temp [ 1 ]; 
							 
						 
					
						
							
								
									
										
										
										
											2003-12-27 11:21:00 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$servers  =  array_keys ( $this -> quota ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  ( $q  =  0 ;  $q  <  sizeof ( $servers );  $q ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$server  =  $servers [ $q ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$id  =  $this -> replaceSpecialChars ( $server ); 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-29 16:47:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											$title  =  $server ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( isset ( $serverDescriptions [ $server ]))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$title  =  $serverDescriptions [ $server ]  .  "  ( "  .  $server  .  " ) " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlSubTitle ( $title ),  true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlOutputText ( ' '  .  _ ( 'Mountpoint' )  .  ' ' ,  false )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlOutputText ( ' '  .  _ ( 'Used blocks' )  .  ' ' ,  false )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlOutputText ( ' '  .  _ ( 'Soft block limit' )  .  ' ' ,  false )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlOutputText ( ' '  .  _ ( 'Hard block limit' )  .  ' ' ,  false )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlOutputText ( ' '  .  _ ( 'Grace block period' )  .  ' ' ,  false )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlOutputText ( ' '  .  _ ( 'Used inodes' )  .  ' ' ,  false )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlOutputText ( ' '  .  _ ( 'Soft inode limit' )  .  ' ' ,  false )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlOutputText ( ' '  .  _ ( 'Hard inode limit' )  .  ' ' ,  false )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlOutputText ( ' '  .  _ ( 'Grace inode period' )  .  ' ' ,  false )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addNewLine (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlHelpLink ( 'Mountpoint' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlHelpLink ( 'UsedBlocks' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlHelpLink ( 'SoftBlockLimit' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlHelpLink ( 'HardBlockLimit' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlHelpLink ( 'GraceBlockPeriod' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlHelpLink ( 'UsedInodes' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlHelpLink ( 'SoftInodeLimit' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlHelpLink ( 'HardInodeLimit' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlHelpLink ( 'GraceInodePeriod' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addNewLine (); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$i = 0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// loop for every mointpoint with enabled quotas
 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-12 16:14:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											while  ( isset ( $this -> quota [ $server ][ $i ][ 0 ]))  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-29 16:47:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$return -> addElement ( new  htmlOutputText ( $this -> quota [ $server ][ $i ][ 0 ])); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$return -> addElement ( new  htmlOutputText ( $this -> quota [ $server ][ $i ][ 1 ])); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$sbLimitInput  =  new  htmlInputField ( $i  .  '_2_'  .  $id ,  $this -> quota [ $server ][ $i ][ 2 ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$sbLimitInput -> setFieldSize ( 12 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$sbLimitInput -> setFieldMaxLength ( 20 ); 
							 
						 
					
						
							
								
									
										
										
										
											2011-10-19 17:57:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$sbLimitInput -> setValidationRule ( htmlElement :: VALIDATE_NUMERIC ); 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-29 16:47:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$return -> addElement ( $sbLimitInput ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$hbLimit  =  new  htmlInputField ( $i  .  '_3_'  .  $id ,  $this -> quota [ $server ][ $i ][ 3 ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$hbLimit -> setFieldSize ( 12 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$hbLimit -> setFieldMaxLength ( 20 ); 
							 
						 
					
						
							
								
									
										
										
										
											2011-10-19 17:57:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$hbLimit -> setValidationRule ( htmlElement :: VALIDATE_NUMERIC ); 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-29 16:47:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$return -> addElement ( $hbLimit ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$return -> addElement ( new  htmlOutputText ( $this -> quota [ $server ][ $i ][ 4 ])); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$return -> addElement ( new  htmlOutputText ( $this -> quota [ $server ][ $i ][ 5 ])); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$siLimit  =  new  htmlInputField ( $i  .  '_6_'  .  $id ,  $this -> quota [ $server ][ $i ][ 6 ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$siLimit -> setFieldMaxLength ( 20 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$siLimit -> setFieldSize ( 12 ); 
							 
						 
					
						
							
								
									
										
										
										
											2011-10-19 17:57:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$siLimit -> setValidationRule ( htmlElement :: VALIDATE_NUMERIC ); 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-29 16:47:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$return -> addElement ( $siLimit ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$hiLimit  =  new  htmlInputField ( $i  .  '_7_'  .  $id ,  $this -> quota [ $server ][ $i ][ 7 ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$hiLimit -> setFieldMaxLength ( 20 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$hiLimit -> setFieldSize ( 12 ); 
							 
						 
					
						
							
								
									
										
										
										
											2011-10-19 17:57:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$hiLimit -> setValidationRule ( htmlElement :: VALIDATE_NUMERIC ); 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-29 16:47:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$return -> addElement ( $hiLimit ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$return -> addElement ( new  htmlOutputText ( $this -> quota [ $server ][ $i ][ 8 ])); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$return -> addNewLine (); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$i ++ ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  $return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  Replaces  special  characters  in  HTML  name  values . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  @ param  string  $input  input  string 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  @ return  string  output  string 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									function  replaceSpecialChars ( $input )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$ret  =  str_replace ( " . " ,  " _ " ,  $input ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  $ret ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2003-12-27 11:21:00 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2004-09-19 08:34:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  Returns  a  list  of  elements  for  the  account  profiles . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									* 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-29 16:47:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									*  @ return  htmlElement  profile  elements 
							 
						 
					
						
							
								
									
										
										
										
											2004-09-19 08:34:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									*/ 
							 
						 
					
						
							
								
									
										
										
										
											2004-04-03 14:47:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									function  get_profileOptions ()  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-29 16:47:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$return  =  new  htmlTable (); 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-19 13:35:42 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$optionsAvailable  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// get list of lamdaemon servers
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$lamdaemonServers  =  explode ( " ; " ,  $_SESSION [ 'config' ] -> get_scriptServers ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  ( $s  =  0 ;  $s  <  sizeof ( $lamdaemonServers );  $s ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$temp  =  explode ( " : " ,  $lamdaemonServers [ $s ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$server  =  $temp [ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$id  =  $this -> replaceSpecialChars ( $server ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$description  =  $temp [ 0 ]; 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-29 16:47:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  ( isset ( $temp [ 1 ]))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$description  =  $temp [ 1 ]  .  ' ('  .  $temp [ 0 ]  .  ')' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											// Get quotas
 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-14 09:34:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											$quotas  =  lamdaemon ( implode ( quota :: $SPLIT_DELIMITER ,  array ( " + " ,  " quota " ,  " get " ,  $this -> get_scope ())),  $server ); 
							 
						 
					
						
							
								
									
										
										
										
											2010-10-10 11:51:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  ( sizeof ( $quotas )  ==  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-14 20:18:08 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											$dirs  =  explode ( " : " ,  $quotas [ 0 ]); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											array_pop ( $dirs );  // remove empty element at the end
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											for  ( $i  =  0 ;  $i  <  sizeof ( $dirs );  $i ++ )  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-14 12:57:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												if  ( strpos ( $dirs [ $i ],  quota :: $QUOTA_PREFIX )  !==  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													unset ( $dirs [ $i ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$i -- ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$dirs [ $i ]  =  substr ( $dirs [ $i ],  strlen ( quota :: $QUOTA_PREFIX )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-14 20:18:08 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$dirs [ $i ]  =  explode ( " , " ,  $dirs [ $i ]); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$dirs [ $i ]  =  $dirs [ $i ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-14 12:57:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											$dirs  =  array_values ( $dirs ); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  ( sizeof ( $dirs )  <  1 )  continue ;  // stop if no quota directories were found
 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-19 13:35:42 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											$optionsAvailable  =  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-29 16:47:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlSubTitle ( $description ),  true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlOutputText ( ' '  .  _ ( 'Mountpoint' )  .  ' ' ,  false )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlOutputText ( ' '  .  _ ( 'Soft block limit' )  .  ' ' ,  false )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlOutputText ( ' '  .  _ ( 'Hard block limit' )  .  ' ' ,  false )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlOutputText ( ' '  .  _ ( 'Soft inode limit' )  .  ' ' ,  false )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlOutputText ( ' '  .  _ ( 'Hard inode limit' )  .  ' ' ,  false )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addNewLine (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlHelpLink ( 'Mountpoint' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlHelpLink ( 'SoftBlockLimit' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlHelpLink ( 'HardBlockLimit' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlHelpLink ( 'SoftInodeLimit' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addElement ( new  htmlHelpLink ( 'HardInodeLimit' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$return -> addNewLine (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											for  ( $i  =  0 ;  $i  <  sizeof ( $dirs );  $i ++ )  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-09-29 16:47:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$return -> addElement ( new  htmlOutputText ( $dirs [ $i ])); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$sbLimit  =  new  htmlInputField ( " quota_softblock_ "  .  $id  .  " _ "  .  $dirs [ $i ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$sbLimit -> setFieldSize ( 12 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$sbLimit -> setFieldMaxLength ( 20 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$return -> addElement ( $sbLimit ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$hbLimit  =  new  htmlInputField ( " quota_hardblock_ "  .  $id  .  " _ "  .  $dirs [ $i ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$hbLimit -> setFieldSize ( 12 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$hbLimit -> setFieldMaxLength ( 20 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$return -> addElement ( $hbLimit ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$siLimit  =  new  htmlInputField ( " quota_softinode_ "  .  $id  .  " _ "  .  $dirs [ $i ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$siLimit -> setFieldSize ( 12 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$siLimit -> setFieldMaxLength ( 20 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$return -> addElement ( $siLimit ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$hiLimit  =  new  htmlInputField ( " quota_hardinode_ "  .  $id  .  " _ "  .  $dirs [ $i ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$hiLimit -> setFieldSize ( 12 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$hiLimit -> setFieldMaxLength ( 20 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$return -> addElement ( $hiLimit ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$return -> addNewLine (); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2004-06-23 19:10:22 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-19 13:35:42 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( ! $optionsAvailable )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2004-03-09 12:03:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										return  $return ; 
							 
						 
					
						
							
								
									
										
										
										
											2003-12-27 11:21:00 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2004-09-19 08:34:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  Checks  input  values  of  account  profiles . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									* 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  @ param  array  $options  a  hash  array  ( name  =>  value )  containing  the  options 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  @ return  array  list  of  error  messages  ( array ( type ,  title ,  text ))  to  generate  StatusMessages ,  if  any 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*/ 
							 
						 
					
						
							
								
									
										
										
										
											2004-07-01 15:54:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									function  check_profileOptions ( $options )  { 
							 
						 
					
						
							
								
									
										
										
										
											2004-07-02 18:01:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$return  =  array (); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										// get list of lamdaemon servers
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										$lamdaemonServers  =  explode ( " ; " ,  $_SESSION [ 'config' ] -> get_scriptServers ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  ( $s  =  0 ;  $s  <  sizeof ( $lamdaemonServers );  $s ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$temp  =  explode ( " : " ,  $lamdaemonServers [ $s ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$server  =  $temp [ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$id  =  $this -> replaceSpecialChars ( $server ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// Get quotas
 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-14 09:34:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											$quotas  =  lamdaemon ( implode ( quota :: $SPLIT_DELIMITER ,  array ( " + " ,  " quota " ,  " get " ,  $this -> get_scope ())),  $server ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-14 20:18:08 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											$dirs  =  explode ( " : " ,  $quotas [ 0 ]); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											array_pop ( $dirs );  // remove empty element at the end
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											for  ( $i  =  0 ;  $i  <  sizeof ( $dirs );  $i ++ )  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-14 12:57:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												if  ( strpos ( $dirs [ $i ],  quota :: $QUOTA_PREFIX )  !==  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													unset ( $dirs [ $i ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$i -- ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$dirs [ $i ]  =  substr ( $dirs [ $i ],  strlen ( quota :: $QUOTA_PREFIX )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-14 20:18:08 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$dirs [ $i ]  =  explode ( " , " ,  $dirs [ $i ]); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$dirs [ $i ]  =  $dirs [ $i ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-14 12:57:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											$dirs  =  array_values ( $dirs ); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											for  ( $i  =  0 ;  $i  <  sizeof ( $dirs );  $i ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( ! get_preg ( $options [ " quota_softblock_ "  .  $id  .  " _ "  .  $dirs [ $i ]][ 0 ],  'digit' ))  $return []  =  $this -> messages [ 'softblock' ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( ! get_preg ( $options [ " quota_hardblock_ "  .  $id  .  " _ "  .  $dirs [ $i ]][ 0 ],  'digit' ))  $return []  =  $this -> messages [ 'hardblock' ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( ! get_preg ( $options [ " quota_softinode_ "  .  $id  .  " _ "  .  $dirs [ $i ]][ 0 ],  'digit' ))  $return []  =  $this -> messages [ 'softinode' ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( ! get_preg ( $options [ " quota_hardinode_ "  .  $id  .  " _ "  .  $dirs [ $i ]][ 0 ],  'digit' ))  $return []  =  $this -> messages [ 'hardinode' ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( intval ( $options [ " quota_softblock_ "  .  $id  .  " _ "  .  $dirs [ $i ]][ 0 ])  >  intval ( $options [ " quota_hardblock_ "  .  $id  .  " _ "  .  $dirs [ $i ]][ 0 ]))  $return []  =  $this -> messages [ 'block_cmp' ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( intval ( $options [ " quota_softinode_ "  .  $id  .  " _ "  .  $dirs [ $i ]][ 0 ])  >  intval ( $options [ " quota_hardinode_ "  .  $id  .  " _ "  .  $dirs [ $i ]][ 0 ]))  $return []  =  $this -> messages [ 'inode_cmp' ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$i ++ ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2004-07-02 18:01:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  $return ; 
							 
						 
					
						
							
								
									
										
										
										
											2004-03-14 17:33:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2006-08-13 12:58:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-01-22 10:50:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  Loads  the  values  of  an  account  profile  into  internal  variables . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									* 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  @ param  array  $profile  hash  array  with  profile  values  ( identifier  =>  value ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									function  load_profile ( $profile )  { 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$this -> initQuotas (); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-05 16:56:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( ! isset ( $this -> quota )  ||  ! is_array ( $this -> quota ))  return ; 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$servers  =  array_keys ( $this -> quota ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										for  ( $s  =  0 ;  $s  <  sizeof ( $servers );  $s ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$server  =  $servers [ $s ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$id  =  $this -> replaceSpecialChars ( $server ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											for  ( $i  =  0 ;  $i  <  sizeof ( $this -> quota [ $server ]);  $i ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$dir  =  $this -> quota [ $server ][ $i ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( isset ( $profile [ " quota_softblock_ "  .  $id  .  " _ "  .  $dir ]))  $this -> quota [ $server ][ $i ][ 2 ]  =  $profile [ " quota_softblock_ "  .  $id  .  " _ "  .  $dir ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( isset ( $profile [ " quota_hardblock_ "  .  $id  .  " _ "  .  $dir ]))  $this -> quota [ $server ][ $i ][ 3 ]  =  $profile [ " quota_hardblock_ "  .  $id  .  " _ "  .  $dir ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( isset ( $profile [ " quota_softinode_ "  .  $id  .  " _ "  .  $dir ]))  $this -> quota [ $server ][ $i ][ 6 ]  =  $profile [ " quota_softinode_ "  .  $id  .  " _ "  .  $dir ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( isset ( $profile [ " quota_hardinode_ "  .  $id  .  " _ "  .  $dir ]))  $this -> quota [ $server ][ $i ][ 7 ]  =  $profile [ " quota_hardinode_ "  .  $id  .  " _ "  .  $dir ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2005-01-22 10:50:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-10-09 18:05:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  Returns  the  PDF  entries  for  this  module . 
							 
						 
					
						
							
								
									
										
										
										
											2006-08-13 12:58:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									* 
							 
						 
					
						
							
								
									
										
										
										
											2005-10-09 18:05:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									*  @ return  array  list  of  possible  PDF  entries 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									function  get_pdfEntries ()  { 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$this -> initQuotas (); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-05 16:56:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( ! isset ( $this -> quota )  ||  ! is_array ( $this -> quota ))  return  array (); 
							 
						 
					
						
							
								
									
										
										
										
											2005-07-16 12:43:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( sizeof ( $this -> quota )  >  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$quotas  =  array (); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											// get list of lamdaemon servers
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$lamdaemonServers  =  explode ( " ; " ,  $_SESSION [ 'config' ] -> get_scriptServers ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											for  ( $s  =  0 ;  $s  <  sizeof ( $lamdaemonServers );  $s ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$temp  =  explode ( " : " ,  $lamdaemonServers [ $s ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$server  =  $temp [ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$description  =  $server ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( isset ( $temp [ 1 ]))  $description  =  $temp [ 1 ]  .  "  ( "  .  $server  .  " ) " ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( ! isset ( $this -> quota [ $server ])  ||  ( sizeof ( $this -> quota [ $server ])  <  1 ))  continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												
							 
						 
					
						
							
								
									
										
										
										
											2005-07-28 09:01:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$quotas []  =  '<block><tr>'  . 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
														'<td width="80%"><b>'  .  $description  .  '</b></td>'  . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														'</tr></block>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$quotas []  =  '<block><tr>'  . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														'<td width="20%"><b>'  .  _ ( 'Mountpoint' )  .  '</b></td>'  . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														'<td width="20%"><b>'  .  _ ( 'Soft block' )  .  '</b></td>'  . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														'<td width="20%"><b>'  .  _ ( 'Hard block' )  .  '</b></td>'  . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														'<td width="20%"><b>'  .  _ ( 'Soft inode' )  .  '</b></td>'  . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														'<td width="20%"><b>'  .  _ ( 'Hard inode' )  .  '</b></td></tr></block>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												for  ( $i  =  0 ;  $i  <  sizeof ( $this -> quota [ $server ]);  $i ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$quotas []  =  '<block><tr>'  . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														'<td width="20%" align=\"L\">'  .  $this -> quota [ $server ][ $i ][ 0 ]  .  '</td>'  . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														'<td width="20%" align=\"L\">'  .  $this -> quota [ $server ][ $i ][ 2 ]  .  '</td>'  . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														'<td width="20%" align=\"L\">'  .  $this -> quota [ $server ][ $i ][ 3 ]  .  '</td>'  . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														'<td width="20%" align=\"L\">'  .  $this -> quota [ $server ][ $i ][ 6 ]  .  '</td>'  . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														'<td width="20%" align=\"L\">'  .  $this -> quota [ $server ][ $i ][ 7 ]  .  '</td></tr></block>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$quotas []  =  '<block><tr><td width="80%"> </td></tr></block>' ; 
							 
						 
					
						
							
								
									
										
										
										
											2005-07-16 12:43:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											return  array ( 'quota_quotas'  =>  $quotas ); 
							 
						 
					
						
							
								
									
										
										
										
											2005-07-16 12:43:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2005-09-19 18:43:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2004-05-24 21:39:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2004-03-14 17:33:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-07-19 12:21:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  Returns  an  array  containing  all  input  columns  for  the  file  upload . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									* 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  Syntax : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  < br >  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  < br >   string :  name ,   // fixed non-translated name which is used as column name (should be of format: <module name>_<column name>)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  < br >   string :  description ,   // short descriptive name
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  < br >   string :  help ,   // help ID
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  < br >   string :  example ,   // example value
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  < br >   boolean :  required   // true, if user must set a value for this column
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  < br >  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									* 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-15 20:21:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									*  @ param  array  $selectedModules  list  of  selected  account  modules 
							 
						 
					
						
							
								
									
										
										
										
											2005-07-19 12:21:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									*  @ return  array  column  list 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*/ 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-15 20:21:44 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									function  get_uploadColumns ( $selectedModules )  { 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$this -> initQuotas (); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-05 16:56:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( ! isset ( $this -> quota )  ||  ! is_array ( $this -> quota ))  return  array (); 
							 
						 
					
						
							
								
									
										
										
										
											2005-07-19 12:21:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$return  =  array (); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( sizeof ( $this -> quota )  >  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// get list of lamdaemon servers
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$lamdaemonServers  =  explode ( " ; " ,  $_SESSION [ 'config' ] -> get_scriptServers ()); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											for  ( $s  =  0 ;  $s  <  sizeof ( $lamdaemonServers );  $s ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$temp  =  explode ( " : " ,  $lamdaemonServers [ $s ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$server  =  $temp [ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												// Get quotas
 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-14 09:34:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$quotas  =  lamdaemon ( implode ( quota :: $SPLIT_DELIMITER ,  array ( " + " ,  " quota " ,  " get " ,  $this -> get_scope ())),  $server ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-14 20:18:08 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$dirs  =  explode ( " : " ,  $quotas [ 0 ]); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												array_pop ( $dirs );  // remove empty element at the end
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												for  ( $i  =  0 ;  $i  <  sizeof ( $dirs );  $i ++ )  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-14 12:57:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													if  ( strpos ( $dirs [ $i ],  quota :: $QUOTA_PREFIX )  !==  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														unset ( $dirs [ $i ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$i -- ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$dirs [ $i ]  =  substr ( $dirs [ $i ],  strlen ( quota :: $QUOTA_PREFIX )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-14 20:18:08 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													$dirs [ $i ]  =  explode ( " , " ,  $dirs [ $i ]); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													$dirs [ $i ]  =  $dirs [ $i ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-14 12:57:00 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$dirs  =  array_values ( $dirs ); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												for  ( $i  =  0 ;  $i  <  sizeof ( $dirs );  $i ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$return []  =  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														'name'  =>  'quota_'  .  $server  .  ':'  .  $dirs [ $i ], 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														'description'  =>  sprintf ( _ ( 'Quota for %s on %s' ),  $dirs [ $i ],  $server ), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														'help'  =>  'upload' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														'example'  =>  '2000,2500,3000,3500' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2005-07-19 12:21:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  $return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									/** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  This  function  executes  one  post  upload  action . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									* 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  @ param  array  $data  array  containing  one  account  in  each  element 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  @ param  array  $ids  array ( < column_name >  =>  < column  number > ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  @ param  array  $failed  list  of  accounts  which  were  not  created  successfully 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  @ param  array  $temp  variable  to  store  temporary  data  between  two  post  actions 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-16 17:59:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									*  @ param  array  $accounts  list  of  LDAP  entries 
							 
						 
					
						
							
								
									
										
										
										
											2005-07-19 12:21:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									*  @ return  array  current  status 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  < br >  array  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  < br >   'status'  =>  'finished'  |  'inProgress' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  < br >   'progress'  =>  0. . 100 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  < br >   'errors'  =>  array  ( < array  of  parameters  for  StatusMessage > ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*  < br >  ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									*/ 
							 
						 
					
						
							
								
									
										
										
										
											2010-12-16 17:59:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									function  doUploadPostActions ( & $data ,  $ids ,  $failed ,  & $temp ,  & $accounts )  { 
							 
						 
					
						
							
								
									
										
										
										
											2005-07-19 12:21:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										$errors  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// first call, get list of user names and quota values
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										if  ( ! isset ( $temp [ 'counter' ]))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$temp [ 'counter' ]  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// create list of quota columns
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$temp [ 'quotas' ]  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$columns  =  array_keys ( $ids ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											for  ( $i  =  0 ;  $i  <  sizeof ( $columns );  $i ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( strpos ( $columns [ $i ],  'quota_' )  ===  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													$temp [ 'quotas' ][]  =  substr ( $columns [ $i ],  6 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// select user/group name depending on current scope
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$temp [ 'accounts' ]  =  array (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$col  =  'invalid' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if  ( $this -> get_scope ()  ==  'user' )  $col  =  $ids [ 'posixAccount_userName' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											elseif  ( $this -> get_scope ()  ==  'group' )  $col  =  $ids [ 'posixGroup_cn' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// create list of account names and their quota values
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											for  ( $i  =  0 ;  $i  <  sizeof ( $data );  $i ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												if  ( in_array ( $i ,  $failed ))  continue ;  // ignore failed accounts
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$name  =  $data [ $i ][ $col ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												for  ( $m  =  0 ;  $m  <  sizeof ( $temp [ 'quotas' ]);  $m ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													if  ( $data [ $i ][ $ids [ 'quota_'  .  $temp [ 'quotas' ][ $m ]]]  !=  '' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$parts  =  explode ( ',' ,  $data [ $i ][ $ids [ 'quota_'  .  $temp [ 'quotas' ][ $m ]]]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														// check syntax
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														if  ( sizeof ( $parts )  !=  4 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$errMsg  =  $this -> messages [ 'upload' ][ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															array_push ( $errMsg ,  array ( $i ,  'quota_'  .  $temp [ 'quotas' ][ $m ])); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$errors []  =  $errMsg ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														if  ( ! get_preg ( $parts [ 0 ],  'digit' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$errMsg  =  $this -> messages [ 'softblock' ][ 1 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															array_push ( $errMsg ,  array ( $i ,  'quota_'  .  $temp [ 'quotas' ][ $m ])); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$errors []  =  $errMsg ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														if  ( ! get_preg ( $parts [ 1 ],  'digit' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$errMsg  =  $this -> messages [ 'hardblock' ][ 1 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															array_push ( $errMsg ,  array ( $i ,  'quota_'  .  $temp [ 'quotas' ][ $m ])); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$errors []  =  $errMsg ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														if  ( ! get_preg ( $parts [ 2 ],  'digit' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$errMsg  =  $this -> messages [ 'softinode' ][ 1 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															array_push ( $errMsg ,  array ( $i ,  'quota_'  .  $temp [ 'quotas' ][ $m ])); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$errors []  =  $errMsg ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														if  ( ! get_preg ( $parts [ 3 ],  'digit' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$errMsg  =  $this -> messages [ 'hardinode' ][ 1 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															array_push ( $errMsg ,  array ( $i ,  'quota_'  .  $temp [ 'quotas' ][ $m ])); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$errors []  =  $errMsg ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														} 
							 
						 
					
						
							
								
									
										
										
										
											2005-10-04 15:25:42 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
														if  ( $parts [ 0 ]  >  $parts [ 1 ])  { 
							 
						 
					
						
							
								
									
										
										
										
											2005-07-19 12:21:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
															$errMsg  =  $this -> messages [ 'block_cmp' ][ 1 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															array_push ( $errMsg ,  array ( $i ,  'quota_'  .  $temp [ 'quotas' ][ $m ])); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$errors []  =  $errMsg ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														} 
							 
						 
					
						
							
								
									
										
										
										
											2005-10-04 15:25:42 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
														if  ( $parts [ 2 ]  >  $parts [ 3 ])  { 
							 
						 
					
						
							
								
									
										
										
										
											2005-07-19 12:21:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
															$errMsg  =  $this -> messages [ 'inode_cmp' ][ 1 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															array_push ( $errMsg ,  array ( $i ,  'quota_'  .  $temp [ 'quotas' ][ $m ])); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$errors []  =  $errMsg ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														// save quota settings
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$temp [ 'accounts' ][ $name ][ $temp [ 'quotas' ][ $m ]]  =  $parts ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  array ( 'status'  =>  'inProgress' ,  'progress'  =>  5 ,  'errors'  =>  $errors ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										// quotas are ready to set
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										elseif  ( $temp [ 'counter' ]  <  sizeof ( $temp [ 'accounts' ]))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$names  =  array_keys ( $temp [ 'accounts' ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$name  =  $names [ $temp [ 'counter' ]]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$mountPoints  =  array_keys ( $temp [ 'accounts' ][ $name ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// set quota
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											for  ( $m  =  0 ;  $m  <  sizeof ( $mountPoints );  $m ++ )  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-14 20:18:08 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$mpParts  =  explode ( " : " ,  $mountPoints [ $m ]); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$server  =  $mpParts [ 0 ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												$dir  =  $mpParts [ 1 ]; 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-12 17:22:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$quotaString  =  implode ( quota :: $SPLIT_DELIMITER ,  array ( $name ,  " quota " ,  " set " ,  $this -> get_scope (),  $dir  .  ','  . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													implode ( ',' ,  $temp [ 'accounts' ][ $name ][ $mountPoints [ $m ]])  .  " \n " )); 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-14 09:34:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												$result  =  lamdaemon ( $quotaString ,  $server ); 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-04 16:07:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												if  ( is_array ( $result ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													for  ( $i  =  0 ;  $i  <  sizeof ( $result );  $i ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														$parts  =  explode ( " , " ,  $result ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														if  ( $parts [ 0 ]  ==  'ERROR' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
															$errors []  =  array ( 'ERROR' ,  $parts [ 1 ],  $parts [ 2 ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												} 
							 
						 
					
						
							
								
									
										
										
										
											2005-07-19 12:21:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											// set counters to next account/mount point
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$temp [ 'counter' ] ++ ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											return  array ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												'status'  =>  'inProgress' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												'progress'  =>  5  +  ( 95  *  ( $temp [ 'counter' ]  /  sizeof ( $temp [ 'accounts' ]))), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												'errors'  =>  $errors ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return  array ( 'status'  =>  'finished' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-12 17:22:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
									
										
										
										
											2004-03-09 12:03:39 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2003-12-30 15:36:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								?>