mail_user.tform.php 9.11 KB
Newer Older
tbrehm's avatar
tbrehm committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php

/*
	Form Definition

	Tabledefinition

	Datatypes:
	- INTEGER (Forces the input to Int)
	- DOUBLE
	- CURRENCY (Formats the values to currency notation)
	- VARCHAR (no format check, maxlength: 255)
	- TEXT (no format check)
	- DATE (Dateformat, automatic conversion to timestamps)

	Formtype:
	- TEXT (Textfield)
	- TEXTAREA (Textarea)
	- PASSWORD (Password textfield, input is not shown when edited)
	- SELECT (Select option field)
	- RADIO
	- CHECKBOX
	- CHECKBOXARRAY
	- FILE

	VALUE:
	- Wert oder Array

	Hint:
	The ID field of the database table is not part of the datafield definition.
	The ID field must be always auto incement (int or bigint).
32

33
34
35
36
	Search:
	- searchable = 1 or searchable = 2 include the field in the search
	- searchable = 1: this field will be the title of the search result
	- searchable = 2: this field will be included in the description of the search result
tbrehm's avatar
tbrehm committed
37
38
39


*/
40
global $app;
41
42
$app->uses('getconf');
$global_config = $app->getconf->get_global_config();
tbrehm's avatar
tbrehm committed
43

44
45
46
47
48
49
50
51
52
53
$form["title"]    = "Mailbox";
$form["description"]  = "";
$form["name"]    = "mail_user";
$form["action"]   = "mail_user_edit.php";
$form["db_table"]  = "mail_user";
$form["db_table_idx"] = "mailuser_id";
$form["db_history"]  = "yes";
$form["tab_default"] = "mailuser";
$form["list_default"] = "mail_user_list.php";
$form["auth"]   = 'yes'; // yes / no
tbrehm's avatar
tbrehm committed
54
55
56
57
58
59
60

$form["auth_preset"]["userid"]  = 0; // 0 = id of the user, > 0 id must match with id of current user
$form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user
$form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete
$form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete
$form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete

