[1634] in Moira

home help back first fref pref prev next nref lref last post

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);

home help back first fref pref prev next nref lref last post