]> andersk Git - moira.git/blobdiff - server/qsetup.pc
register_user() on a registered Kerberos-only account should provide you
[moira.git] / server / qsetup.pc
index 4935b3875a306721462ee398ef7e6b9e0af8a90e..040d9533da8b32d7a1cc6c952f3af41dcb4fce65 100644 (file)
@@ -91,6 +91,12 @@ int setup_ausr(struct query *q, char *argv[], client *cl)
   if ((mr_errcode = prefetch_value(q, argv, cl)) != MR_SUCCESS)
     return mr_errcode;
 
+  /* If this is an UPDATE query, we're done. */
+  if (row == 2)
+    return MR_SUCCESS;
+
+  /* For an add query, we need to fill in the creator id. */
+  sprintf(argv[q->argc + q->vcnt + 1], "%d", cl->client_id);
   return MR_SUCCESS;
 }
 
@@ -218,6 +224,10 @@ int setup_dmac(struct query *q, char *argv[], client *cl)
     WHERE mach_id = :id;
   if (cnt > 0)
     return MR_IN_USE;
+  EXEC SQL SELECT COUNT(member_id) INTO :cnt FROM imembers
+    WHERE member_type = 'MACHINE' and member_id = :id;
+  if (cnt > 0)
+    return MR_IN_USE;
 
   EXEC SQL DELETE FROM mcmap WHERE mach_id = :id;
   if (dbms_errno)
@@ -253,7 +263,9 @@ int setup_asnt(struct query *q, char *argv[], client *cl)
   /* Don't allow Private subnets to be created without a valid billing
    * number.
    */
-  if (status == SNET_STATUS_PRIVATE)
+  if (status == SNET_STATUS_PRIVATE_10MBPS || 
+      status == SNET_STATUS_PRIVATE_100MBPS ||
+      status == SNET_STATUS_PRIVATE_1000MBPS)
     {
       EXEC SQL SELECT account_number FROM accountnumbers
        WHERE account_number = :account_number;
@@ -506,6 +518,16 @@ int setup_dlis(struct query *q, char *argv[], client *cl)
   if (cnt > 0)
     return MR_IN_USE;
 
+  EXEC SQL SELECT count(name) INTO :cnt FROM containers
+    WHERE acl_id = :id AND acl_type = 'LIST';
+  if (cnt > 0)
+    return MR_IN_USE;
+
+  EXEC SQL SELECT count(name) INTO :cnt FROM containers
+    WHERE memacl_id = :id AND memacl_type = 'LIST';
+  if (cnt > 0)
+    return MR_IN_USE;
+
   return MR_SUCCESS;
 }
 
This page took 0.032437 seconds and 4 git commands to generate.