+
+/*
+ * get registration info for a user
+ */
+void cmd_greg(char *argbuf)
+{
+ struct usersupp usbuf;
+ struct vCard *v;
+ char *tel;
+ char who[256];
+ char adr[256];
+ char buf[256];
+
+ extract(who, argbuf, 0);
+
+ if (!(CC->logged_in)) {
+ cprintf("%d Not logged in.\n", ERROR+NOT_LOGGED_IN);
+ return;
+ }
+
+ if (!strcasecmp(who,"_SELF_")) strcpy(who,CC->curr_user);
+
+ if ((CC->usersupp.axlevel < 6) && (strcasecmp(who,CC->curr_user))) {
+ cprintf("%d Higher access required.\n",
+ ERROR+HIGHER_ACCESS_REQUIRED);
+ return;
+ }
+
+ if (getuser(&usbuf, who) != 0) {
+ cprintf("%d '%s' not found.\n", ERROR+NO_SUCH_USER, who);
+ return;
+ }
+
+ v = vcard_get_user(&usbuf);
+
+ cprintf("%d %s\n", LISTING_FOLLOWS, usbuf.fullname);
+ cprintf("%ld\n", usbuf.usernum);
+ cprintf("%s\n", usbuf.password);
+ cprintf("%s\n", vcard_get_prop(v, "n", 0)); /* name */
+
+ strcpy(adr, vcard_get_prop(v, "adr", 0)); /* address... */
+
+ extract_token(buf, adr, 2, ';');
+ cprintf("%s\n", buf); /* street */
+ extract_token(buf, adr, 2, ';');
+ cprintf("%s\n", buf); /* city */
+ extract_token(buf, adr, 2, ';');
+ cprintf("%s\n", buf); /* state */
+ extract_token(buf, adr, 2, ';');
+ cprintf("%s\n", buf); /* zip */
+
+ tel = vcard_get_prop(v, "tel;home", 0);
+ if (tel == NULL) tel = vcard_get_prop(v, "tel", 1);
+ if (tel != NULL) {
+ cprintf("%s\n", tel);
+ }
+ else {
+ cprintf(" \n");
+ }
+
+ cprintf("%d\n", usbuf.axlevel);
+
+ cprintf("%s\n", vcard_get_prop(v, "email;internet", 0));
+ cprintf("000\n");
+ }
+
+
+