61
$form["tabs"]['mailuser'] = array(
62
63
64
65
66
67
68
	'title'  => "Mailbox",
	'width'  => 100,
	'template'  => "templates/mail_user_mailbox_edit.htm",
	'fields'  => array (
		//#################################
		// Begin Datatable fields
		//#################################
tbrehm's avatar
tbrehm committed
69
		'server_id' => array (
70
71
72
73
74
75
			'datatype' => 'INTEGER',
			'formtype' => 'TEXT',
			'default' => '',
			'value'  => '',
			'width'  => '30',
			'maxlength' => '255'
tbrehm's avatar
tbrehm committed
76
77
		),
		'email' => array (
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
			'datatype' => 'VARCHAR',
			'formtype' => 'TEXT',
			'filters'   => array( 0 => array( 'event' => 'SAVE',
					'type' => 'IDNTOASCII'),
				1 => array( 'event' => 'SHOW',
					'type' => 'IDNTOUTF8'),
				2 => array( 'event' => 'SAVE',
					'type' => 'TOLOWER')
			),
			'validators' => array (  0 => array ( 'type' => 'ISEMAIL',
					'errmsg'=> 'email_error_isemail'),
				1 => array ( 'type' => 'UNIQUE',
					'errmsg'=> 'email_error_unique'),
			),
			'default' => '',
			'value'  => '',
			'width'  => '30',
			'maxlength' => '255',
96
			'searchable' => 1
tbrehm's avatar
tbrehm committed
97
		),
98
99
100
101
102
103
104
105
106
107
108
109
110
111
		'login' => array (
			'datatype'  => 'VARCHAR',
			'formtype'  => 'TEXT',
			'filters'   => array( 0 => array( 'event' => 'SAVE',
					'type' => 'IDNTOASCII'),
				1 => array( 'event' => 'SHOW',
					'type' => 'IDNTOUTF8'),
				2 => array( 'event' => 'SAVE',
					'type' => 'TOLOWER')
			),
			'validators'  => array (
				0 => array (  'type'  => 'UNIQUE',
					'errmsg'=> 'login_error_unique'),
				1 => array (  'type'  => 'REGEX',
112
					'regex' => '/^[_a-z0-9][\w\.\-_\+@]{1,63}$/',
113
114
115
116
117
118
119
					'errmsg'=> 'login_error_regex'),
			),
			'default' => '',
			'value'   => '',
			'width'   => '30',
			'maxlength' => '255'
		),
tbrehm's avatar
tbrehm committed
120
		'password' => array (
121
122
			'datatype' => 'VARCHAR',
			'formtype' => 'PASSWORD',
tbrehm's avatar
tbrehm committed
123
			'encryption'=> 'CRYPT',
124
125
126
127
			'default' => '',
			'value'  => '',
			'width'  => '30',
			'maxlength' => '255'
tbrehm's avatar
tbrehm committed
128
		),
129
		'name' => array (
130
131
132
133
134
135
			'datatype' => 'VARCHAR',
			'formtype' => 'TEXT',
			'default' => '',
			'value'  => '',
			'width'  => '30',
			'maxlength' => '255',
136
			'searchable' => 2
137
		),
tbrehm's avatar
tbrehm committed
138
		'quota' => array (
139
140
141
142
143
144
145
146
147
148
149
150
			'datatype' => 'VARCHAR',
			'formtype' => 'TEXT',
			'validators' => array (  1 => array ( 'type' => 'ISINT',
					'errmsg'=> 'quota_error_isint'),
				0 => array ( 'type' => 'REGEX',
					'regex' => '/^([0-9]{1,})$/',
					'errmsg'=> 'quota_error_value'),
			),
			'default' => '-1',
			'value'  => '',
			'width'  => '30',
			'maxlength' => '255'
tbrehm's avatar
tbrehm committed
151
		),
152
		'cc' => array (
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
			'datatype' => 'VARCHAR',
			'formtype' => 'TEXT',
			'filters'   => array( 0 => array( 'event' => 'SAVE',
					'type' => 'IDNTOASCII'),
				1 => array( 'event' => 'SHOW',
					'type' => 'IDNTOUTF8'),
				2 => array( 'event' => 'SAVE',
					'type' => 'TOLOWER')
			),
			'validators' => array (  0 => array ( 'type' => 'REGEX',
					'regex' => '/^(\w+[\w\.\-\+]*\w{0,}@\w+[\w.-]*\.[a-z\-]{2,10}){0,1}$/i',
					'errmsg'=> 'cc_error_isemail'),
			),
			'default' => '',
			'value'  => '',
			'width'  => '30',
			'maxlength' => '255'
170
		),
tbrehm's avatar
tbrehm committed
171
		'maildir' => array (
172
173
174
175
176
177
			'datatype' => 'VARCHAR',
			'formtype' => 'TEXT',
			'default' => '',
			'value'  => '',
			'width'  => '30',
			'maxlength' => '255'
tbrehm's avatar
tbrehm committed
178
		),
tbrehm's avatar
tbrehm committed
179
		'homedir' => array (
180
181
182
183
184
185
			'datatype' => 'VARCHAR',
			'formtype' => 'TEXT',
			'default' => '',
			'value'  => '',
			'width'  => '30',
			'maxlength' => '255'
tbrehm's avatar
tbrehm committed
186
187
		),
		'uid' => array (
188
189
190
191
192
193
			'datatype' => 'INTEGER',
			'formtype' => 'TEXT',
			'default' => '',
			'value'  => '',
			'width'  => '10',
			'maxlength' => '10'
tbrehm's avatar
tbrehm committed
194
195
		),
		'gid' => array (
196
197
198
199
200
201
			'datatype' => 'INTEGER',
			'formtype' => 'TEXT',
			'default' => '',
			'value'  => '',
			'width'  => '10',
			'maxlength' => '10'
tbrehm's avatar
tbrehm committed
202
203
		),
		'postfix' => array (
204
205
206
207
			'datatype' => 'VARCHAR',
			'formtype' => 'CHECKBOX',
			'default' => 'y',
			'value'  => array(1 => 'y', 0 => 'n')
tbrehm's avatar
tbrehm committed
208
		),
209
		/*
tbrehm's avatar
tbrehm committed
210
		'access' => array (
tbrehm's avatar
tbrehm committed
211
			'datatype'	=> 'VARCHAR',
tbrehm's avatar
tbrehm committed
212
			'formtype'	=> 'CHECKBOX',
tbrehm's avatar
tbrehm committed
213
			'default'	=> 'y',
tbrehm's avatar
tbrehm committed
214
			'value'		=> array(1 => 'y',0 => 'n')
tbrehm's avatar
tbrehm committed
215
		),
216
217
		*/
		'disableimap' => array (
218
219
220
221
			'datatype' => 'VARCHAR',
			'formtype' => 'CHECKBOX',
			'default' => 'n',
			'value'  => array(1 => 'y', 0 => 'n')
222
223
		),
		'disablepop3' => array (
224
225
226
227
			'datatype' => 'VARCHAR',
			'formtype' => 'CHECKBOX',
			'default' => 'n',
			'value'  => array(1 => 'y', 0 => 'n')
228
		),
229
230
231
		//#################################
		// END Datatable fields
		//#################################
tbrehm's avatar
tbrehm committed
232
233
234
	)
);

