]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - modules/Users/vardefs.php
Release 6.5.3
[Github/sugarcrm.git] / modules / Users / vardefs.php
1 <?php
2 if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
3 /*********************************************************************************
4  * SugarCRM Community Edition is a customer relationship management program developed by
5  * SugarCRM, Inc. Copyright (C) 2004-2012 SugarCRM Inc.
6  * 
7  * This program is free software; you can redistribute it and/or modify it under
8  * the terms of the GNU Affero General Public License version 3 as published by the
9  * Free Software Foundation with the addition of the following permission added
10  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
11  * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
12  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
13  * 
14  * This program is distributed in the hope that it will be useful, but WITHOUT
15  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16  * FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
17  * details.
18  * 
19  * You should have received a copy of the GNU Affero General Public License along with
20  * this program; if not, see http://www.gnu.org/licenses or write to the Free
21  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
22  * 02110-1301 USA.
23  * 
24  * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
25  * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
26  * 
27  * The interactive user interfaces in modified source and object code versions
28  * of this program must display Appropriate Legal Notices, as required under
29  * Section 5 of the GNU Affero General Public License version 3.
30  * 
31  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
32  * these Appropriate Legal Notices must retain the display of the "Powered by
33  * SugarCRM" logo. If the display of the logo is not reasonably feasible for
34  * technical reasons, the Appropriate Legal Notices must display the words
35  * "Powered by SugarCRM".
36  ********************************************************************************/
37
38 $dictionary['User'] = array(
39     'table' => 'users',
40     'fields' => array(
41         'id' => array(
42             'name' => 'id',
43             'vname' => 'LBL_ID',
44             'type' => 'id',
45             'required' => true,
46         ) ,
47         'user_name' => array(
48             'name' => 'user_name',
49             'vname' => 'LBL_USER_NAME',
50             'type' => 'user_name',
51             'dbType' => 'varchar',
52             'len' => '60',
53             'importable' => 'required',
54             'required' => true,
55             'studio' => array(
56                'no_duplicate' => true,
57                'editview' => false,
58                'detailview' => true,
59                'quickcreate' => false,
60                'basic_search' => false,
61                'advanced_search' => false,
62                //BEGIN SUGARCRM flav=pro
63                'wirelesseditview' => false,
64                'wirelessdetailview' => true,
65                'wirelesslistview' => false,
66                'wireless_basic_search' => false,
67                'wireless_advanced_search' => false,
68                'rollup' => false,
69                //END SUGARCRM flav=pro
70                ),
71         ) ,
72         'user_hash' => array(
73             'name' => 'user_hash',
74             'vname' => 'LBL_USER_HASH',
75             'type' => 'varchar',
76             'len' => '255',
77             'reportable' => false,
78             'importable' => 'false',
79             'sensitive' => true,
80             'studio' => array(
81                 'no_duplicate'=>true,
82                 'listview' => false,
83                 'searchview'=>false,
84             ),
85         ) ,
86         'system_generated_password' => array(
87             'name' => 'system_generated_password',
88             'vname' => 'LBL_SYSTEM_GENERATED_PASSWORD',
89             'type' => 'bool',
90             'required' => true,
91             'reportable' => false,
92             'massupdate' => false,
93             'studio' => array(
94                 'listview' => false,
95                 'searchview'=>false,
96                 'editview'=>false,
97                 'quickcreate'=>false,
98                 'wirelesseditview' => false,
99             ),
100         ) ,
101
102         'pwd_last_changed' => array(
103             'name' => 'pwd_last_changed',
104             'vname' => 'LBL_PSW_MODIFIED',
105             'type' => 'datetime',
106             'required' => false,
107             'massupdate' => false,
108             'studio' => array('formula' => false),
109         ) ,
110         /**
111          * authenticate_id is used by authentication plugins so they may place a quick lookup key for looking up a given user after authenticating through the plugin
112          */
113         'authenticate_id' => array(
114             'name' => 'authenticate_id',
115             'vname' => 'LBL_AUTHENTICATE_ID',
116             'type' => 'varchar',
117             'len' => '100',
118             'reportable' => false,
119             'importable' => 'false',
120             'studio' => array('listview' => false, 'searchview'=>false, 'related' => false),
121         ) ,
122         /**
123          * sugar_login will force the user to use sugar authentication
124          * regardless of what authentication the system is configured to use
125          */
126         'sugar_login' => array(
127             'name' => 'sugar_login',
128             'vname' => 'LBL_SUGAR_LOGIN',
129             'type' => 'bool',
130             'default' => '1',
131             'reportable' => false,
132             'massupdate' => false,
133             'importable' => false,
134             'studio' => array('listview' => false, 'searchview'=>false, 'formula' => false),
135         ) ,
136         'first_name' => array(
137             'name' => 'first_name',
138             'vname' => 'LBL_FIRST_NAME',
139             'dbType' => 'varchar',
140             'type' => 'name',
141             'len' => '30',
142         ) ,
143         'last_name' => array(
144             'name' => 'last_name',
145             'vname' => 'LBL_LAST_NAME',
146             'dbType' => 'varchar',
147             'type' => 'name',
148             'len' => '30',
149             'importable' => 'required',
150                 'required' => true,
151         ) ,
152         'full_name' => array(
153             'name' => 'full_name',
154             'rname' => 'full_name',
155             'vname' => 'LBL_NAME',
156             'type' => 'name',
157             'fields' => array(
158                 'first_name',
159                 'last_name'
160             ) ,
161             'source' => 'non-db',
162             'sort_on' => 'last_name',
163             'sort_on2' => 'first_name',
164             'db_concat_fields' => array(
165                 0 => 'first_name',
166                 1 => 'last_name'
167             ) ,
168             'len' => '510',
169             'studio' => array('formula' => false),
170         ) ,
171         'name' => array(
172             'name' => 'name',
173             'rname' => 'name',
174             'vname' => 'LBL_NAME',
175             'type' => 'varchar',
176             'source' => 'non-db',
177             'len' => '510',
178             'db_concat_fields' => array(
179                 0 => 'first_name',
180                 1 => 'last_name'
181             ) ,
182             'importable' => 'false',
183         ) ,
184         'is_admin' => array(
185             'name' => 'is_admin',
186             'vname' => 'LBL_IS_ADMIN',
187             'type' => 'bool',
188             'default' => '0',
189             'studio' => array('listview' => false, 'searchview'=>false, 'related' => false),
190         ) ,
191         'external_auth_only' => array(
192             'name' => 'external_auth_only',
193             'vname' => 'LBL_EXT_AUTHENTICATE',
194             'type' => 'bool',
195             'reportable' => false,
196             'massupdate' => false,
197             'default' => '0',
198             'studio' => array('listview' => false, 'searchview'=>false, 'related' => false),
199         ) ,
200         'receive_notifications' => array(
201             'name' => 'receive_notifications',
202             'vname' => 'LBL_RECEIVE_NOTIFICATIONS',
203             'type' => 'bool',
204             'default' => '1',
205             'massupdate' => false,
206             'studio' => false,
207         ) ,
208         'description' => array(
209             'name' => 'description',
210             'vname' => 'LBL_DESCRIPTION',
211             'type' => 'text',
212         ) ,
213         'date_entered' => array(
214             'name' => 'date_entered',
215             'vname' => 'LBL_DATE_ENTERED',
216             'type' => 'datetime',
217             'required' => true,
218             'studio' => array('editview' => false, 'quickcreate' => false, 'wirelesseditview' => false),
219         ) ,
220         'date_modified' => array(
221             'name' => 'date_modified',
222             'vname' => 'LBL_DATE_MODIFIED',
223             'type' => 'datetime',
224             'required' => true,
225             'studio' => array('editview' => false, 'quickcreate' => false, 'wirelesseditview' => false),
226         ) ,
227         'modified_user_id' => array(
228             'name' => 'modified_user_id',
229             'rname' => 'user_name',
230             'id_name' => 'modified_user_id',
231             'vname' => 'LBL_MODIFIED_BY_ID',
232             'type' => 'assigned_user_name',
233             'table' => 'users',
234             'isnull' => 'false',
235             'dbType' => 'id',
236         ) ,
237         'modified_by_name' => array(
238             'name' => 'modified_by_name',
239             'vname' => 'LBL_MODIFIED_BY',
240             'type' => 'varchar',
241             'source' => 'non-db',
242             'studio' => false,
243         ) ,
244         'created_by' => array(
245             'name' => 'created_by',
246             'rname' => 'user_name',
247             'id_name' => 'modified_user_id',
248             'vname' => 'LBL_ASSIGNED_TO',
249             'type' => 'assigned_user_name',
250             'table' => 'users',
251             'isnull' => 'false',
252             'dbType' => 'id',
253             'studio' => false,
254         ) ,
255         'created_by_name' => array(
256             'name' => 'created_by_name',
257                 'vname' => 'LBL_CREATED_BY_NAME', //bug 48978
258             'type' => 'varchar',
259             'source' => 'non-db',
260             'importable' => 'false',
261         ) ,
262         'title' => array(
263             'name' => 'title',
264             'vname' => 'LBL_TITLE',
265             'type' => 'varchar',
266             'len' => '50',
267         ) ,
268         'department' => array(
269             'name' => 'department',
270             'vname' => 'LBL_DEPARTMENT',
271             'type' => 'varchar',
272             'len' => '50',
273         ) ,
274         'phone_home' => array(
275             'name' => 'phone_home',
276             'vname' => 'LBL_HOME_PHONE',
277             'type' => 'phone',
278                         'dbType' => 'varchar',
279             'len' => '50',
280         ) ,
281         'phone_mobile' => array(
282             'name' => 'phone_mobile',
283             'vname' => 'LBL_MOBILE_PHONE',
284             'type' => 'phone',
285                         'dbType' => 'varchar',
286             'len' => '50',
287         ) ,
288         'phone_work' => array(
289             'name' => 'phone_work',
290             'vname' => 'LBL_WORK_PHONE',
291             'type' => 'phone',
292                         'dbType' => 'varchar',
293             'len' => '50',
294         ) ,
295         'phone_other' => array(
296             'name' => 'phone_other',
297             'vname' => 'LBL_OTHER_PHONE',
298             'type' => 'phone',
299                         'dbType' => 'varchar',
300             'len' => '50',
301         ) ,
302         'phone_fax' => array(
303             'name' => 'phone_fax',
304             'vname' => 'LBL_FAX_PHONE',
305             'type' => 'phone',
306                         'dbType' => 'varchar',
307             'len' => '50',
308         ) ,
309         'status' => array(
310             'name' => 'status',
311             'vname' => 'LBL_STATUS',
312             'type' => 'enum',
313             'len' => 100,
314             'options' => 'user_status_dom',
315             'importable' => 'required',
316             'required' => true,
317         ) ,
318         'address_street' => array(
319             'name' => 'address_street',
320             'vname' => 'LBL_ADDRESS_STREET',
321             'type' => 'varchar',
322             'len' => '150',
323         ) ,
324         'address_city' => array(
325             'name' => 'address_city',
326             'vname' => 'LBL_ADDRESS_CITY',
327             'type' => 'varchar',
328             'len' => '100',
329         ) ,
330         'address_state' => array(
331             'name' => 'address_state',
332             'vname' => 'LBL_ADDRESS_STATE',
333             'type' => 'varchar',
334             'len' => '100',
335         ) ,
336         'address_country' => array(
337             'name' => 'address_country',
338             'vname' => 'LBL_ADDRESS_COUNTRY',
339             'type' => 'varchar',
340             'len' => 100,
341         ) ,
342         'address_postalcode' => array(
343             'name' => 'address_postalcode',
344             'vname' => 'LBL_ADDRESS_POSTALCODE',
345             'type' => 'varchar',
346             'len' => '20',
347         ) ,
348         // This is a fake field for the edit view
349         'UserType' => array(
350             'name' => 'UserType',
351             'vname' => 'LBL_USER_TYPE',
352             'type' => 'enum',
353             'len' => 50,
354             'options' => 'user_type_dom',
355             'source' => 'non-db',
356             'import' => false,
357             'reportable' => false,
358             'studio' => array('formula' => false),
359         ),
360         'deleted' => array(
361             'name' => 'deleted',
362             'vname' => 'LBL_DELETED',
363             'type' => 'bool',
364             'required' => false,
365             'reportable' => false,
366         ) ,
367         'portal_only' => array(
368             'name' => 'portal_only',
369             'vname' => 'LBL_PORTAL_ONLY_USER',
370             'type' => 'bool',
371             'massupdate' => false,
372             'default' => '0',
373             'studio' => array('listview' => false, 'searchview'=>false, 'formula' => false),
374         ) ,
375         'show_on_employees' => array(
376             'name' => 'show_on_employees',
377             'vname' => 'LBL_SHOW_ON_EMPLOYEES',
378             'type' => 'bool',
379             'massupdate' => true,
380             'importable' => true,
381             'default' => true,
382             'studio' => array('formula' => false),
383         ) ,
384         'employee_status' => array(
385             'name' => 'employee_status',
386             'vname' => 'LBL_EMPLOYEE_STATUS',
387             'type' => 'varchar',
388             'function' => array(
389                 'name' => 'getEmployeeStatusOptions',
390                 'returns' => 'html',
391                 'include' => 'modules/Employees/EmployeeStatus.php'
392             ) ,
393             'len' => 100,
394         ) ,
395         'messenger_id' => array(
396             'name' => 'messenger_id',
397             'vname' => 'LBL_MESSENGER_ID',
398             'type' => 'varchar',
399             'len' => 100,
400         ) ,
401         'messenger_type' => array(
402             'name' => 'messenger_type',
403             'vname' => 'LBL_MESSENGER_TYPE',
404             'type' => 'enum',
405             'options' => 'messenger_type_dom',
406             'len' => 100,
407         ) ,
408         'calls' => array(
409             'name' => 'calls',
410             'type' => 'link',
411             'relationship' => 'calls_users',
412             'source' => 'non-db',
413             'vname' => 'LBL_CALLS'
414         ) ,
415         'meetings' => array(
416             'name' => 'meetings',
417             'type' => 'link',
418             'relationship' => 'meetings_users',
419             'source' => 'non-db',
420             'vname' => 'LBL_MEETINGS'
421         ) ,
422         'contacts_sync' => array(
423             'name' => 'contacts_sync',
424             'type' => 'link',
425             'relationship' => 'contacts_users',
426             'source' => 'non-db',
427             'vname' => 'LBL_CONTACTS_SYNC',
428             'reportable' => false,
429         ) ,
430         'reports_to_id' => array(
431             'name' => 'reports_to_id',
432             'vname' => 'LBL_REPORTS_TO_ID',
433             'type' => 'id',
434             'required' => false,
435         ) ,
436         'reports_to_name' => array(
437             'name' => 'reports_to_name',
438             'rname' => 'last_name',
439             'id_name' => 'reports_to_id',
440             'vname' => 'LBL_REPORTS_TO_NAME',
441             'type' => 'relate',
442             'isnull' => 'true',
443             'module' => 'Users',
444             'table' => 'users',
445             'link' => 'reports_to_link',
446             'reportable' => false,
447             'source' => 'non-db',
448             'duplicate_merge' => 'disabled',
449             'side' => 'right',
450         ) ,
451         'reports_to_link' => array(
452             'name' => 'reports_to_link',
453             'type' => 'link',
454             'relationship' => 'user_direct_reports',
455             'link_type' => 'one',
456             'side' => 'right',
457             'source' => 'non-db',
458             'vname' => 'LBL_REPORTS_TO',
459         ) ,
460         'reportees' => array(
461             'name' => 'reportees',
462             'type' => 'link',
463             'relationship' => 'user_direct_reports',
464             'link_type' => 'many',
465             'side' => 'left',
466             'source' => 'non-db',
467             'vname' => 'LBL_REPORTS_TO',
468             'reportable' => false,
469         ) ,
470         'email1' => array(
471             'name' => 'email1',
472             'vname' => 'LBL_EMAIL',
473             'type' => 'varchar',
474             'function' => array(
475                 'name' => 'getEmailAddressWidget',
476                 'returns' => 'html'
477             ) ,
478             'source' => 'non-db',
479             'group' => 'email1',
480             'merge_filter' => 'enabled',
481             'required' => true,
482         ) ,
483         'email_addresses' => array(
484             'name' => 'email_addresses',
485             'type' => 'link',
486             'relationship' => 'users_email_addresses',
487             'module' => 'EmailAddress',
488             'bean_name' => 'EmailAddress',
489             'source' => 'non-db',
490             'vname' => 'LBL_EMAIL_ADDRESSES',
491             'reportable' => false,
492             'required' => true,
493         ) ,
494         'email_addresses_primary' => array(
495             'name' => 'email_addresses_primary',
496             'type' => 'link',
497             'relationship' => 'users_email_addresses_primary',
498             'source' => 'non-db',
499             'vname' => 'LBL_EMAIL_ADDRESS_PRIMARY',
500             'duplicate_merge' => 'disabled',
501             'required' => true,
502         ),
503         /* Virtual email fields so they will display on the main user page */
504         'email_link_type' => array(
505             'name' => 'email_link_type',
506             'vname' => 'LBL_EMAIL_LINK_TYPE',
507             'type' => 'enum',
508             'options' => 'dom_email_link_type',
509             'importable' => false,
510             'reportable' => false,
511             'source' => 'non-db',
512             'studio' => false,
513         ),
514
515         'aclroles' => array(
516             'name' => 'aclroles',
517             'type' => 'link',
518             'relationship' => 'acl_roles_users',
519             'source' => 'non-db',
520             'side' => 'right',
521             'vname' => 'LBL_ROLES',
522         ) ,
523         'is_group' => array(
524             'name' => 'is_group',
525             'vname' => 'LBL_GROUP_USER',
526             'type' => 'bool',
527             'massupdate' => false,
528             'studio' => array('listview' => false, 'searchview'=>false, 'formula' => false),
529         ) ,
530         /* to support Meetings SubPanels */
531         'c_accept_status_fields' => array(
532             'name' => 'c_accept_status_fields',
533             'rname' => 'id',
534             'relationship_fields' => array(
535                 'id' => 'accept_status_id',
536                 'accept_status' => 'accept_status_name'
537             ) ,
538             'vname' => 'LBL_LIST_ACCEPT_STATUS',
539             'type' => 'relate',
540             'link' => 'calls',
541             'link_type' => 'relationship_info',
542             'source' => 'non-db',
543             'importable' => 'false',
544             'studio' => array('listview' => false, 'searchview'=>false, 'formula' => false),
545         ) ,
546         'm_accept_status_fields' => array(
547             'name' => 'm_accept_status_fields',
548             'rname' => 'id',
549             'relationship_fields' => array(
550                 'id' => 'accept_status_id',
551                 'accept_status' => 'accept_status_name'
552             ) ,
553             'vname' => 'LBL_LIST_ACCEPT_STATUS',
554             'type' => 'relate',
555             'link' => 'meetings',
556             'link_type' => 'relationship_info',
557             'source' => 'non-db',
558             'importable' => 'false',
559             'studio' => array('listview' => false, 'searchview'=>false, 'formula' => false),
560         ) ,
561         'accept_status_id' => array(
562             'name' => 'accept_status_id',
563             'type' => 'varchar',
564             'source' => 'non-db',
565             'vname' => 'LBL_LIST_ACCEPT_STATUS',
566             'importable' => 'false',
567                 'studio' => array('listview' => false, 'searchview'=>false, 'formula' => false),
568         ) ,
569         'accept_status_name' => array(
570             'name' => 'accept_status_name',
571             'type' => 'enum',
572             'source' => 'non-db',
573             'vname' => 'LBL_LIST_ACCEPT_STATUS',
574             'options' => 'dom_meeting_accept_status',
575             'massupdate' => false,
576             'studio' => array('listview' => false, 'searchview'=>false, 'formula' => false),
577         ) ,
578         'prospect_lists' => array(
579             'name' => 'prospect_lists',
580             'type' => 'link',
581             'relationship' => 'prospect_list_users',
582             'module' => 'ProspectLists',
583             'source' => 'non-db',
584             'vname' => 'LBL_PROSPECT_LIST',
585         ) ,
586         'emails_users' => array(
587             'name' => 'emails_users',
588             'type' => 'link',
589             'relationship' => 'emails_users_rel',
590             'module' => 'Emails',
591             'source' => 'non-db',
592             'vname' => 'LBL_EMAILS'
593         ),
594         'holidays' => array(
595             'name' => 'holidays',
596             'type' => 'link',
597             'relationship' => 'users_holidays',
598             'source' => 'non-db',
599             'side' => 'right',
600             'vname' => 'LBL_HOLIDAYS',
601         ) ,
602        'eapm' =>
603                   array (
604                     'name' => 'eapm',
605                     'type' => 'link',
606                     'relationship' => 'eapm_assigned_user',
607                     'vname' => 'LBL_ASSIGNED_TO_USER',
608                     'source'=>'non-db',
609                   ),
610          'oauth_tokens' =>
611       array (
612         'name' => 'oauth_tokens',
613         'type' => 'link',
614         'relationship' => 'oauthtokens_assigned_user',
615         'vname' => 'LBL_OAUTH_TOKENS',
616         'link_type' => 'one',
617         'module'=>'OAuthTokens',
618         'bean_name'=>'OAuthToken',
619         'source'=>'non-db',
620         'side' => 'left',
621       ),
622         'project_resource'=>
623                 array (
624                         'name' => 'project_resource',
625                         'type' => 'link',
626                         'relationship' => 'projects_users_resources',
627                         'source' => 'non-db',
628                         'vname' => 'LBL_PROJECTS',
629                 ),
630     ) ,
631     'indices' => array(
632         array(
633             'name' => 'userspk',
634             'type' => 'primary',
635             'fields' => array(
636                 'id'
637             )
638         ) ,
639         array(
640             'name' => 'idx_user_name',
641             'type' => 'index',
642             'fields' => array(
643                 'user_name',
644                 'is_group',
645                 'status',
646                 'last_name',
647                 'first_name',
648                 'id'
649             )
650         ) ,
651     ) ,
652         'relationships' => array (
653                 'user_direct_reports' => array('lhs_module'=> 'Users', 'lhs_table'=> 'users', 'lhs_key' => 'id', 'rhs_module'=> 'Users', 'rhs_table'=> 'users', 'rhs_key' => 'reports_to_id', 'relationship_type'=>'one-to-many'),
654                 'users_users_signatures' =>
655                    array(
656                        'lhs_module'=> 'Users',
657                        'lhs_table'=> 'users',
658                        'lhs_key' => 'id',
659                        'rhs_module'=> 'UserSignature',
660                        'rhs_table'=> 'users_signatures',
661                        'rhs_key' => 'user_id',
662                        'relationship_type'=>'one-to-many'
663                        ),
664         'users_email_addresses' =>
665                     array(
666                         'lhs_module'=> "Users", 'lhs_table'=> 'users', 'lhs_key' => 'id',
667                         'rhs_module'=> 'EmailAddresses', 'rhs_table'=> 'email_addresses', 'rhs_key' => 'id',
668                         'relationship_type'=>'many-to-many',
669                         'join_table'=> 'email_addr_bean_rel', 'join_key_lhs'=>'bean_id', 'join_key_rhs'=>'email_address_id',
670                         'relationship_role_column'=>'bean_module',
671                         'relationship_role_column_value'=>"Users"
672                     ),
673                 'users_email_addresses_primary' =>
674                     array('lhs_module'=> "Users", 'lhs_table'=> 'users', 'lhs_key' => 'id',
675                         'rhs_module'=> 'EmailAddresses', 'rhs_table'=> 'email_addresses', 'rhs_key' => 'id',
676                         'relationship_type'=>'many-to-many',
677                         'join_table'=> 'email_addr_bean_rel', 'join_key_lhs'=>'bean_id', 'join_key_rhs'=>'email_address_id',
678                         'relationship_role_column'=>'primary_address',
679                         'relationship_role_column_value'=>'1'
680                     ),
681     ),
682
683
684
685 );