]> andersk Git - moira.git/blame - db/newmoira.qc
new qsupport routines & KERBEROS list members
[moira.git] / db / newmoira.qc
CommitLineData
51e7c423 1/* $Header$
2 *
3 * Creates a new sms database
4 *
5 * Copyright 1988 by the Massachusetts Institute of Technology.
5370cb14 6 * For copying and distribution information, please see the file
7 * <mit-copyright.h>.
51e7c423 8 */
9
5370cb14 10#include <mit-copyright.h>
51e7c423 11#include <stdio.h>
12#include "../server/query.h"
13
14static int ingres_errno = 0;
15int ingerr();
16
17extern char *tables[];
6ea27ce4 18extern struct query Queries2[];
19extern int QueryCount2;
51e7c423 20
5370cb14 21char *values[] = { "users_id", "mach_id", "clu_id", "list_id",
22 "nfsphys_id", "filsys_id", "strings_id", "dcm_enable",
23 0 };
51e7c423 24
25struct alias { char *name;
26 char *type;
27 char *trans;
28 } aliases[] = {
5370cb14 29 {"ace_type", "TYPE", "USER"},
30 {"ace_type", "TYPE", "LIST"},
31 {"ace_type", "TYPE", "NONE"},
32 {"alias", "TYPE", "FILESYS"},
51e7c423 33 {"alias", "TYPE", "TYPE"},
5370cb14 34 {"alias", "TYPE", "SERVICE"},
51e7c423 35 {"alias", "TYPE", "TYPEDATA"},
5370cb14 36 {"alias", "TYPE", "VALUE"},
51e7c423 37 {"boolean", "TYPE", "FALSE"},
38 {"boolean", "TYPE", "DONTCARE"},
39 {"boolean", "TYPE", "TRUE"},
5370cb14 40 {"class", "TYPE", "STAFF"},
51e7c423 41 {"class", "TYPE", "1988"},
42 {"class", "TYPE", "1989"},
43 {"class", "TYPE", "1990"},
44 {"class", "TYPE", "1991"},
45 {"class", "TYPE", "1992"},
5370cb14 46 {"class", "TYPE", "FACULTY"},
51e7c423 47 {"class", "TYPE", "G"},
5370cb14 48 {"class", "TYPE", "GUEST"},
49 {"class", "TYPE", "UNKNOWN"},
50 {"filesys", "TYPE", "ERR"},
4915459e 51 {"filesys", "TYPE", "FSGROUP"},
51e7c423 52 {"filesys", "TYPE", "NFS"},
53 {"filesys", "TYPE", "RVD"},
5370cb14 54 {"gaus", "TYPE", "LIST"},
55 {"gaus", "TYPE", "USER"},
56 {"gaus", "TYPE", "RLIST"},
57 {"gaus", "TYPE", "RUSER"},
58 {"lockertype", "TYPE", "HOMEDIR"},
59 {"lockertype", "TYPE", "OTHER"},
60 {"lockertype", "TYPE", "PROJECT"},
61 {"lockertype", "TYPE", "SYSTEM"},
62 {"lockertype", "TYPE", "UNKNOWN"},
51e7c423 63 {"mac_type", "TYPE", "RT"},
64 {"mac_type", "TYPE", "VAX"},
4d8e9ab9 65 {"member", "TYPE", "KERBEROS"},
51e7c423 66 {"member", "TYPE", "LIST"},
67 {"member", "TYPE", "STRING"},
68 {"member", "TYPE", "USER"},
69 {"pobox", "TYPE", "SMTP"},
70 {"pobox", "TYPE", "NONE"},
71 {"pobox", "TYPE", "POP"},
5370cb14 72 {"rmember", "TYPE", "LIST"},
73 {"rmember", "TYPE", "STRING"},
74 {"rmember", "TYPE", "USER"},
4d8e9ab9 75 {"rmember", "TYPE", "KERBEROS"},
5370cb14 76 {"rmember", "TYPE", "RLIST"},
77 {"rmember", "TYPE", "RSTRING"},
78 {"rmember", "TYPE", "RUSER"},
4d8e9ab9 79 {"rmember", "TYPE", "RKERBEROS"},
5370cb14 80 {"service", "TYPE", "REPLICAT"},
81 {"service", "TYPE", "UNIQUE"},
4d8e9ab9 82 {"KERBEROS", "TYPEDATA", "string"},
51e7c423 83 {"LIST", "TYPEDATA", "list"},
5370cb14 84 {"NONE", "TYPEDATA", "none"},
51e7c423 85 {"POP", "TYPEDATA", "machine"},
5370cb14 86 {"RLIST", "TYPEDATA", "list"},
87 {"RSTRING", "TYPEDATA", "string"},
88 {"RUSER", "TYPEDATA", "user"},
51e7c423 89 {"SMTP", "TYPEDATA", "string"},
90 {"STRING", "TYPEDATA", "string"},
5370cb14 91 {"USER", "TYPEDATA", "user"},
51e7c423 92 0 };
93
94
95main(argc, argv)
96int argc;
97char **argv;
98{
99 char buffer[256];
5370cb14 100## char *table, *user, *value, *query, *trans, *type, *db;
51e7c423 101## int i, flag;
102
5370cb14 103 if (argc == 2)
104 db = argv[1];
105 else
106 db = "sms";
51e7c423 107 IIseterr(ingerr);
5370cb14 108## ingres db
51e7c423 109 if (ingres_errno) {
110 printf("Unable to open the database\n");
111 exit(1);
112 }
113
114 strcpy(buffer, "root");
115 user = buffer;
116 while (buffer[0]) {
117 for (i = 0; table = tables[i]; i++) {
118## define permit all on table to user
119 if (ingres_errno) {
120 printf("Unable to give %s permission to access table %s\n",
121 user, table);
122 exit(1);
123 }
124 }
125 printf("Enter the name of another user to be given direct access to\n");
126 printf("the database, or [RETURN] if none: ");
127 fflush(stdout);
128 gets(user);
129 }
130
131 for (i = 0; table = tables[i]; i++) {
132## repeat append tblstats (#table = @table, modtime = "now")
133 if (ingres_errno) {
134 printf("Unable to initialize tblstats for %s\n", table);
135 exit(1);
136 }
137 }
138
139 for (i = 0; value = values[i]; i++) {
140## repeat append values (#name = @value, #value = 1)
141 if (ingres_errno) {
142 printf("Unable to install initial value of %s\n", value);
143 exit(1);
144 }
145 }
146
147 printf("What is the starting UID to assign: ");
148 fflush(stdout);
149 gets(buffer);
150 i = atoi(buffer);
151## append values (#name = "uid", #value = i)
152 if (ingres_errno) {
153 printf("Unable to install value for uid\n");
154 exit(1);
155 }
156
157 printf("What is the starting GID to assign: ");
158 fflush(stdout);
159 gets(buffer);
160 i = atoi(buffer);
161## append values (#name = "gid", #value = i)
162 if (ingres_errno) {
163 printf("Unable to install value for gid\n");
164 exit(1);
165 }
166
167 printf("What is the default NFS quota to assign: ");
168 fflush(stdout);
169 gets(buffer);
170 i = atoi(buffer);
171## append values (#name = "def_quota", #value = i)
172 if (ingres_errno) {
173 printf("Unable to install value for def_quota\n");
174 exit(1);
175 }
176
177 /* place holder records */
178## append users (login = "[nobody]", potype="NONE")
179 if (ingres_errno) {
180 printf("Unable to install 0 user\n");
181 exit(1);
182 }
e846e035 183## append machine (name = "[NONE]", #type="NONE")
51e7c423 184 if (ingres_errno) {
185 printf("Unable to install 0 machine\n");
186 exit(1);
187 }
188## append cluster (name = "[unassigned]")
189 if (ingres_errno) {
190 printf("Unable to install 0 cluster\n");
191 exit(1);
192 }
193## append list (name = "[none]", acl_type = "NONE")
194 if (ingres_errno) {
195 printf("Unable to install 0 list\n");
196 exit(1);
197 }
198
199 /* magic for ALL_USERS */
200## append users (login = "default", users_id = 1, potype="NONE")
201 if (ingres_errno) {
202 printf("Unable to install default user\n");
203 exit(1);
204 }
205## append list (name = "default", list_id = 1, acl_type = "NONE")
206 if (ingres_errno) {
207 printf("Unable to install default list\n");
208 exit(1);
209 }
210## append members (list_id = 1, member_type = "USER", member_id = 1)
211 if (ingres_errno) {
212 printf("Unable to install default user on default list\n");
213 exit(1);
214 }
215
216 /* Priveleged users */
217## append users (login = "root", users_id = 2, potype="NONE")
218 if (ingres_errno) {
219 printf("Unable to install root user\n");
220 exit(1);
221 }
222## append list (name = "dbadmin", list_id = 2, acl_type = "LIST", acl_id = 2)
223 if (ingres_errno) {
224 printf("Unable to install default dbadmin list\n");
225 exit(1);
226 }
227
228 printf("What is the name of a priveleged user: ");
229 fflush(stdout);
230 gets(buffer);
231 user = buffer;
232## append users (login = user, users_id = 3, potype="NONE")
233 if (ingres_errno) {
234 printf("Unable to install user %s\n", buffer);
235 exit(1);
236 }
237## append members (list_id = 2, member_type = "USER", member_id = 3)
238 if (ingres_errno) {
239 printf("Unable to put user %s on list dbadmin\n", buffer);
240 exit(1);
241 }
242
243 /* And the capacls */
6ea27ce4 244 for (i = 0; i < QueryCount2; i++) {
245 query = Queries2[i].name;
246 value = Queries2[i].shortname;
51e7c423 247## repeat append capacls (capability = @query, tag = @value, list_id = 2)
248 if (ingres_errno) {
249 printf("Unable to install query ACL for %s (%s)\n", query, value);
250 exit(1);
251 }
252 }
5370cb14 253## append capacls (capability = "trigger_dcm", tag = "tdcm", list_id = 2)
51e7c423 254
255 /* and the aliases */
256 for (i = 0; aliases[i].name ; i++) {
257 value = aliases[i].name;
258 type = aliases[i].type;
259 trans = aliases[i].trans;
260## repeat append alias (#name = @value, #type = @type, #trans = @trans)
261 }
262
263## exit
264 printf("done.\n");
265 exit(0);
266}
267
268
269/*
270 * ingerr: (supposedly) called when Ingres indicates an error.
271 * I have not yet been able to get this to work to intercept a
272 * database open error.
273 */
274
275int ingerr(num)
276 int *num;
277{
278 ingres_errno = *num;
279 return *num;
280}
281
282
283/* dummy routines */
284int access_list() {}
285int access_visible_list() {}
286int access_maillist() {}
287int access_user() {}
5370cb14 288int access_login() {}
289int access_filesys() {}
51e7c423 290int setup_ausr() {}
51e7c423 291int setup_umac() {}
292int setup_dmac() {}
293int setup_uclu() {}
294int setup_dclu() {}
295int setup_dusr() {}
296int setup_dsin() {}
297int setup_dshi() {}
298int setup_dlis() {}
5370cb14 299int setup_afil() {}
300int setup_ufil() {}
301int setup_ssif() {}
302int setup_sshi() {}
303int setup_dnfq() {}
51e7c423 304int uusr_login_check() {}
51e7c423 305int set_modtime() {}
306int set_modtime_by_id() {}
307int set_user_modtime() {}
308int set_user_modtime_by_id() {}
309int set_finger_modtime() {}
310int set_filesys_modtime() {}
311int set_mach_modtime() {}
312int set_mach_modtime_by_id() {}
313int set_serverhost_modtime() {}
5370cb14 314int set_zephyr_modtime() {}
51e7c423 315int followup_amtl() {}
316int followup_ausr() {}
317int followup_delete_list() {}
318int followup_add_pobox() {}
319int followup_delete_pobox() {}
320int followup_usha() {}
321int followup_old_gpob() {}
5370cb14 322int followup_gsha() {}
323int followup_anfq() {}
324int followup_gzcl() {}
51e7c423 325int followup_fix_acl() {}
5370cb14 326int followup_fix_modby() {}
51e7c423 327int translate_ids() {}
328int expand_list_flags() {}
329int add_new_quota() {}
5370cb14 330int count_members_of_list() {}
51e7c423 331int get_list_is_group() {}
332int get_list_is_maillist() {}
333int add_locker() {}
334int delete_locker() {}
335int add_user_group() {}
336int set_user_pobox() {}
337int get_members_of_list() {}
338int get_groups_of_user() {}
339int get_groups_of_all_users() {}
340int get_all_poboxes() {}
341int get_new_poboxes() {}
342int get_lists_of_administrator() {}
343int followup_gpob() {}
344int set_pobox() {}
345int setup_spop() {}
346int set_pobox_modtime() {}
347int setup_dpob() {}
348int set_cluster_modtime_by_id() {}
349int access_service() {}
350int followup_glin() {}
351int qualified_get_server() {}
352int qualified_get_serverhost() {}
353int trigger_dcm() {}
354int set_nfsphys_modtime() {}
355int setup_alis() {}
356int access_member() {}
5370cb14 357int get_ace_use() {}
51e7c423 358int access_qgli() {}
359int qualified_get_lists() {}
5370cb14 360int delete_current_quota() {}
361int setup_add_group() {}
362int setup_dfil() {}
363int setup_dnfp() {}
364int get_lists_of_member() {}
365int access_all() {}
366int get_list_info() {}
367int register_user() {}
368int access_vis_list_by_name() {}
629827f2 369int set_uppercase_modtime() {}
4d8e9ab9 370int add_member_to_list() {}
371int delete_member_from_list() {}
This page took 0.104449 seconds and 5 git commands to generate.