<?php
// $Id: ldapdata.install,v 1.9 2009/07/20 19:35:40 miglius Exp $

/**
 * @file
 * ldapdata module installation and upgrade code.
 */

//////////////////////////////////////////////////////////////////////////////
// Core API hooks

/**
 * Implementation of hook_install().
 */
function ldapdata_install() {
  // We're adding to an existing table, not creating a new one.
  $ret = array();

  db_add_field($ret, 'ldapauth', 'ldapdata_binddn', array(
    'type' => 'varchar',
    'length' => 255,
  ));
  db_add_field($ret, 'ldapauth', 'ldapdata_bindpw', array(
    'type' => 'varchar',
    'length' => 255,
  ));
  db_add_field($ret, 'ldapauth', 'ldapdata_rwattrs', array(
    'type' => 'text',
    'not null' => FALSE,
  ));
  db_add_field($ret, 'ldapauth', 'ldapdata_roattrs', array(
    'type' => 'text',
    'not null' => FALSE,
  ));
  db_add_field($ret, 'ldapauth', 'ldapdata_mappings', array(
    'type' => 'text',
    'not null' => FALSE,
  ));
  db_add_field($ret, 'ldapauth', 'ldapdata_attrs', array(
    'type' => 'text',
    'not null' => FALSE,
  ));
  db_add_field($ret, 'ldapauth', 'ldapdata_filter_php', array(
    'type' => 'text',
    'not null' => FALSE,
  ));

  return $ret;
}

/**
 * Implementation of hook_uninstall().
 */
function ldapdata_uninstall() {
  // We're removing fileds from an existing table, not deleting a whole one.
  $ret = array();

  db_drop_field($ret, 'ldapauth', 'ldapdata_binddn');
  db_drop_field($ret, 'ldapauth', 'ldapdata_bindpw');
  db_drop_field($ret, 'ldapauth', 'ldapdata_rwattrs');
  db_drop_field($ret, 'ldapauth', 'ldapdata_roattrs');
  db_drop_field($ret, 'ldapauth', 'ldapdata_mappings');
  db_drop_field($ret, 'ldapauth', 'ldapdata_attrs');
  db_drop_field($ret, 'ldapauth', 'ldapdata_filter_php');

  // Remove variables
  variable_del('ldapdata_sync');

  return $ret;
}

function ldapdata_update_6001() {
  $ret = array();
  db_add_field($ret, 'ldapauth', 'ldapdata_attrs', array(
    'type' => 'text',
    'not null' => FALSE,
  ));
  db_add_field($ret, 'ldapauth', 'ldapdata_filter_php', array(
    'type' => 'text',
    'not null' => FALSE,
  ));
  return $ret;
}

function ldapdata_update_6002() {
  $ret = array();
  db_change_field($ret, 'ldapauth', 'ldapdata_rwattrs', 'ldapdata_rwattrs', array(
    'type' => 'text',
    'not null' => FALSE,
  ));
  db_change_field($ret, 'ldapauth', 'ldapdata_roattrs', 'ldapdata_roattrs', array(
    'type' => 'text',
    'not null' => FALSE,
  ));
  db_change_field($ret, 'ldapauth', 'ldapdata_mappings', 'ldapdata_mappings', array(
    'type' => 'text',
    'not null' => FALSE,
  ));
  return $ret;
}

