changed error message handling in posixGroup
This commit is contained in:
parent
25f5991ec0
commit
0aa6874931
|
@ -57,11 +57,12 @@ class baseModule {
|
|||
/** contains all ldap attributes which are loaded from ldap */
|
||||
var $orig;
|
||||
|
||||
/** contains the last error messages of the module.
|
||||
* Ths variable is needed because we don't want to make
|
||||
* unnecesarry checks when a attributes wasn't changed */
|
||||
/** contains all error messages wich were troggered*/
|
||||
var $errors;
|
||||
|
||||
/** contains all error messages of a module */
|
||||
var $errormessages;
|
||||
|
||||
/**
|
||||
* Creates a new base module class
|
||||
*
|
||||
|
@ -80,6 +81,8 @@ class baseModule {
|
|||
*/
|
||||
function init($base) {
|
||||
$this->base = $base;
|
||||
// load error messages
|
||||
$this->loadErrorMessages();
|
||||
// Create Arrays with ldap attributes
|
||||
$this->attributes =& $_SESSION[$this->base]->get_module_attributes(get_class($this));
|
||||
$this->orig =& $_SESSION[$this->base]->get_module_attributes(get_class($this), true);
|
||||
|
@ -97,6 +100,7 @@ class baseModule {
|
|||
*/
|
||||
function load_ldap_attributes($attr) {
|
||||
// Load attributes which are displayed
|
||||
$objectClassName = $this->attributes['objectClass'];
|
||||
// unset count entries
|
||||
unset ($attr['count']);
|
||||
$attributes = array_keys($attr);
|
||||
|
@ -114,6 +118,10 @@ class baseModule {
|
|||
}
|
||||
}
|
||||
}
|
||||
$this->attributes['objectClass'] = $objectClassName;
|
||||
if (in_array($objectClassName[0], $attr['objectClass']))
|
||||
$this->orig['objectClass'] = $objectClassName;
|
||||
else $this->orig['objectClass'] = array();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -134,6 +142,11 @@ class baseModule {
|
|||
return $this->scope;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function is needed to avoid error messages */
|
||||
function loadErrorMessages() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if this module fits for the current scope.
|
||||
*
|
||||
|
|
|
@ -35,6 +35,23 @@ class posixGroup extends baseModule {
|
|||
parent::baseModule($scope);
|
||||
}
|
||||
|
||||
/** this functin fills the error message array with messages
|
||||
**/
|
||||
function loadErrorMessages() {
|
||||
//$this->errormessages['minGID'][0] = array('ERROR', _('Minimum GID number'), _('Minimum GID number is invalid or empty!'));
|
||||
//$this->errormessages['maxGID'][0] = array('ERROR', _('Maximum GID number'), _('Maximum GID number is invalid or empty!'));
|
||||
//$this->errormessages['cmpGID'][1] = array('ERROR', _('Maximum GID number'), _('Maximum GID number must be greater than minimum GID number!'));
|
||||
$this->errormessages['userPassword'][0] = array('ERROR', _('Password'), _('Please enter the same password in both password-fields.'));
|
||||
$this->errormessages['userPassword'][1] = array('ERROR', _('Password'), _('Password contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and #*,.;:_-+!$%&/|?{[()]}= !'));
|
||||
$this->errormessages['gidNumber'][0] = array('INFO', _('GID number'), _('GID number has changed. Please select checkbox to change GID number of users and hosts.'));
|
||||
$this->errormessages['gidNumber'][2] = array('WARN', _('ID-Number'), _('It is possible that this ID-number is reused. This can cause several problems because files with old permissions might still exist. To avoid this warning set maxUID to a higher value.'));
|
||||
$this->errormessages['gidNumber'][3] = array('ERROR', _('ID-Number'), _('No free ID-Number!'));
|
||||
$this->errormessages['gidNumber'][4] = array('ERROR', _('ID-Number'), _('ID is already in use'));
|
||||
$this->errormessages['cn'][0] = array('WARN', _('Groupname'), _('You are using a capital letters. This can cause problems because windows isn\'t case-sensitive.'));
|
||||
$this->errormessages['cn'][1] = array('WARN', _('Groupname'), _('Groupname in use. Selected next free groupname.'));
|
||||
$this->errormessages['cn'][2] = array('ERROR', _('Groupname'), _('Groupname contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns meta data that is interpreted by parent class
|
||||
*
|
||||
|
@ -347,8 +364,6 @@ class posixGroup extends baseModule {
|
|||
/* Write variables into object and do some regexp checks
|
||||
*/
|
||||
function proccess_attributes($post, $profile=false) {
|
||||
if ($this->orig['gidNumber'][0]!='' && $post['gidNumber']!=$this->attributes['gidNumber'][0])
|
||||
$errors['gidNumber'][] = array('INFO', _('GID number'), _('GID number has changed. Please select checkbox to change GID number of users and hosts.'));
|
||||
// Load attributes
|
||||
$this->attributes['description'][0] = $post['description'];
|
||||
if ($post['userPassword_no']) $this->userPassword_no=true;
|
||||
|
@ -360,12 +375,12 @@ class posixGroup extends baseModule {
|
|||
else $this->changegids=false;
|
||||
if (isset($post['userPassword'])) {
|
||||
if ($post['userPassword'] != $post['userPassword2']) {
|
||||
$errors['userPassword'][] = array('ERROR', _('Password'), _('Please enter the same password in both password-fields.'));
|
||||
$errors['userPassword'][] = $this->errormessages['userPassword'][0];
|
||||
unset ($post['userPassword2']);
|
||||
}
|
||||
else $this->userPassword($post['userPassword']);
|
||||
if (!ereg('^([a-z]|[A-Z]|[0-9]|[\|]|[\#]|[\*]|[\,]|[\.]|[\;]|[\:]|[\_]|[\-]|[\+]|[\!]|[\%]|[\&]|[\/]|[\?]|[\{]|[\[]|[\(]|[\)]|[\]]|[\}])*$', $this->userPassword()))
|
||||
$errors['userPassword'][] = array('ERROR', _('Password'), _('Password contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and #*,.;:_-+!$%&/|?{[()]}= !'));
|
||||
$errors['userPassword'][] = $this->errormessages['userPassword'][1];
|
||||
}
|
||||
if ($post['genpass']) $this->userPassword(genpasswd());
|
||||
if ($this->attributes['gidNumber'][0]!=$post['gidNumber'] || ($this->errors['gidNumber'][0]='ERROR')) {
|
||||
|
@ -398,10 +413,10 @@ class posixGroup extends baseModule {
|
|||
$i = intval($minID);
|
||||
while (in_array($i, $gids)) $i++;
|
||||
if ($i>$maxID)
|
||||
$errors['gidNumber'][] = array('ERROR', _('ID-Number'), _('No free ID-Number!'));
|
||||
$errors['gidNumber'][] = $this->errormessages['gidNumber'][3];
|
||||
else {
|
||||
$this->attributes['gidNumber'][0] = $i;
|
||||
$errors['gidNumber'][] = array('WARN', _('ID-Number'), _('It is possible that this ID-number is reused. This can cause several problems because files with old permissions might still exist. To avoid this warning set maxUID to a higher value.'));
|
||||
$errors['gidNumber'][] = $this->errormessages['gidNumber'][2];
|
||||
}
|
||||
}
|
||||
else $this->attributes['gidNumber'][0] = $minID;
|
||||
|
@ -420,7 +435,7 @@ class posixGroup extends baseModule {
|
|||
if ((in_array($this->attributes['gidNumber'][0], $gids)) && $this->orig['gidNumber'][0]=='') $errors['gidNumber'][] = array('ERROR', _('ID-Number'), _('ID is already in use'));
|
||||
// id-number is in use, account is existing account and id-number is not used by itself
|
||||
if ((in_array($this->attributes['gidNumber'][0], $gids)) && $this->orig['gidNumber'][0]!='' && ($this->orig['gidNumber'][0] != $this->attributes['gidNumber'][0]) ) {
|
||||
$errors['gidNumber'][] = array('ERROR', _('ID-Number'), _('ID is already in use'));
|
||||
$errors['gidNumber'][] = $this->errormessages['gidNumber'][4];
|
||||
$this->attributes['gidNumber'][0] = $this->orig['gidNumber'][0];
|
||||
}
|
||||
}
|
||||
|
@ -429,10 +444,10 @@ class posixGroup extends baseModule {
|
|||
if ($this->attributes['cn'][0]!=$post['cn'] || ($this->errors['cn'][0]='ERROR')) {
|
||||
$this->attributes['cn'][0] = $post['cn'];
|
||||
if (($this->attributes['cn'][0] != $post['cn']) && ereg('[A-Z]$', $post['cn']))
|
||||
$errors['cn'][] = array('WARN', _('Groupname'), _('You are using a capital letters. This can cause problems because windows isn\'t case-sensitive.'));
|
||||
$errors['cn'][] = $this->errormessages['cn'][0];
|
||||
// Check if Groupname contains only valid characters
|
||||
if ( !ereg('^([a-z]|[A-Z]|[0-9]|[.]|[-]|[_])+$', $this->attributes['cn'][0]))
|
||||
$errors['cn'][] = array('ERROR', _('Groupname'), _('Groupname contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and .-_ !'));
|
||||
$errors['cn'][] = $this->errormessages['cn'][2];
|
||||
// Create automatic useraccount with number if original user already exists
|
||||
// Reset name to original name if new name is in use
|
||||
// Set username back to original name if new username is in use
|
||||
|
@ -472,8 +487,11 @@ class posixGroup extends baseModule {
|
|||
}
|
||||
// Show warning if lam has changed username
|
||||
if ($this->attributes['cn'][0] != $post['cn']) {
|
||||
$errors['cn'][] = array('WARN', _('Groupname'), _('Groupname in use. Selected next free groupname.'));
|
||||
$errors['cn'][] = $this->errormessages['cn'][0];
|
||||
}
|
||||
// show info when gidnumber has changed
|
||||
if (($this->orig['gidNumber'][0]!=$this->attributes['gidNumber'][0]) && $this->orig['gidNumber'][0]!='' && $post['gidNumber']!=$this->attributes['gidNumber'][0])
|
||||
$errors['gidNumber'][] = $this->errormessages['gidNumber'][0];
|
||||
}
|
||||
}
|
||||
// Return error-messages
|
||||
|
|
Loading…
Reference in New Issue