Projet

Général

Profil

Paste
Télécharger (6,89 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / ldap / ldap_query / ldap_query.admin.inc @ 91af538d

1 85ad3d82 Assos Assos
<?php
2
3
/**
4
 * @file
5 32700c57 Assos Assos
 * Defines functions for administrative interface for servers.
6 85ad3d82 Assos Assos
 */
7
8
/**
9 32700c57 Assos Assos
 * @return string
10
 *   Index of ldap queries
11 85ad3d82 Assos Assos
 */
12
function ldap_query_index() {
13
14
  return ldap_query_list(NULL, TRUE);
15
16
}
17 32700c57 Assos Assos
18 85ad3d82 Assos Assos
/**
19
 * LDAP queries list.
20
 *
21
 * @param $qid
22
 *   query id.  if empty list all queries
23
 * @param $actions
24
 *   True or False indicating if query edit, delete, enable, disable, etc links should show in table
25 32700c57 Assos Assos
 *
26 85ad3d82 Assos Assos
 * @return
27
 *   The HTML table with the servers list.
28
 */
29
function ldap_query_list($qid = NULL, $actions = FALSE) {
30
31
  $ldap_queries = ldap_query_get_queries($qid, 'all');
32 32700c57 Assos Assos
  $variables = [
33 85ad3d82 Assos Assos
    'ldap_queries' => $ldap_queries,
34
    'action' => TRUE,
35
    'type' => 'table',
36 32700c57 Assos Assos
  ];
37 85ad3d82 Assos Assos
38
  $html = theme('ldap_query_list', $variables);
39
40
  return $html;
41
}
42
43
/**
44
 * Implements the LDAP query edit page.
45
 *
46
 * @param $form_state
47
 *   A form state array.
48
 * @param $op
49
 *   An operatin - add or edit.
50
 * @param $sid
51
 *   A LDAP server ID.
52
 *
53
 * @return
54
 *   The form structure.
55
 */
56
function ldap_query_admin_form($form, &$form_state, $op = NULL, $qid = NULL) {
57
  ldap_servers_module_load_include('php', 'ldap_query', 'LdapQueryAdmin.class');
58
  $server = new LdapQueryAdmin($qid);
59
  $form = $server->drupalForm($op);
60
  return $form;
61
}
62
63
/**
64
 * Validate hook for the LDAP server form.
65
 */
66
function ldap_query_admin_form_validate($form, &$form_state) {
67
  $op = drupal_strtolower($form_state['clicked_button']['#value']);
68
  ldap_servers_module_load_include('php', 'ldap_query', 'LdapQueryAdmin.class');
69
  $server = new LdapQueryAdmin($form_state['values']['qid']);
70
71
  $errors = $server->drupalFormValidate($op, $form_state['values']);
72
  foreach ($errors as $error_name => $error_text) {
73
    form_set_error($error_name, t($error_text));
74
  }
75
}
76
77
/**
78
 * Submit hook for the LDAP server form.
79
 */
80
function ldap_query_admin_form_submit($form, &$form_state) {
81
  $button = drupal_strtolower($form_state['clicked_button']['#value']);
82
  $op = ($button == 'add') ? 'add' : 'edit';
83
  $verb = ($op == 'edit') ? 'edited' : $op . 'ed';
84
  ldap_servers_module_load_include('php', 'ldap_query', 'LdapQueryAdmin.class');
85
  $query = new LdapQueryAdmin($form_state['values']['qid']);
86 32700c57 Assos Assos
  // Add form data to object and save or create.
87
  $query->drupalFormSubmit($op, $form_state['values']);
88 85ad3d82 Assos Assos
89
  if ($query->hasError() == FALSE) {
90 32700c57 Assos Assos
    drupal_set_message(t('LDAP Query %name !verb.', ['!verb' => $verb, '%name' => $query->name]), 'status');
91 85ad3d82 Assos Assos
    ldap_query_cache_clear();
92 32700c57 Assos Assos
    // If ($form_state['ldap_warnings'] && $op != 'add') {
93
    // do nothing, but don't redirect away from form.
94
    // if there are warnings, want them to see form even if its been saved
95
    // }
96
    // else {.
97
    drupal_goto(LDAP_QUERY_MENU_BASE_PATH . '/query');
98
    // }.
99 85ad3d82 Assos Assos
  }
100
  else {
101 be58a50c Assos Assos
    form_set_error($query->errorName(), $query->errorMsg());
102
    $query->clearError();
103 85ad3d82 Assos Assos
  }
104
  ldap_query_cache_clear();
105
}
106
107
/**
108
 * Implements the LDAP query delete page.
109
 *
110
 * @param $form_state
111
 *   A form state array.
112
 * @param $sid
113
 *   A LDAP server ID.
114
 *
115
 * @return
116
 *   The form structure.
117
 */
118
function ldap_query_admin_delete($form, &$form_state, $op = NULL, $qid = NULL) {
119
120
  if ($qid && ($ldap_query = ldap_query_get_queries($qid, 'all', TRUE))) {
121
    // array()
122 32700c57 Assos Assos
    $variables = [
123
      'ldap_query' => $ldap_query,
124
      'actions' => FALSE,
125
      'type' => 'detail',
126
    ];
127 85ad3d82 Assos Assos
    $form['#prefix'] = '<div>' . theme('ldap_query', $variables) . '</div>';
128 32700c57 Assos Assos
    $form['qid'] = [
129 85ad3d82 Assos Assos
      '#type' => 'hidden',
130
      '#value' => $qid,
131 32700c57 Assos Assos
    ];
132
    $form['name'] = [
133 85ad3d82 Assos Assos
      '#type' => 'hidden',
134
      '#value' => $ldap_query->name,
135 32700c57 Assos Assos
    ];
136 85ad3d82 Assos Assos
    return confirm_form(
137
      $form,
138
      'Delete Confirmation Form',
139
      LDAP_QUERY_MENU_BASE_PATH . '/query/list',
140 32700c57 Assos Assos
        '<p>' . t('Are you sure you want to delete the LDAP query named <em><strong>%name</strong></em> ?', ['%name' => $ldap_query->name]) . '</p><p>' .
141 85ad3d82 Assos Assos
        t('This action cannot be undone.') . '</p>',
142
      t('Delete'),
143
      t('Cancel')
144
    );
145
  }
146
  drupal_goto(LDAP_QUERY_MENU_BASE_PATH . '/query/list');
147
}
148
149
/**
150
 * Submit handler for the LDAP server delete page.
151
 */
152
function ldap_query_admin_delete_submit($form, &$form_state) {
153
  $values = $form_state['values'];
154
  $qid = $values['qid'];
155
  ldap_servers_module_load_include('php', 'ldap_query', 'LdapQueryAdmin.class');
156
  $ldap_query = new LdapQueryAdmin($qid);
157
  if ($values['confirm'] && $qid) {
158
    if ($result = $ldap_query->delete($qid)) {
159 32700c57 Assos Assos
      $tokens = ['%name' => $ldap_query->name, '!qid' => $qid];
160 85ad3d82 Assos Assos
      drupal_set_message(t('LDAP Server %name (query id = !qid) has been deleted.', $tokens), 'status');
161 bc175c27 Assos Assos
      watchdog('ldap_query', 'LDAP Query deleted: %name (qid = !qid) ', $tokens);
162 85ad3d82 Assos Assos
    }
163
    else {
164
      drupal_set_message(t('LDAP Query delete failed.'), 'warning');
165
    }
166
  }
167
  else {
168
    drupal_set_message(t('LDAP Query delete cancelled.'), 'status');
169
  }
170
  ldap_query_cache_clear();
171
  drupal_goto(LDAP_QUERY_MENU_BASE_PATH . '/query/list');
172
}
173
174
/**
175 32700c57 Assos Assos
 * Implements the LDAP query disable.
176 85ad3d82 Assos Assos
 *
177
 * @param $form_state
178
 *   A form state array.
179
 * @param $qid
180
 *   A LDAP query ID.
181
 *
182
 * @return
183
 *   The form structure.
184
 */
185
function ldap_query_admin_enable_disable($form, &$form_state, $action = NULL, $qid = NULL) {
186
187
  if ($ldap_query = ldap_query_get_queries($qid, 'all', TRUE)) {
188 32700c57 Assos Assos
    $variables = [
189
      'ldap_query' => $ldap_query,
190
      'actions' => FALSE,
191
      'type' => 'detail',
192
    ];
193 85ad3d82 Assos Assos
    $form['#prefix'] = "<div>" . theme('ldap_query', $variables) . "</div>";
194
195 32700c57 Assos Assos
    $form['qid'] = [
196 85ad3d82 Assos Assos
      '#type' => 'hidden',
197
      '#value' => $qid,
198 32700c57 Assos Assos
    ];
199
    $form['name'] = [
200 85ad3d82 Assos Assos
      '#type' => 'hidden',
201
      '#value' => $ldap_query->name,
202 32700c57 Assos Assos
    ];
203
    $form['action'] = [
204 85ad3d82 Assos Assos
      '#type' => 'hidden',
205
      '#value' => $action,
206 32700c57 Assos Assos
    ];
207 85ad3d82 Assos Assos
    return confirm_form(
208
      $form,
209 32700c57 Assos Assos
      t('Are you sure you want to') . t($action) . ' ' . t('the LDAP query named <em><strong>%name</strong></em>?', ['%name' => $ldap_query->name]),
210 85ad3d82 Assos Assos
      LDAP_QUERY_MENU_BASE_PATH . '/query/list',
211
      t('<p></p>'),
212
      t($action),
213
      t('Cancel')
214
    );
215
  }
216
217
}
218
219
/**
220
 * Submit hook for the LDAP server delete page.
221
 */
222
function ldap_query_admin_enable_disable_submit($form, &$form_state) {
223
  $values = $form_state['values'];
224
  $qid = $values['qid'];
225
  $status = ($values['action'] == 'enable') ? 1 : 0;
226
  if ($values['confirm'] && $qid) {
227
228
    $form_state['redirect'] = LDAP_QUERY_MENU_BASE_PATH . '/query';
229
    $ldap_query = new LdapQueryAdmin($qid);
230
231
    $ldap_query->status = $status;
232
    $ldap_query->save('edit');
233 32700c57 Assos Assos
    $tokens = ['%name' => $values['name'], '!qid' => $qid, '!action' => t($values['action']) . 'd'];
234 85ad3d82 Assos Assos
    drupal_set_message(t('LDAP Query Configuration %name (query id = !qid) has been !action.', $tokens));
235
    $message = t('LDAP Query !action: %name (qid = !qid) ', $tokens);
236 bc175c27 Assos Assos
    watchdog('ldap_query', $message);
237 85ad3d82 Assos Assos
238
  }
239
240
}
241
242 32700c57 Assos Assos
/**
243
 *
244
 */
245 85ad3d82 Assos Assos
function ldap_query_test($qid) {
246
247
  $ldap_query = ldap_query_get_queries($qid, 'all', TRUE);
248
  $results = $ldap_query->query();
249 32700c57 Assos Assos
  $display = theme('ldap_query_results', ['results' => $results, 'ldap_query' => $ldap_query, 'show_query' => TRUE]);
250 85ad3d82 Assos Assos
251
  return $display;
252
253
}