[1634] in Moira
curses client support for user reservation queries
daemon@ATHENA.MIT.EDU (Garry Zacheiss)
Wed Aug 9 00:14:17 2000
Message-Id: <200008090414.AAA14605@x15-cruise-basselope.mit.edu>
To: moiradev@MIT.EDU
cc: jis@MIT.EDU
Date: Wed, 09 Aug 2000 00:14:10 -0400
From: Garry Zacheiss <zacheiss@MIT.EDU>
This patch implements support for accessing the user reservation
queries from "moira", so that the accounts consultants can use them in
the case of, say, username changes.
Garry
Index: menus.c
===================================================================
RCS file: /afs/athena.mit.edu/astaff/project/moiradev/repository/moira/clients/moira/menus.c,v
retrieving revision 1.42
diff -c -r1.42 menus.c
*** menus.c 2000/08/03 21:49:14 1.42
--- menus.c 2000/08/09 04:01:23
***************
*** 308,313 ****
--- 308,341 ----
}
};
+ /* User Reservations Menu */
+ Menu reservations_menu = {
+ NULLFUNC,
+ NULLFUNC,
+ "User Reservations Menu",
+ 4,
+ {
+ { GetUserReservations, NULLMENU, 2, {
+ { "get", "Get User Reservations" },
+ { "login name", "User login name: " },
+ } },
+ { AddUserReservation, NULLMENU, 3, {
+ { "add", "Add User Reservation" },
+ { "login name", "User login name: " },
+ { "reservation", "Reservation: " },
+ } },
+ { DelUserReservation, NULLMENU, 3, {
+ { "delete", "Delete User Reservation" },
+ { "login name", "User login name: " },
+ { "reservation", "Reservation: " },
+ } },
+ { GetUserByReservation, NULLMENU, 2, {
+ { "getres", "Get Users by Reservation" },
+ { "reservation", "Reservation: " },
+ } },
+ }
+ };
+
/* ------------------------- First Tier Menus ------------------------- */
/*
***************
*** 586,592 ****
NULLFUNC,
NULLFUNC,
"User Menu",
! 11,
{
{ShowUserByLogin, NULLMENU, 2, {
{"login", "Show user information by login name"},
--- 614,620 ----
NULLFUNC,
NULLFUNC,
"User Menu",
! 12,
{
{ShowUserByLogin, NULLMENU, 2, {
{"login", "Show user information by login name"},
***************
*** 622,627 ****
--- 650,656 ----
} },
SUBMENU("pobox", "Post Office Box Menu", &pobox_menu),
SUBMENU("krbmap", "User Kerberos Mappings", &krbmap_menu),
+ SUBMENU("reservations", "User Reservations Menu", &reservations_menu),
}
};
Index: user.c
===================================================================
RCS file: /afs/athena.mit.edu/astaff/project/moiradev/repository/moira/clients/moira/user.c,v
retrieving revision 1.61
diff -c -r1.61 user.c
*** user.c 2000/04/21 19:48:57 1.61
--- user.c 2000/08/09 03:57:15
***************
*** 996,998 ****
--- 996,1072 ----
com_err(program_name, stat, " in DeleteKrbMap.");
return DM_NORMAL;
}
+
+ int GetUserReservations(int argc, char **argv)
+ {
+ int stat;
+ struct mqelem *elem = NULL, *top;
+ char buf[BUFSIZ];
+
+ if ((stat = do_mr_query("get_user_reservations", 1, &argv[1],
+ StoreInfo, &elem)))
+ {
+ com_err(program_name, stat, " in GetUserReservations.");
+ return DM_NORMAL;
+ }
+
+ top = elem = QueueTop(elem);
+ Put_message("");
+ while (elem)
+ {
+ char **info = elem->q_data;
+ sprintf(buf, "Reservation: %s", info[0]);
+ Put_message(buf);
+ elem = elem->q_forw;
+ }
+
+ FreeQueue(QueueTop(top));
+ return DM_NORMAL;
+ }
+
+ int AddUserReservation(int argc, char **argv)
+ {
+ int stat;
+
+ if ((stat = do_mr_query("add_user_reservation", 2, &argv[1],
+ NULL, NULL)))
+ com_err(program_name, stat, " in AddUserReservation.");
+ return DM_NORMAL;
+ }
+
+ int DelUserReservation(int argc, char **argv)
+ {
+ int stat;
+
+ if ((stat = do_mr_query("delete_user_reservation", 2, &argv[1],
+ NULL, NULL)))
+ com_err(program_name, stat, " in DelUserReservation.");
+ return DM_NORMAL;
+ }
+
+ int GetUserByReservation(int argc, char **argv)
+ {
+ int stat;
+ struct mqelem *elem = NULL, *top;
+ char buf[BUFSIZ];
+
+ if ((stat = do_mr_query("get_user_by_reservation", 1, &argv[1],
+ StoreInfo, &elem)))
+ {
+ com_err(program_name, stat, " in GetUserByReservation.");
+ return DM_NORMAL;
+ }
+
+ top = elem = QueueTop(elem);
+ Put_message("");
+ while (elem)
+ {
+ char **info = elem->q_data;
+ sprintf(buf, "User: %s", info[0]);
+ Put_message(buf);
+ elem = elem->q_forw;
+ }
+
+ FreeQueue(QueueTop(top));
+ return DM_NORMAL;
+ }
Index: f_defs.h
===================================================================
RCS file: /afs/athena.mit.edu/astaff/project/moiradev/repository/moira/clients/moira/f_defs.h,v
retrieving revision 1.31
diff -c -r1.31 f_defs.h
*** f_defs.h 2000/03/30 21:59:53 1.31
--- f_defs.h 2000/08/09 03:23:04
***************
*** 148,153 ****
--- 148,157 ----
int DeleteKrbmap(int argc, char **argv);
int GetDirFlags(int argc, char **argv);
int SetDirFlags(int argc, char **argv);
+ int GetUserReservations(int argc, char **argv);
+ int AddUserReservation(int argc, char **argv);
+ int DelUserReservation(int argc, char **argv);
+ int GetUserByReservation(int argc, char **argv);
/* printer.c */
int GetPrn(int argc, char **argv);