Changeset 19fccd8 in github
- Timestamp:
- Apr 7, 2012 3:47:38 AM (14 months ago)
- Branches:
- master, HEAD, courier-fix, dev-browser-capabilities, pdo, release-0.8
- Children:
- 8e8ae79
- Parents:
- 187e9f4
- File:
-
- 1 edited
-
program/include/rcube_ldap.php (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
program/include/rcube_ldap.php
r13db9ee r19fccd8 128 128 } 129 129 } 130 else if ($this->coltypes['address']) 130 else if ($this->coltypes['address']) { 131 131 $this->coltypes['address'] = array('type' => 'textarea', 'childs' => null, 'limit' => 1, 'size' => 40); 132 } 132 133 133 134 // make sure 'required_fields' is an array 134 if (!is_array($this->prop['required_fields'])) 135 if (!is_array($this->prop['required_fields'])) { 135 136 $this->prop['required_fields'] = (array) $this->prop['required_fields']; 136 137 foreach ($this->prop['required_fields'] as $key => $val) 137 } 138 139 // make sure LDAP_rdn field is required 140 if (!empty($this->prop['LDAP_rdn']) && !in_array($this->prop['LDAP_rdn'], $this->prop['required_fields'])) { 141 $this->prop['required_fields'][] = $this->prop['LDAP_rdn']; 142 } 143 144 foreach ($this->prop['required_fields'] as $key => $val) { 138 145 $this->prop['required_fields'][$key] = $this->_attr_name(strtolower($val)); 146 } 139 147 140 148 // Build sub_fields filter … … 963 971 public function validate(&$save_data, $autofix = false) 964 972 { 973 // validate e-mail addresses 974 if (!parent::validate($save_data, $autofix)) { 975 return false; 976 } 977 965 978 // check for name input 966 979 if (empty($save_data['name'])) { … … 973 986 $ldap_data = $this->_map_data($save_data); 974 987 foreach ($this->prop['required_fields'] as $fld) { 975 if (!isset($ldap_data[$fld]) ) {988 if (!isset($ldap_data[$fld]) || $ldap_data[$fld] === '') { 976 989 $missing[$fld] = 1; 977 990 } … … 982 995 if ($autofix) { 983 996 $reverse_map = array_flip($this->fieldmap); 984 $name_parts = preg_split('/[\s,.]+/', $save_data['name']); 985 if ($missing['sn']) { 986 $sn_field = $reverse_map['sn']; 987 $save_data[$sn_field] = array_pop ($name_parts); 988 } 989 if ($missing[($fn_field = $this->fieldmap['firstname'])]) { 997 $name_parts = preg_split('/[\s,.]+/', $save_data['name']); 998 $sn_field = $this->fieldmap['surname']; 999 $fn_field = $this->fieldmap['firstname']; 1000 1001 if ($sn_field && $missing[$sn_field]) { 1002 $save_data['surname'] = array_pop($name_parts); 1003 unset($missing[$sn_field]); 1004 } 1005 1006 if ($fn_field && $missing[$fn_field]) { 990 1007 $save_data['firstname'] = array_shift($name_parts); 991 } 992 993 return $this->validate($save_data, false); 1008 unset($missing[$fn_field]); 1009 } 994 1010 } 995 1011 996 1012 // TODO: generate message saying which fields are missing 997 $this->set_error(self::ERROR_VALIDATE, 'formincomplete'); 998 return false; 999 } 1000 1001 // validate e-mail addresses 1002 return parent::validate($save_data, $autofix); 1013 if (!empty($missing)) { 1014 $this->set_error(self::ERROR_VALIDATE, 'formincomplete'); 1015 return false; 1016 } 1017 } 1018 1019 return true; 1003 1020 } 1004 1021
Note: See TracChangeset
for help on using the changeset viewer.
