thomascube
2011-08-11 0f1faec39271130500b836d8c81ce060fc5cbc07
Fix saving and deleting LDAP contacts; skip client-side input validation for contacts, this is done server-side

2 files modified
22 ■■■■■ changed files
program/include/rcube_ldap.php 15 ●●●● patch | view | raw | blame | history
program/js/app.js 7 ●●●● patch | view | raw | blame | history
program/include/rcube_ldap.php
@@ -728,6 +728,15 @@
        $newdata = array();
        $replacedata = array();
        $deletedata = array();
        // flatten composite fields in $record
        if (is_array($record['address'])) {
          foreach ($record['address'] as $i => $struct) {
            foreach ($struct as $col => $val) {
              $record[$col][$i] = $val;
            }
          }
        }
        foreach ($this->fieldmap as $col => $fld) {
            $val = $save_cols[$col];
@@ -843,10 +852,10 @@
    {
        if (!is_array($ids)) {
            // Not an array, break apart the encoded DNs.
            $dns = explode(',', $ids);
            $ids = explode(',', $ids);
        } // end if
        foreach ($dns as $id) {
        foreach ($ids as $id) {
            $dn = base64_decode($id);
            $this->_debug("C: Delete [dn: $dn]");
            // Delete the record.
@@ -869,7 +878,7 @@
            }
        } // end foreach
        return count($dns);
        return count($ids);
    }
program/js/app.js
@@ -642,11 +642,6 @@
            if (props == 'reload') {
              form.action += '?_reload=1';
            }
            else if ((input = $("input[name='_name']", form)) &&input.length && input.val() == '') {
              alert(this.get_label('nonamewarning'));
              input.focus();
              break;
            }
            else if (this.task == 'settings' && (this.env.identities_level % 2) == 0  &&
              (input = $("input[name='_email']", form)) && input.length && !rcube_check_email(input.val())
            ) {
@@ -4427,7 +4422,7 @@
  this.set_photo_actions = function(id)
  {
    var n, buttons = this.buttons['upload-photo'];
    for (n=0; n < buttons.length; n++)
    for (n=0; n < buttons && buttons.length; n++)
      $('#'+buttons[n].id).html(this.get_label(id == '-del-' ? 'addphoto' : 'replacephoto'));
    $('#ff_photo').val(id);