Initial import of the CDE 2.1.30 sources from the Open Group.
[oweals/cde.git] / cde / programs / dtcm / server / access.h
1 /* $XConsortium: access.h /main/4 1995/11/09 12:39:54 rswiston $ */
2 /*
3  *  (c) Copyright 1993, 1994 Hewlett-Packard Company
4  *  (c) Copyright 1993, 1994 International Business Machines Corp.
5  *  (c) Copyright 1993, 1994 Novell, Inc.
6  *  (c) Copyright 1993, 1994 Sun Microsystems, Inc.
7  */
8
9 #ifndef _ACCESS_H
10 #define _ACCESS_H
11
12 #include "ansi_c.h"
13 #include "cm.h"
14 #include "rtable4.h"
15 #include "cmscalendar.h"
16
17 #define _DTCMS_HAS_VIEW_CALENDAR_ATTR_ACCESS(a) \
18                 ((a) & (CSA_VIEW_CALENDAR_ATTRIBUTES | CSA_OWNER_RIGHTS))
19
20 #define _DTCMS_HAS_INSERT_CALENDAR_ATTR_ACCESS(a) \
21                 ((a) & (CSA_INSERT_CALENDAR_ATTRIBUTES | CSA_OWNER_RIGHTS))
22
23 #define _DTCMS_HAS_CHANGE_CALENDAR_ATTR_ACCESS(a) \
24                 ((a) & (CSA_CHANGE_CALENDAR_ATTRIBUTES | CSA_OWNER_RIGHTS))
25
26 #define _DTCMS_HAS_VIEW_ACCESS(a) ((a) & (CSA_VIEW_PUBLIC_ENTRIES | \
27                                             CSA_VIEW_CONFIDENTIAL_ENTRIES | \
28                                             CSA_VIEW_PRIVATE_ENTRIES | \
29                                             CSA_ORGANIZER_RIGHTS | \
30                                             CSA_SPONSOR_RIGHTS | \
31                                             CSA_OWNER_RIGHTS))
32
33 #define _DTCMS_HAS_INSERT_ACCESS(a) ((a) & (CSA_INSERT_PUBLIC_ENTRIES | \
34                                             CSA_INSERT_CONFIDENTIAL_ENTRIES | \
35                                             CSA_INSERT_PRIVATE_ENTRIES | \
36                                             CSA_OWNER_RIGHTS))
37
38 #define _DTCMS_HAS_CHANGE_ACCESS(a) ((a) & (CSA_CHANGE_PUBLIC_ENTRIES | \
39                                             CSA_CHANGE_CONFIDENTIAL_ENTRIES | \
40                                             CSA_CHANGE_PRIVATE_ENTRIES | \
41                                             CSA_ORGANIZER_RIGHTS | \
42                                             CSA_SPONSOR_RIGHTS | \
43                                             CSA_OWNER_RIGHTS))
44
45 #define _DTCMS_HAS_V4_BROWSE_ACCESS(a) \
46                 ((a) & (access_read_4 | CSA_OWNER_RIGHTS))
47
48 #define _DTCMS_HAS_V4_WRITE_ACCESS(a) \
49                 ((a) & (access_write_4 | CSA_OWNER_RIGHTS))
50
51 extern CSA_return_code _DtCmsV4LoadAndCheckAccess P((
52                         struct svc_req  *svcrq,
53                         char            *target,
54                         char            **sender,
55                         uint            *access,
56                         _DtCmsCalendar  **cal));
57
58 extern CSA_return_code _DtCmsV5LoadAndCheckAccess P((
59                         struct svc_req  *svcrq,
60                         char            *target,
61                         char            **sender,
62                         uint            *access,
63                         _DtCmsCalendar  **cal));
64
65 extern CSA_return_code _DtCmsGetClientInfo P((
66                         struct svc_req *svcrq,
67                         char **source));
68
69 extern boolean_t _DtCmsIsFileOwner P((char *owner, char *user, char *target));
70
71 extern void _DtCmsShowAccessList P((Access_Entry_4 *l));
72
73 extern Access_Entry_4 *_DtCmsCalendarAccessList P((_DtCmsCalendar *cal));
74
75 extern Privacy_Level_4 _DtCmCheckPrivacyLevel P((char **p_src, Appt_4 *p_appt));
76
77 extern CSA_return_code _DtCmsCheckViewAccess P((
78                         char *user,
79                         uint access,
80                         cms_entry *eptr));
81
82 extern CSA_return_code _DtCmsCheckChangeAccess P((
83                         char    *user,
84                         uint    access,
85                         cms_entry *eptr));
86
87 extern uint _DtCmsClassToInsertAccess P((cms_entry *entry));
88
89 extern uint _DtCmsClassToViewAccess P((cms_entry *entry));
90
91 extern uint _DtCmsClassToChangeAccess P((cms_entry *entry));
92
93 #endif