235
236
237
238
239
240
if($global_config['mail']['mail_password_onlyascii'] == 'y') {
	$form['tabs']['mailuser']['fields']['password']['validators'] = array( 0 => array( 'type' => 'ISASCII',
		'errmsg' => 'email_error_isascii')
	);
}

241
$form["tabs"]['autoresponder'] = array (
242
243
244
245
246
247
248
	'title'  => "Autoresponder",
	'width'  => 100,
	'template'  => "templates/mail_user_autoresponder_edit.htm",
	'fields'  => array (
		//#################################
		// Begin Datatable fields
		//#################################
249
250
251
252
253
		'autoresponder_subject' => array (
			'datatype'  => 'VARCHAR',
			'formtype'  => 'TEXT',
			'default'   => 'Out of office reply',
			'value'     => '',
254
255
			'width'  => '30',
			'maxlength' => '255'
256
257
		),
		'autoresponder_text' => array (
258
259
260
261
262
263
			'datatype' => 'TEXT',
			'formtype' => 'TEXTAREA',
			'default' => '',
			'value'  => '',
			'cols'  => '30',
			'rows'  => '15'
264
265
		),
		'autoresponder' => array (
266
267
268
269
			'datatype' => 'VARCHAR',
			'formtype' => 'CHECKBOX',
			'default' => 'n',
			'value'  => array(1 => 'y', 0 => 'n')
270
271
		),
		'autoresponder_start_date' => array (
272
273
			'datatype' => 'DATETIME',
			'formtype' => 'DATETIME',
274
			'validators'=> array ( 0 => array ( 'type' => 'CUSTOM',
275
276
277
					'class' => 'validate_autoresponder',
					'function' => 'start_date',
					'errmsg'=> 'autoresponder_start_date_is_required'),
278
279
280
			)
		),
		'autoresponder_end_date' => array (
281
282
283
284
285
286
287
			'datatype' => 'DATETIME',
			'formtype' => 'DATETIME',
			'validators'=> array (  0 => array ( 'type' => 'CUSTOM',
					'class' => 'validate_autoresponder',
					'function' => 'end_date',
					'errmsg'=> 'autoresponder_end_date_isgreater'),
			),
288
		),
289
290
291
		//#################################
		// END Datatable fields
		//#################################
292
293
	)
);
294

295
$form["tabs"]['filter_records'] = array (
296
297
298
299
300
301
302
	'title'  => "Mail Filter",
	'width'  => 100,
	'template'  => "templates/mail_user_mailfilter_edit.htm",
	'fields'  => array (
		//#################################
		// Begin Datatable fields
		//#################################
303
		'move_junk' => array (
304
305
306
307
			'datatype' => 'VARCHAR',
			'formtype' => 'CHECKBOX',
			'default' => 'n',
			'value'  => array(0 => 'n', 1 => 'y')
308
		),
309
310
311
		//#################################
		// END Datatable fields
		//#################################
312
313
	),
	'plugins' => array (
314
315
316
		'filter_records' => array (
			'class'   => 'plugin_listview',
			'options' => array(
317
318
319
				'listdef' => 'list/mail_user_filter.list.php',
				'sqlextwhere' => "mailuser_id = ".@$app->functions->intval(@$_REQUEST['id']),
				'sql_order_by' => "ORDER BY rulename"
320
			)
321
		)
322
323
	)
);
324

325
326
if($_SESSION["s"]["user"]["typ"] == 'admin') {

327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
	$form["tabs"]['mailfilter'] = array (
		'title'  => "Custom Rules",
		'width'  => 100,
		'template'  => "templates/mail_user_custom_rules_edit.htm",
		'fields'  => array (
			//#################################
			// Begin Datatable fields
			//#################################
			'custom_mailfilter' => array (
				'datatype' => 'TEXT',
				'formtype' => 'TEXTAREA',
				'default' => '',
				'value'  => '',
				'cols'  => '30',
				'rows'  => '15'
			),
			//#################################
			// END Datatable fields
			//#################################
		)
	);
348
349
350

}

351

352
?>