]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - modules/Users/vardefs.php
Release 6.5.0
[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             'studio' => array(
80                 'no_duplicate'=>true,
81                 'listview' => false,
82                 'searchview'=>false,
83             ),
84         ) ,
85         'system_generated_password' => array(
86             'name' => 'system_generated_password',
87             'vname' => 'LBL_SYSTEM_GENERATED_PASSWORD',
88             'type' => 'bool',
89             'required' => true,
90             'reportable' => false,
91             'massupdate' => false,
92             'studio' => array(
93                 'listview' => false,
94                 'searchview'=>false,
95                 'editview'=>false,
96                 'quickcreate'=>false,
97                 'wirelesseditview' => false,
98             ),
99         ) ,
100
101         'pwd_last_changed' => array(
102             'name' => 'pwd_last_changed',
103             'vname' => 'LBL_PSW_MODIFIED',
104             'type' => 'datetime',
105             'required' => false,
106             'massupdate' => false,
107             'studio' => array('formula' => false),
108         ) ,
109         /**
110          * 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
111          */
112         'authenticate_id' => array(
113             'name' => 'authenticate_id',
114             'vname' => 'LBL_AUTHENTICATE_ID',
115             'type' => 'varchar',
116             'len' => '100',
117             'reportable' => false,
118             'importable' => 'false',
119             'studio' => array('listview' => false, 'searchview'=>false, 'related' => false),
120         ) ,
121         /**
122          * sugar_login will force the user to use sugar authentication
123          * regardless of what authentication the system is configured to use
124          */
125         'sugar_login' => array(
126             'name' => 'sugar_login',
127             'vname' => 'LBL_SUGAR_LOGIN',
128             'type' => 'bool',
129             'default' => '1',
130             'reportable' => false,
131             'massupdate' => false,
132             'importable' => false,
133             'studio' => array('listview' => false, 'searchview'=>false, 'formula' => false),
134         ) ,
135         'first_name' => array(
136             'name' => 'first_name',
137             'vname' => 'LBL_FIRST_NAME',
138             'dbType' => 'varchar',
139             'type' => 'name',
140             'len' => '30',
141         ) ,
142         'last_name' => array(
143             'name' => 'last_name',
144             'vname' => 'LBL_LAST_NAME',
145             'dbType' => 'varchar',
146             'type' => 'name',
147             'len' => '30',
148             'importable' => 'required',
149                 'required' => true,
150         ) ,
151         'full_name' => array(
152             'name' => 'full_name',
153             'rname' => 'full_name',
154             'vname' => 'LBL_NAME',
155             'type' => 'name',
156             'fields' => array(
157                 'first_name',
158                 'last_name'
159             ) ,
160             'source' => 'non-db',
161             'sort_on' => 'last_name',
162             'sort_on2' => 'first_name',
163             'db_concat_fields' => array(
164                 0 => 'first_name',
165                 1 => 'last_name'
166             ) ,
167             'len' => '510',
168             'studio' => array('formula' => false),
169         ) ,
170         'name' => array(
171             'name' => 'name',
172             'rname' => 'name',
173             'vname' => 'LBL_NAME',
174             'type' => 'varchar',
175             'source' => 'non-db',
176             'len' => '510',
177             'db_concat_fields' => array(
178                 0 => 'first_name',
179                 1 => 'last_name'
180             ) ,
181             'importable' => 'false',
182         ) ,
183         'is_admin' => array(
184             'name' => 'is_admin',
185             'vname' => 'LBL_IS_ADMIN',
186             'type' => 'bool',
187             'default' => '0',
188             'studio' => array('listview' => false, 'searchview'=>false, 'related' => false),
189         ) ,
190         'external_auth_only' => array(
191             'name' => 'external_auth_only',
192             'vname' => 'LBL_EXT_AUTHENTICATE',
193             'type' => 'bool',
194             'reportable' => false,
195             'massupdate' => false,
196             'default' => '0',
197             'studio' => array('listview' => false, 'searchview'=>false, 'related' => false),
198         ) ,
199         'receive_notifications' => array(
200             'name' => 'receive_notifications',
201             'vname' => 'LBL_RECEIVE_NOTIFICATIONS',
202             'type' => 'bool',
203             'default' => '1',
204             'massupdate' => false,
205             'studio' => false,
206         ) ,
207         'description' => array(
208             'name' => 'description',
209             'vname' => 'LBL_DESCRIPTION',
210             'type' => 'text',
211         ) ,
212         'date_entered' => array(
213             'name' => 'date_entered',
214             'vname' => 'LBL_DATE_ENTERED',
215             'type' => 'datetime',
216             'required' => true,
217             'studio' => array('editview' => false, 'quickcreate' => false, 'wirelesseditview' => false),
218         ) ,
219         'date_modified' => array(
220             'name' => 'date_modified',
221             'vname' => 'LBL_DATE_MODIFIED',
222             'type' => 'datetime',
223             'required' => true,
224             'studio' => array('editview' => false, 'quickcreate' => false, 'wirelesseditview' => false),
225         ) ,
226         'modified_user_id' => array(
227             'name' => 'modified_user_id',
228             'rname' => 'user_name',
229             'id_name' => 'modified_user_id',
230             'vname' => 'LBL_MODIFIED_BY_ID',
231             'type' => 'assigned_user_name',
232             'table' => 'users',
233             'isnull' => 'false',
234             'dbType' => 'id',
235         ) ,
236         'modified_by_name' => array(
237             'name' => 'modified_by_name',
238             'vname' => 'LBL_MODIFIED_BY',
239             'type' => 'varchar',
240             'source' => 'non-db',
241             'studio' => false,
242         ) ,
243         'created_by' => array(
244             'name' => 'created_by',
245             'rname' => 'user_name',
246             'id_name' => 'modified_user_id',
247             'vname' => 'LBL_ASSIGNED_TO',
248             'type' => 'assigned_user_name',
249             'table' => 'users',
250             'isnull' => 'false',
251             'dbType' => 'id',
252             'studio' => false,
253         ) ,
254         'created_by_name' => array(
255             'name' => 'created_by_name',
256                 'vname' => 'LBL_CREATED_BY_NAME', //bug 48978
257             'type' => 'varchar',
258             'source' => 'non-db',
259             'importable' => 'false',
260         ) ,
261         'title' => array(
262             'name' => 'title',
263             'vname' => 'LBL_TITLE',
264             'type' => 'varchar',
265             'len' => '50',
266         ) ,
267         'department' => array(
268             'name' => 'department',
269             'vname' => 'LBL_DEPARTMENT',
270             'type' => 'varchar',
271             'len' => '50',
272         ) ,
273         'phone_home' => array(
274             'name' => 'phone_home',
275             'vname' => 'LBL_HOME_PHONE',
276             'type' => 'phone',
277                         'dbType' => 'varchar',
278             'len' => '50',
279         ) ,
280         'phone_mobile' => array(
281             'name' => 'phone_mobile',
282             'vname' => 'LBL_MOBILE_PHONE',
283             'type' => 'phone',
284                         'dbType' => 'varchar',
285             'len' => '50',
286         ) ,
287         'phone_work' => array(
288             'name' => 'phone_work',
289             'vname' => 'LBL_WORK_PHONE',
290             'type' => 'phone',
291                         'dbType' => 'varchar',
292             'len' => '50',
293         ) ,
294         'phone_other' => array(
295             'name' => 'phone_other',
296             'vname' => 'LBL_OTHER_PHONE',
297             'type' => 'phone',
298                         'dbType' => 'varchar',
299             'len' => '50',
300         ) ,
301         'phone_fax' => array(
302             'name' => 'phone_fax',
303             'vname' => 'LBL_FAX_PHONE',
304             'type' => 'phone',
305                         'dbType' => 'varchar',
306             'len' => '50',
307         ) ,
308         'status' => array(
309             'name' => 'status',
310             'vname' => 'LBL_STATUS',
311             'type' => 'enum',
312             'len' => 100,
313             'options' => 'user_status_dom',
314             'importable' => 'required',
315             'required' => true,
316         ) ,
317         'address_street' => array(
318             'name' => 'address_street',
319             'vname' => 'LBL_ADDRESS_STREET',
320             'type' => 'varchar',
321             'len' => '150',
322         ) ,
323         'address_city' => array(
324             'name' => 'address_city',
325             'vname' => 'LBL_ADDRESS_CITY',
326             'type' => 'varchar',
327             'len' => '100',
328         ) ,
329         'address_state' => array(
330             'name' => 'address_state',
331             'vname' => 'LBL_ADDRESS_STATE',
332             'type' => 'varchar',
333             'len' => '100',
334         ) ,
335         'address_country' => array(
336             'name' => 'address_country',
337             'vname' => 'LBL_ADDRESS_COUNTRY',
338             'type' => 'varchar',
339             'len' => 100,
340         ) ,
341         'address_postalcode' => array(
342             'name' => 'address_postalcode',
343             'vname' => 'LBL_ADDRESS_POSTALCODE',
344             'type' => 'varchar',
345             'len' => '20',
346         ) ,
347         // This is a fake field for the edit view
348         'UserType' => array(
349             'name' => 'UserType',
350             'vname' => 'LBL_USER_TYPE',
351             'type' => 'enum',
352             'len' => 50,
353             'options' => 'user_type_dom',
354             'source' => 'non-db',
355             'import' => false,
356             'reportable' => false,
357             'studio' => array('formula' => false),
358         ),
359         'deleted' => array(
360             'name' => 'deleted',
361             'vname' => 'LBL_DELETED',
362             'type' => 'bool',
363             'required' => false,
364             'reportable' => false,
365         ) ,
366         'portal_only' => array(
367             'name' => 'portal_only',
368             'vname' => 'LBL_PORTAL_ONLY_USER',
369             'type' => 'bool',
370             'massupdate' => false,
371             'default' => '0',
372             'studio' => array('listview' => false, 'searchview'=>false, 'formula' => false),
373         ) ,
374         'show_on_employees' => array(
375             'name' => 'show_on_employees',
376             'vname' => 'LBL_SHOW_ON_EMPLOYEES',
377             'type' => 'bool',
378             'massupdate' => true,
379             'importable' => true,
380             'default' => true,
381             'studio' => array('formula' => false),
382         ) ,
383         'employee_status' => array(
384             'name' => 'employee_status',
385             'vname' => 'LBL_EMPLOYEE_STATUS',
386             'type' => 'varchar',
387             'function' => array(
388                 'name' => 'getEmployeeStatusOptions',
389                 'returns' => 'html',
390                 'include' => 'modules/Employees/EmployeeStatus.php'
391             ) ,
392             'len' => 100,
393         ) ,
394         'messenger_id' => array(
395             'name' => 'messenger_id',
396             'vname' => 'LBL_MESSENGER_ID',
397             'type' => 'varchar',
398             'len' => 100,
399         ) ,
400         'messenger_type' => array(
401             'name' => 'messenger_type',
402             'vname' => 'LBL_MESSENGER_TYPE',
403             'type' => 'enum',
404             'options' => 'messenger_type_dom',
405             'len' => 100,
406         ) ,
407         'calls' => array(
408             'name' => 'calls',
409             'type' => 'link',
410             'relationship' => 'calls_users',
411             'source' => 'non-db',
412             'vname' => 'LBL_CALLS'
413         ) ,
414         'meetings' => array(
415             'name' => 'meetings',
416             'type' => 'link',
417             'relationship' => 'meetings_users',
418             'source' => 'non-db',
419             'vname' => 'LBL_MEETINGS'
420         ) ,
421         'contacts_sync' => array(
422             'name' => 'contacts_sync',
423             'type' => 'link',
424             'relationship' => 'contacts_users',
425             'source' => 'non-db',
426             'vname' => 'LBL_CONTACTS_SYNC',
427             'reportable' => false,
428         ) ,
429         'reports_to_id' => array(
430             'name' => 'reports_to_id',
431             'vname' => 'LBL_REPORTS_TO_ID',
432             'type' => 'id',
433             'required' => false,
434         ) ,
435         'reports_to_name' => array(
436             'name' => 'reports_to_name',
437             'rname' => 'last_name',
438             'id_name' => 'reports_to_id',
439             'vname' => 'LBL_REPORTS_TO_NAME',
440             'type' => 'relate',
441             'isnull' => 'true',
442             'module' => 'Users',
443             'table' => 'users',
444             'link' => 'reports_to_link',
445             'reportable' => false,
446             'source' => 'non-db',
447             'duplicate_merge' => 'disabled',
448             'side' => 'right',
449         ) ,
450         'reports_to_link' => array(
451             'name' => 'reports_to_link',
452             'type' => 'link',
453             'relationship' => 'user_direct_reports',
454             'link_type' => 'one',
455             'side' => 'right',
456             'source' => 'non-db',
457             'vname' => 'LBL_REPORTS_TO',
458         ) ,
459         'reportees' => array(
460             'name' => 'reportees',
461             'type' => 'link',
462             'relationship' => 'user_direct_reports',
463             'link_type' => 'many',
464             'side' => 'left',
465             'source' => 'non-db',
466             'vname' => 'LBL_REPORTS_TO',
467             'reportable' => false,
468         ) ,
469         'email1' => array(
470             'name' => 'email1',
471             'vname' => 'LBL_EMAIL',
472             'type' => 'varchar',
473             'function' => array(
474                 'name' => 'getEmailAddressWidget',
475                 'returns' => 'html'
476             ) ,
477             'source' => 'non-db',
478             'group' => 'email1',
479             'merge_filter' => 'enabled',
480             'required' => true,
481         ) ,
482         'email_addresses' => array(
483             'name' => 'email_addresses',
484             'type' => 'link',
485             'relationship' => 'users_email_addresses',
486             'module' => 'EmailAddress',
487             'bean_name' => 'EmailAddress',
488             'source' => 'non-db',
489             'vname' => 'LBL_EMAIL_ADDRESSES',
490             'reportable' => false,
491             'required' => true,
492         ) ,
493         'email_addresses_primary' => array(
494             'name' => 'email_addresses_primary',
495             'type' => 'link',
496             'relationship' => 'users_email_addresses_primary',
497             'source' => 'non-db',
498             'vname' => 'LBL_EMAIL_ADDRESS_PRIMARY',
499             'duplicate_merge' => 'disabled',
500             'required' => true,
501         ),
502         /* Virtual email fields so they will display on the main user page */
503         'email_link_type' => array(
504             'name' => 'email_link_type',
505             'vname' => 'LBL_EMAIL_LINK_TYPE',
506             'type' => 'enum',
507             'options' => 'dom_email_link_type',
508             'importable' => false,
509             'reportable' => false,
510             'source' => 'non-db',
511             'studio' => false,
512         ),
513         
514         'aclroles' => array(
515             'name' => 'aclroles',
516             'type' => 'link',
517             'relationship' => 'acl_roles_users',
518             'source' => 'non-db',
519             'side' => 'right',
520             'vname' => 'LBL_ROLES',
521         ) ,
522         'is_group' => array(
523             'name' => 'is_group',
524             'vname' => 'LBL_GROUP_USER',
525             'type' => 'bool',
526             'massupdate' => false,
527             'studio' => array('listview' => false, 'searchview'=>false, 'formula' => false),
528         ) ,
529         /* to support Meetings SubPanels */
530         'c_accept_status_fields' => array(
531             'name' => 'c_accept_status_fields',
532             'rname' => 'id',
533             'relationship_fields' => array(
534                 'id' => 'accept_status_id',
535                 'accept_status' => 'accept_status_name'
536             ) ,
537             'vname' => 'LBL_LIST_ACCEPT_STATUS',
538             'type' => 'relate',
539             'link' => 'calls',
540             'link_type' => 'relationship_info',
541             'source' => 'non-db',
542             'importable' => 'false',
543             'studio' => array('listview' => false, 'searchview'=>false, 'formula' => false),
544         ) ,
545         'm_accept_status_fields' => array(
546             'name' => 'm_accept_status_fields',
547             'rname' => 'id',
548             'relationship_fields' => array(
549                 'id' => 'accept_status_id',
550                 'accept_status' => 'accept_status_name'
551             ) ,
552             'vname' => 'LBL_LIST_ACCEPT_STATUS',
553             'type' => 'relate',
554             'link' => 'meetings',
555             'link_type' => 'relationship_info',
556             'source' => 'non-db',
557             'importable' => 'false',
558             'studio' => array('listview' => false, 'searchview'=>false, 'formula' => false),
559         ) ,
560         'accept_status_id' => array(
561             'name' => 'accept_status_id',
562             'type' => 'varchar',
563             'source' => 'non-db',
564             'vname' => 'LBL_LIST_ACCEPT_STATUS',
565             'importable' => 'false',
566                 'studio' => array('listview' => false, 'searchview'=>false, 'formula' => false),
567         ) ,
568         'accept_status_name' => array(
569             'name' => 'accept_status_name',
570             'type' => 'enum',
571             'source' => 'non-db',
572             'vname' => 'LBL_LIST_ACCEPT_STATUS',
573             'options' => 'dom_meeting_accept_status',
574             'massupdate' => false,
575             'studio' => array('listview' => false, 'searchview'=>false, 'formula' => false),
576         ) ,
577         'prospect_lists' => array(
578             'name' => 'prospect_lists',
579             'type' => 'link',
580             'relationship' => 'prospect_list_users',
581             'module' => 'ProspectLists',
582             'source' => 'non-db',
583             'vname' => 'LBL_PROSPECT_LIST',
584         ) ,
585         'emails_users' => array(
586             'name' => 'emails_users',
587             'type' => 'link',
588             'relationship' => 'emails_users_rel',
589             'module' => 'Emails',
590             'source' => 'non-db',
591             'vname' => 'LBL_EMAILS'
592         ),
593         'holidays' => array(
594             'name' => 'holidays',
595             'type' => 'link',
596             'relationship' => 'users_holidays',
597             'source' => 'non-db',
598             'side' => 'right',
599             'vname' => 'LBL_HOLIDAYS',
600         ) ,
601        'eapm' =>
602                   array (
603                     'name' => 'eapm',
604                     'type' => 'link',
605                     'relationship' => 'eapm_assigned_user',
606                     'vname' => 'LBL_ASSIGNED_TO_USER',
607                     'source'=>'non-db',
608                   ),
609          'oauth_tokens' =>
610       array (
611         'name' => 'oauth_tokens',
612         'type' => 'link',
613         'relationship' => 'oauthtokens_assigned_user',
614         'vname' => 'LBL_OAUTH_TOKENS',
615         'link_type' => 'one',
616         'module'=>'OAuthTokens',
617         'bean_name'=>'OAuthToken',
618         'source'=>'non-db',
619         'side' => 'left',
620       ),
621         'project_resource'=>
622                 array (
623                         'name' => 'project_resource',
624                         'type' => 'link',
625                         'relationship' => 'projects_users_resources',
626                         'source' => 'non-db',
627                         'vname' => 'LBL_PROJECTS',
628                 ),
629     ) ,
630     'indices' => array(
631         array(
632             'name' => 'userspk',
633             'type' => 'primary',
634             'fields' => array(
635                 'id'
636             )
637         ) ,
638         array(
639             'name' => 'idx_user_name',
640             'type' => 'index',
641             'fields' => array(
642                 'user_name',
643                 'is_group',
644                 'status',
645                 'last_name',
646                 'first_name',
647                 'id'
648             )
649         ) ,
650     ) ,
651         'relationships' => array (
652                 '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'),
653                 'users_users_signatures' =>
654                    array(
655                        'lhs_module'=> 'Users',
656                        'lhs_table'=> 'users',
657                        'lhs_key' => 'id',
658                        'rhs_module'=> 'UserSignature',
659                        'rhs_table'=> 'users_signatures',
660                        'rhs_key' => 'user_id',
661                        'relationship_type'=>'one-to-many'
662                        ),
663         'users_email_addresses' =>
664                     array(
665                         'lhs_module'=> "Users", 'lhs_table'=> 'users', 'lhs_key' => 'id',
666                         'rhs_module'=> 'EmailAddresses', 'rhs_table'=> 'email_addresses', 'rhs_key' => 'id',
667                         'relationship_type'=>'many-to-many',
668                         'join_table'=> 'email_addr_bean_rel', 'join_key_lhs'=>'bean_id', 'join_key_rhs'=>'email_address_id',
669                         'relationship_role_column'=>'bean_module',
670                         'relationship_role_column_value'=>"Users"
671                     ),
672                 'users_email_addresses_primary' =>
673                     array('lhs_module'=> "Users", 'lhs_table'=> 'users', 'lhs_key' => 'id',
674                         'rhs_module'=> 'EmailAddresses', 'rhs_table'=> 'email_addresses', 'rhs_key' => 'id',
675                         'relationship_type'=>'many-to-many',
676                         'join_table'=> 'email_addr_bean_rel', 'join_key_lhs'=>'bean_id', 'join_key_rhs'=>'email_address_id',
677                         'relationship_role_column'=>'primary_address',
678                         'relationship_role_column_value'=>'1'
679                     ),
680     ),
681
682
683
684 );