Standardize License information
[openafs.git] / src / WINNT / afsusrmgr / task.h
1 /*
2  * Copyright 2000, International Business Machines Corporation and others.
3  * All Rights Reserved.
4  * 
5  * This software has been released under the terms of the IBM Public
6  * License.  For details, see the LICENSE file in the top-level source
7  * directory or online at http://www.openafs.org/dl/license10.html
8  */
9
10 #ifndef TASK_H
11 #define TASK_H
12
13
14 /*
15  * PROTOTYPES _________________________________________________________________
16  *
17  */
18
19 typedef struct
20    {
21    TCHAR szCell[ cchNAME ];
22    BOOL fCloseAppOnFail;
23    PVOID hCreds;
24    } OPENCELL_PARAMS, *LPOPENCELL_PARAMS;
25
26 typedef struct
27    {
28    ASID idUser;
29    AFSADMSVR_CHANGEUSER_PARAMS NewProperties;
30    } USER_CHANGE_PARAMS, *LPUSER_CHANGE_PARAMS;
31
32 typedef struct
33    {
34    LPASIDLIST pUsers;
35    LPASIDLIST pGroups;
36    BOOL fMembership;
37    } USER_GROUPLIST_SET_PARAMS, *LPUSER_GROUPLIST_SET_PARAMS;
38
39 typedef struct
40    {
41    ASID idUser;
42    int keyVersion;
43    TCHAR keyString[ cchRESOURCE ];
44    BYTE keyData[ ENCRYPTIONKEYLENGTH ];
45    } USER_CPW_PARAMS, *LPUSER_CPW_PARAMS;
46
47 typedef struct
48    {
49    LPTSTR mszNames;
50    TCHAR szPassword[ cchRESOURCE ];
51    int idUser;
52    AFSADMSVR_CHANGEUSER_PARAMS Properties;
53    LPASIDLIST pGroupsMember;
54    LPASIDLIST pGroupsOwner;
55    BOOL fCreateKAS;
56    BOOL fCreatePTS;
57    } USER_CREATE_PARAMS, *LPUSER_CREATE_PARAMS;
58
59 typedef struct
60    {
61    LPASIDLIST pUserList;
62    BOOL fDeleteKAS;
63    BOOL fDeletePTS;
64    } USER_DELETE_PARAMS, *LPUSER_DELETE_PARAMS;
65
66 typedef struct
67    {
68    ASID idGroup;
69    AFSADMSVR_CHANGEGROUP_PARAMS NewProperties;
70    } GROUP_CHANGE_PARAMS, *LPGROUP_CHANGE_PARAMS;
71
72 typedef struct
73    {
74    LPASIDLIST pUserList;
75    BOOL fMembership;
76    } GROUP_SEARCH_PARAMS, *LPGROUP_SEARCH_PARAMS;
77
78 typedef struct
79    {
80    LPASIDLIST pGroups;
81    LPASIDLIST pMembers;
82    } GROUP_MEMBERS_SET_PARAMS, *LPGROUP_MEMBERS_SET_PARAMS;
83
84 typedef struct
85    {
86    ASID idGroup;
87    TCHAR szNewName[ cchNAME ];
88    } GROUP_RENAME_PARAMS, *LPGROUP_RENAME_PARAMS;
89
90 typedef struct
91    {
92    ASID idGroup;
93    LPASIDLIST pOwnedGroups;
94    } GROUP_OWNED_SET_PARAMS, *LPGROUP_OWNED_SET_PARAMS;
95
96 typedef struct
97    {
98    LPTSTR mszNames;
99    TCHAR szOwner[ cchNAME ];
100    int idGroup;
101    AFSADMSVR_CHANGEGROUP_PARAMS Properties;
102    LPASIDLIST pMembers;
103    LPASIDLIST pGroupsOwner;
104    } GROUP_CREATE_PARAMS, *LPGROUP_CREATE_PARAMS;
105
106 typedef struct
107    {
108    LPCTSTR pszNames;
109    ASOBJTYPE Type;
110    } LIST_TRANSLATE_PARAMS, *LPLIST_TRANSLATE_PARAMS;
111
112 typedef struct
113    {
114    HWND hNotify;
115    LPASIDLIST pAsidList;
116    } OBJECT_LISTEN_PARAMS, *LPOBJECT_LISTEN_PARAMS;
117
118 typedef struct
119    {
120    ASID idCell;
121    int idUserMax;
122    int idGroupMax;
123    } CELL_CHANGE_PARAMS, *LPCELL_CHANGE_PARAMS;
124
125 typedef enum
126    {
127    taskOPENCELL,        // lp = new OPENCELL_PARAMS
128    taskUPD_CREDS,       // lp = unused
129    taskUPD_USERS,       // lp = unused
130    taskUPD_GROUPS,      // lp = unused
131    taskUPD_MACHINES,    // lp = unused
132    taskREFRESH, // lp = (ASID)idRefreshScope
133    taskREFRESHMULT,     // lp = scope (from asc_AsidListCreate)
134    taskGET_ACTIONS,     // lp = unused
135    taskGET_RANDOM_KEY,  // lp = unused
136    taskUSER_CHANGE,     // lp = new USER_CHANGE_PARAMS
137    taskUSER_FIND,       // lp = CloneString(szUserName)
138    taskUSER_ENUM,       // lp = CloneString(szPattern) or NULL
139    taskUSER_GROUPLIST_SET,      // lp = new USER_GROUPLIST_SET_PARAMS
140    taskUSER_CPW,        // lp = new USER_CPW_PARAMS
141    taskUSER_UNLOCK,     // lp = users (from asc_AsidListCreate)
142    taskUSER_CREATE,     // lp = new USER_CREATE_PARAMS
143    taskUSER_DELETE,     // lp = new USER_DELETE_PARAMS
144    taskGROUP_CHANGE,    // lp = new GROUP_CHANGE_PARAMS
145    taskGROUP_SEARCH,    // lp = new GROUP_SEARCH_PARAMS
146    taskGROUP_MEMBERS_GET,       // lp = groups (from asc_AsidListCreate)
147    taskGROUP_MEMBERS_SET,       // lp = new GROUP_MEMBERS_SET_PARAMS
148    taskGROUP_ENUM,      // lp = CloneString(szPattern) or NULL
149    taskGROUP_RENAME,    // lp = new GROUP_RENAME_PARAMS
150    taskGROUP_OWNED_GET, // lp = (ASID)idGroup
151    taskGROUP_OWNED_SET, // lp = new GROUP_OWNED_SET_PARAMS
152    taskGROUP_CREATE,    // lp = new GROUP_CREATE_PARAMS
153    taskGROUP_DELETE,    // lp = groups (from asc_AsidListCreate)
154    taskCELL_CHANGE,     // lp = new CELL_CHANGE_PARAMS
155    taskLIST_TRANSLATE,  // lp = new LIST_TRANSLATE_PARAMS
156    taskOBJECT_LISTEN,   // lp = new OBJECT_LISTEN_PARAMS
157    taskOBJECT_GET,      // lp = (ASID)idObject
158    taskSET_REFRESH,     // lp = unused
159    taskEXPIRED_CREDS    // lp = unused
160    } TASK;
161
162 typedef struct
163    {
164    ASID idCell; // what was found out?
165    LPASIDLIST pAsidList;
166    LPASACTIONLIST pActionList;
167    TCHAR szPattern[ cchNAME ];
168    ASID idObject;
169    ASOBJTYPE Type;
170    ASOBJPROP Properties;
171    BOOL fMembership;
172    BYTE key[ ENCRYPTIONKEYLENGTH ];
173    } TASKPACKETDATA, *LPTASKPACKETDATA;
174
175 #define TASKDATA(_ptp) ((LPTASKPACKETDATA)(ptp->pReturn))
176
177
178 LPTASKPACKET CreateTaskPacket (int idTask, HWND hReply, PVOID lpUser);
179 void FreeTaskPacket (LPTASKPACKET ptp);
180 void PerformTask (LPTASKPACKET ptp);
181
182
183 #endif
184