emile           Thu Mar 22 07:11:41 2001 EDT

  Modified files:              
    /php4/ext/midgard   article.c element.c page.c pageelement.c topic.c 
  Log:
  Added update duplicate checks
  
  
Index: php4/ext/midgard/article.c
diff -u php4/ext/midgard/article.c:1.18 php4/ext/midgard/article.c:1.19
--- php4/ext/midgard/article.c:1.18     Wed Mar 21 06:53:28 2001
+++ php4/ext/midgard/article.c  Thu Mar 22 07:11:40 2001
@@ -1,4 +1,4 @@
-/* $Id: article.c,v 1.18 2001/03/21 14:53:28 emile Exp $
+/* $Id: article.c,v 1.19 2001/03/22 15:11:40 emile Exp $
 Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
 Copyright (C) 2000 The Midgard Project ry
 Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -556,7 +556,8 @@
                RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED);
    }
 
-   if (mgd_exists_id(mgd_handle(), "article", "topic=$d AND name=$q",
+   /* skip duplicate check for empty names because the name isn't mandatory */
+   if ((*name)->value.str.len && mgd_exists_id(mgd_handle(), "article", "topic=$d AND 
+name=$q",
          (*topic)->value.lval, (*name)->value.str.val)) {
       RETURN_FALSE_BECAUSE(MGD_ERR_DUPLICATE);
    }
@@ -864,7 +865,8 @@
          RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS);
    }
 
-   if (mgd_exists_id(mgd_handle(), "article", "topic=$d AND name=$q AND id<>$d",
+   /* skip duplicate check for empty names because the name isn't mandatory */
+   if ((*name)->value.str.len && mgd_exists_id(mgd_handle(), "article", "topic=$d AND 
+name=$q AND id<>$d",
          (*topic)->value.lval, (*name)->value.str.val, (*id)->value.lval)) {
       RETURN_FALSE_BECAUSE(MGD_ERR_DUPLICATE);
    }
Index: php4/ext/midgard/element.c
diff -u php4/ext/midgard/element.c:1.7 php4/ext/midgard/element.c:1.8
--- php4/ext/midgard/element.c:1.7      Sat Mar 10 14:43:10 2001
+++ php4/ext/midgard/element.c  Thu Mar 22 07:11:40 2001
@@ -1,4 +1,4 @@
-/* $Id: element.c,v 1.7 2001/03/10 22:43:10 emile Exp $
+/* $Id: element.c,v 1.8 2001/03/22 15:11:40 emile Exp $
 Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
 Copyright (C) 2000 The Midgard Project ry
 Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -146,6 +146,11 @@
        if (!isstyleowner(mgd_idfield(mgd_handle(), "style", "element",
                                      (*id)->value.lval)))
                   RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED);
+
+   if (mgd_exists_id(mgd_handle(), "element", "style=$d AND name=$q AND id<>$d",
+         mgd_idfield(mgd_handle(), "style", "element", (*id)->value.lval),
+         (*name)->value.str.val, (*id)->value.lval))
+      RETURN_FALSE_BECAUSE(MGD_ERR_DUPLICATE);
 
        php_midgard_update(return_value, "element", "name=$q,value=$q",
                           (*id)->value.lval,
Index: php4/ext/midgard/page.c
diff -u php4/ext/midgard/page.c:1.12 php4/ext/midgard/page.c:1.13
--- php4/ext/midgard/page.c:1.12        Sat Mar 10 14:43:10 2001
+++ php4/ext/midgard/page.c     Thu Mar 22 07:11:40 2001
@@ -1,4 +1,4 @@
-/* $Id: page.c,v 1.12 2001/03/10 22:43:10 emile Exp $
+/* $Id: page.c,v 1.13 2001/03/22 15:11:40 emile Exp $
 Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
 Copyright (C) 2000 The Midgard Project ry
 Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -255,6 +255,11 @@
        
        if (!mgd_exists_id(mgd_handle(), "person", "id=$d", (*author)->value.lval))
       RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS);
+
+   if (mgd_exists_id(mgd_handle(), "page", "up=$d AND name=$q AND id<>$d",
+         mgd_idfield(mgd_handle(), "up", "page", (*id)->value.lval),
+         (*name)->value.str.val, (*id)->value.lval))
+      RETURN_FALSE_BECAUSE(MGD_ERR_DUPLICATE);
 
        php_midgard_update(return_value, "page",
                           "name=$q,style=$d,title=$q,changed=Curdate(),"
Index: php4/ext/midgard/pageelement.c
diff -u php4/ext/midgard/pageelement.c:1.7 php4/ext/midgard/pageelement.c:1.8
--- php4/ext/midgard/pageelement.c:1.7  Sat Mar 10 14:43:10 2001
+++ php4/ext/midgard/pageelement.c      Thu Mar 22 07:11:40 2001
@@ -1,4 +1,4 @@
-/* $Id: pageelement.c,v 1.7 2001/03/10 22:43:10 emile Exp $
+/* $Id: pageelement.c,v 1.8 2001/03/22 15:11:40 emile Exp $
 Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
 Copyright (C) 2000 The Midgard Project ry
 Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -145,6 +145,11 @@
        if (!ispageowner(mgd_idfield(mgd_handle(), "page", "pageelement",
                                     (*id)->value.lval)))
                   RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED);
+
+   if (mgd_exists_id(mgd_handle(), "pageelement", "page=$d AND name=$q AND id<>$d",
+         mgd_idfield(mgd_handle(), "page", "pageelement", (*id)->value.lval),
+         (*name)->value.str.val, (*id)->value.lval))
+      RETURN_FALSE_BECAUSE(MGD_ERR_DUPLICATE);
 
        php_midgard_update(return_value, "pageelement",
                           "name=$q,value=$q,info=$d", (*id)->value.lval,
Index: php4/ext/midgard/topic.c
diff -u php4/ext/midgard/topic.c:1.12 php4/ext/midgard/topic.c:1.13
--- php4/ext/midgard/topic.c:1.12       Sat Mar 10 14:43:10 2001
+++ php4/ext/midgard/topic.c    Thu Mar 22 07:11:40 2001
@@ -1,4 +1,4 @@
-/* $Id: topic.c,v 1.12 2001/03/10 22:43:10 emile Exp $
+/* $Id: topic.c,v 1.13 2001/03/22 15:11:40 emile Exp $
 Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
 Copyright (C) 2000 The Midgard Project ry
 Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -283,6 +283,11 @@
        if ((*owner)->value.lval != 0
          && !mgd_exists_id(mgd_handle(), "grp", "id=$d", (*owner)->value.lval))
       RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS);
+
+   if (mgd_exists_id(mgd_handle(), "topic", "up=$d AND name=$q AND id<>$d",
+         mgd_idfield(mgd_handle(), "up", "topic", (*id)->value.lval),
+         (*name)->value.str.val, (*id)->value.lval))
+      RETURN_FALSE_BECAUSE(MGD_ERR_DUPLICATE);
 
        php_midgard_update(return_value, "topic",
                           "name=$q,description=$q,extra=$q,owner=$d,code=$q,"



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to