emile Tue Mar 6 02:35:03 2001 EDT Modified files: /php4/ext/midgard article.c element.c event.c eventmember.c file.c group.c host.c page.c pageelement.c preferences.c snippet.c snippetdir.c style.c topic.c Log: Object integrity checks cleanup
Index: php4/ext/midgard/article.c diff -u php4/ext/midgard/article.c:1.10 php4/ext/midgard/article.c:1.11 --- php4/ext/midgard/article.c:1.10 Tue Feb 27 17:00:31 2001 +++ php4/ext/midgard/article.c Tue Mar 6 02:35:02 2001 @@ -1,4 +1,4 @@ -/* $Id: article.c,v 1.10 2001/02/28 01:00:31 davidg Exp $ +/* $Id: article.c,v 1.11 2001/03/06 10:35:02 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]> @@ -543,39 +543,18 @@ convert_to_string_ex(extra3); convert_to_long_ex(type); - /* author must NOT be 0 */ - if (!(*author)->value.lval) - RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + if (!mgd_exists_id(mgd_handle(), "person", "id=$id", (*author)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); - if (!istopicowner((*topic)->value.lval)) { - RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); - } + if (!mgd_exists_id(mgd_handle(), "topic", "id=$id", (*topic)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); -#if HAVE_MIDGARD_SITEGROUPS - /* up must be in same SG or be 0 */ - if ((*up)->value.lval != 0 && !mgd_exists_id(mgd_handle(), "article", - "id=$d AND sitegroup IN (0,$d)", - (*up)->value.lval, - mgd_sitegroup(mgd_handle()))) { - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); - } + if ((*up)->value.lval != 0 && !mgd_exists_id(mgd_handle(), "article", "id=$id", +(*up)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); - /* topic must be in same SG or be 0 */ - if ((*topic)->value.lval != 0 && !mgd_exists_id(mgd_handle(), "topic", - "id=$d AND sitegroup IN (0,$d)", - (*topic)->value.lval, - mgd_sitegroup(mgd_handle - ()))) { - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); - } - /* author must be in same SG */ - if (!mgd_exists_id(mgd_handle(), "person", - "id=$d AND sitegroup IN (0,$d)", - (*author)->value.lval, - mgd_sitegroup(mgd_handle()))) { - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); + if (!istopicowner((*topic)->value.lval)) { + RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); } -#endif php_midgard_create(return_value, "article", "up,topic,name,title,abstract,content,author," @@ -655,9 +634,7 @@ MGD_FUNCTION(bool, update_article_replyto, (int id, int up)) { zval **id, **up; -#if HAVE_MIDGARD_SITEGROUPS int parent_topic; -#endif RETVAL_FALSE; CHECK_MGD; @@ -668,33 +645,32 @@ convert_to_long_ex(id); convert_to_long_ex(up); + if ((*up)->value.lval != 0) { #if HAVE_MIDGARD_SITEGROUPS - parent_topic = - mgd_idfield(mgd_handle(), "topic", "article", (*up)->value.lval); - /* up must be in same SG or be 0 */ - if ((*up)->value.lval != 0 - && !mgd_exists_bool(mgd_handle(), "article src, article tgt", - "src.id=$d AND tgt.id=$d" - " AND (src.sitegroup=tgt.sitegroup" - " OR src.sitegroup=0" " OR tgt.sitegroup=0)", - (*id)->value.lval, (*up)->value.lval)) { - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); + if (!mgd_exists_bool(mgd_handle(), "article src, article tgt", + +"src.id=$d AND tgt.id=$d" + " AND +(src.sitegroup=tgt.sitegroup" + + " OR src.sitegroup=0" + + " OR tgt.sitegroup=0)", + +(*id)->value.lval, (*up)->value.lval)) { + RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); } +#else + if (!mgd_exists_id(mgd_handle(), "article", "id=$d", (*up)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); #endif + } if (!isarticleowner((*id)->value.lval)) { RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); } - php_midgard_update(return_value, "article", "up=$d" -#if HAVE_MIDGARD_SITEGROUPS - ",topic=$d" -#endif - , (*id)->value.lval, (*up)->value.lval -#if HAVE_MIDGARD_SITEGROUPS - , parent_topic -#endif - ); + parent_topic = + mgd_idfield(mgd_handle(), "topic", "article", (*up)->value.lval); + + php_midgard_update(return_value, "article", "up=$d,topic=$d", + (*id)->value.lval, (*up)->value.lval, parent_topic); + PHP_UPDATE_REPLIGARD("article", (*id)->value.lval); } @@ -858,10 +834,6 @@ convert_to_string_ex(extra2); convert_to_string_ex(extra3); - /* author must NOT be 0 */ - if (!(*author)->value.lval) - RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); - /* EEH: conversion to string is intentional, see update code */ if (type) convert_to_string_ex(type); @@ -874,28 +846,18 @@ RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); } -#if HAVE_MIDGARD_SITEGROUPS - /* TODO: If we change topic here we should clear 'up' */ + if (!mgd_exists_id(mgd_handle(), "person", "id=$id", (*author)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); - /* topic must be in same SG or be 0 */ - if ((*topic)->value.lval != 0 - && !mgd_exists_bool(mgd_handle(), "article,topic", - "article.id=$d AND topic.id=$d" - " AND (article.sitegroup=topic.sitegroup" - " OR article.sitegroup=0" " OR topic.sitegroup=0)", - (*id)->value.lval, (*topic)->value.lval)) { - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); - } + if (!mgd_exists_id(mgd_handle(), "topic", "id=$id", (*topic)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); - /* author must be in same SG */ - if (!mgd_exists_bool(mgd_handle(), "article,person", - "article.id=$d AND person.id=$d" - " AND (article.sitegroup=person.sitegroup" - " OR article.sitegroup=0" " OR person.sitegroup=0)", - (*id)->value.lval, (*author)->value.lval)) { - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); + if ((*up)->value.lval != 0 && !mgd_exists_id(mgd_handle(), "article", "id=$id", +(*up)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + + if (!istopicowner((*topic)->value.lval)) { + RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); } -#endif php_midgard_update(return_value, "article", "name=$q,title=$q,abstract=$q,content=$q," Index: php4/ext/midgard/element.c diff -u php4/ext/midgard/element.c:1.5 php4/ext/midgard/element.c:1.6 --- php4/ext/midgard/element.c:1.5 Tue Feb 27 17:00:31 2001 +++ php4/ext/midgard/element.c Tue Mar 6 02:35:02 2001 @@ -1,4 +1,4 @@ -/* $Id: element.c,v 1.5 2001/02/28 01:00:31 davidg Exp $ +/* $Id: element.c,v 1.6 2001/03/06 10:35:02 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]> @@ -111,16 +111,6 @@ if (mgd_exists_id(mgd_handle(), "element", "style=$d AND name=$q", (*style)->value.lval, (*name)->value.str.val)) RETURN_FALSE_BECAUSE(MGD_ERR_DUPLICATE); - -#if HAVE_MIDGARD_SITEGROUPS - /* style must be in same SG or be 0 */ - if ((*style)->value.lval != 0 && !mgd_exists_id(mgd_handle(), "style", - "id=$d AND sitegroup IN (0,$d)", - (*style)->value.lval, - mgd_sitegroup(mgd_handle - ())))RETURN_FALSE_BECAUSE - (MGD_ERR_SITEGROUP_VIOLATION); -#endif php_midgard_create(return_value, "element", "style,name,value", Index: php4/ext/midgard/event.c diff -u php4/ext/midgard/event.c:1.8 php4/ext/midgard/event.c:1.9 --- php4/ext/midgard/event.c:1.8 Tue Feb 27 17:00:31 2001 +++ php4/ext/midgard/event.c Tue Mar 6 02:35:02 2001 @@ -1,4 +1,4 @@ -/* $Id: event.c,v 1.8 2001/02/28 01:00:31 davidg Exp $ +/* $Id: event.c,v 1.9 2001/03/06 10:35:02 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]> @@ -80,26 +80,15 @@ if ((*up)->value.lval && !iseventowner((*up)->value.lval)) RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); -#if HAVE_MIDGARD_SITEGROUPS - /* up must be in same SG or be 0 */ - if ((*up)->value.lval != 0 && !mgd_exists_id(mgd_handle(), "event", - "id=$d AND sitegroup IN (0,$d)", - (*up)->value.lval, - mgd_sitegroup(mgd_handle()))) - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); - /* owner must be in same SG or be 0 */ - /* TODO: should we in fact allow owner == 0 for non-root? */ - if ((*owner)->value.lval != 0 && !mgd_exists_id(mgd_handle(), "grp", - "id=$d AND sitegroup IN (0,$d)", - (*owner)->value.lval, - mgd_sitegroup(mgd_handle()))) - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); -#else if ((*up)->value.lval != 0 - && !mgd_exists_id(mgd_handle(), "event", "id=$d", - (*up)->value.lval)) - RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); -#endif + && !mgd_exists_id(mgd_handle(), "event", "id=$d", (*up)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + + /* TODO: should we in fact allow owner == 0 for non-root? */ + + if ((*owner)->value.lval != 0 + && !mgd_exists_id(mgd_handle(), "grp", "id=$d", (*owner)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); php_midgard_create(return_value, "event", "up,start,end,title," "description,type,extra,owner,creator,created,revisor,revised,revision,busy", @@ -163,19 +152,9 @@ if (!(*id)->value.lval || !iseventowner((*id)->value.lval)) RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); -#if HAVE_MIDGARD_SITEGROUPS - /* owner must be in same SG or be 0 */ - /* should we in fact allow owner == 0 for non-root? */ if ((*owner)->value.lval != 0 - && !mgd_exists_bool(mgd_handle(), "event,grp", - "event.id=$d AND grp.id=$d" - " AND (event.sitegroup=grp.sitegroup" - " OR event.sitegroup=0" - " OR grp.sitegroup=0)", - (*id)->value.lval, - (*owner)->value.lval)) - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); -#endif + && !mgd_exists_id(mgd_handle(), "grp", "id=$d", (*owner)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); php_midgard_update(return_value, "event", "start=$d,end=$d,title=$q," Index: php4/ext/midgard/eventmember.c diff -u php4/ext/midgard/eventmember.c:1.5 php4/ext/midgard/eventmember.c:1.6 --- php4/ext/midgard/eventmember.c:1.5 Tue Feb 27 17:00:31 2001 +++ php4/ext/midgard/eventmember.c Tue Mar 6 02:35:02 2001 @@ -1,4 +1,4 @@ -/* $Id: eventmember.c,v 1.5 2001/02/28 01:00:31 davidg Exp $ +/* $Id: eventmember.c,v 1.6 2001/03/06 10:35:02 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]> @@ -82,13 +82,9 @@ convert_to_long_ex(uid); convert_to_string_ex(extra); - /* event must exist and be in the same sitegroup as the current sitegroup - */ if (!mgd_exists_id(mgd_handle(), "event", "id=$d", (*eid)->value.lval)) RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); - /* person must exist and be in the same sitegroup as the current sitegroup - */ if (!mgd_exists_id(mgd_handle(), "person", "id=$d", (*uid)->value.lval)) RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); Index: php4/ext/midgard/file.c diff -u php4/ext/midgard/file.c:1.5 php4/ext/midgard/file.c:1.6 --- php4/ext/midgard/file.c:1.5 Tue Feb 27 17:00:31 2001 +++ php4/ext/midgard/file.c Tue Mar 6 02:35:02 2001 @@ -1,4 +1,4 @@ -/* $Id: file.c,v 1.5 2001/02/28 01:00:31 davidg Exp $ +/* $Id: file.c,v 1.6 2001/03/06 10:35:02 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]> @@ -85,11 +85,8 @@ if (!isarticleowner((*article)->value.lval)) RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); -#if HAVE_MIDGARD_SITEGROUPS - /* article must be in same SG */ - if (!mgd_exists_id(mgd_handle(), "article", "id=$d", - (*article)->value.lval)) RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); -#endif + if (!mgd_exists_id(mgd_handle(), "article", "id=$d", (*article)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); php_midgard_create(return_value, "file", "article,type,name,content,size,md5", Index: php4/ext/midgard/group.c diff -u php4/ext/midgard/group.c:1.6 php4/ext/midgard/group.c:1.7 --- php4/ext/midgard/group.c:1.6 Tue Feb 27 17:00:31 2001 +++ php4/ext/midgard/group.c Tue Mar 6 02:35:02 2001 @@ -1,4 +1,4 @@ -/* $Id: group.c,v 1.6 2001/02/28 01:00:31 davidg Exp $ +/* $Id: group.c,v 1.7 2001/03/06 10:35:02 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]> @@ -167,11 +167,16 @@ // RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); #endif - if (!isgroupowner((*owner)->value.lval) - || mgd_exists_id(mgd_handle(), "grp", "name=$q", - (*name)->value.str. - val)) RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); + if (!isgroupowner((*owner)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); + if ((*owner)->value.lval != 0 + && !mgd_exists_id(mgd_handle(), "grp", "id=$d", (*owner)->value.str.val)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + + if (mgd_exists_id(mgd_handle(), "grp", "name=$q", (*name)->value.str.val)) + RETURN_FALSE_BECAUSE(MGD_ERR_DUPLICATE); + php_midgard_create(return_value, "grp", "name,official,street,postcode,city," "homepage,email,extra,owner", @@ -233,6 +238,10 @@ if (!isgroupowner((*gid)->value.lval)) RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); + + if ((*owner)->value.lval != 0 + && !mgd_exists_id(mgd_handle(), "grp", "id=$d", (*owner)->value.str.val)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); php_midgard_update(return_value, "grp", "name=$q,official=$q,street=$q,postcode=$q,city=$q," Index: php4/ext/midgard/host.c diff -u php4/ext/midgard/host.c:1.5 php4/ext/midgard/host.c:1.6 --- php4/ext/midgard/host.c:1.5 Tue Feb 27 17:00:31 2001 +++ php4/ext/midgard/host.c Tue Mar 6 02:35:02 2001 @@ -1,4 +1,4 @@ -/* $Id: host.c,v 1.5 2001/02/28 01:00:31 davidg Exp $ +/* $Id: host.c,v 1.6 2001/03/06 10:35:02 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]> @@ -158,23 +158,17 @@ RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); #endif -#if HAVE_MIDGARD_SITEGROUPS - /* root must be in same SG or be 0 */ - if ((*root)->value.lval != 0 && !mgd_exists_id(mgd_handle(), "page", - "id=$d", - (*root)->value.lval)) - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); - /* style must be in same SG or be 0 */ - if ((*style)->value.lval != 0 && !mgd_exists_id(mgd_handle(), "style", - "id=$d", - (*style)->value.lval)) - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); - /* style must be in same SG or be 0 */ - if ((*owner)->value.lval != 0 && !mgd_exists_id(mgd_handle(), "grp", - "id=$d", - (*owner)->value.lval)) - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); -#endif + if ((*root)->value.lval != 0 + && !mgd_exists_id(mgd_handle(), "page", "id=$d", (*root)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + + if ((*style)->value.lval != 0 + && !mgd_exists_id(mgd_handle(), "style", "id=$d", (*style)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + + if ((*owner)->value.lval != 0 + && !mgd_exists_id(mgd_handle(), "grp", "id=$d", (*owner)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); php_midgard_create(return_value, "host", "name,port,online,root,style,info,owner,prefix", @@ -195,10 +189,6 @@ char *prefix_sql = ""; char *name_port_sql = ""; -#if HAVE_MIDGARD_SITEGROUPS - int xref_ok = 1; -#endif - RETVAL_FALSE; CHECK_MGD; @@ -290,37 +280,23 @@ (*name)->value.str.val, (*port)->value.lval); #endif -#if HAVE_MIDGARD_SITEGROUPS - /* root must be in same SG or be 0 */ - if ((*root)->value.lval != 0 && !mgd_exists_bool(mgd_handle(), "host,page", - "host.id=$d AND page.id=$d" - " AND (host.sitegroup=page.sitegroup" - " OR host.sitegroup=0" - " OR page.sitegroup=0)", - (*id)->value.lval, - (*root)->value.lval)) xref_ok = 0; - /* style must be in same SG or be 0 */ + if ((*root)->value.lval != 0 + && !mgd_exists_id(mgd_handle(), "page", "id=$d", (*root)->value.lval)) { + mgd_free_pool(pool); + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + } + if ((*style)->value.lval != 0 - && !mgd_exists_bool(mgd_handle(), "host,style", - "host.id=$d AND style.id=$d" - " AND (host.sitegroup=style.sitegroup" - " OR host.sitegroup=0" " OR style.sitegroup=0)", - (*id)->value.lval, (*style)->value.lval)) - xref_ok = 0; - /* owner must be in same SG or be 0 */ - if ((*owner)->value.lval != 0 && !mgd_exists_bool(mgd_handle(), "host,grp", - "host.id=$d AND grp.id=$d" - " AND (host.sitegroup=grp.sitegroup" - " OR host.sitegroup=0" - " OR grp.sitegroup=0)", - (*id)->value.lval, - (*owner)->value.lval)) xref_ok = 0; + && !mgd_exists_id(mgd_handle(), "style", "id=$d", (*style)->value.lval)) { + mgd_free_pool(pool); + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + } - if (!xref_ok) { + if ((*owner)->value.lval != 0 + && !mgd_exists_id(mgd_handle(), "grp", "id=$d", (*owner)->value.lval)) { mgd_free_pool(pool); - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); - } -#endif + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + } php_midgard_update(return_value, "host", "online=$d,root=$d," Index: php4/ext/midgard/page.c diff -u php4/ext/midgard/page.c:1.10 php4/ext/midgard/page.c:1.11 --- php4/ext/midgard/page.c:1.10 Tue Feb 27 17:00:32 2001 +++ php4/ext/midgard/page.c Tue Mar 6 02:35:02 2001 @@ -1,4 +1,4 @@ -/* $Id: page.c,v 1.10 2001/02/28 01:00:32 davidg Exp $ +/* $Id: page.c,v 1.11 2001/03/06 10:35:02 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]> @@ -173,29 +173,23 @@ if (!ispageowner((*up)->value.lval)) RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); + if ((*up)->value.lval != 0 - && mgd_exists_id(mgd_handle(), "page", "up=$d AND name=$q", + && mgd_exists_id(mgd_handle(), "page", "up=$d AND name=$q", (*up)->value.lval, (*name)->value.str.val)) RETURN_FALSE_BECAUSE(MGD_ERR_DUPLICATE); -#if HAVE_MIDGARD_SITEGROUPS - /* up must be in same SG or be 0 */ - if ((*up)->value.lval != 0 && !mgd_exists_id(mgd_handle(), "page", - "id=$d", - (*up)->value.lval)) - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); - /* style must be in same SG or be 0 */ - if ((*style)->value.lval != 0 && !mgd_exists_id(mgd_handle(), "style", - "id=$d", - (*style)->value.lval)) - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); - /* author must be in same SG or be 0 */ - if ((*author)->value.lval != 0 && !mgd_exists_id(mgd_handle(), "person", - "id=$d", - (*author)->value.lval)) - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); -#endif + if ((*up)->value.lval != 0 + && !mgd_exists_id(mgd_handle(), "page", "id=$d", (*up)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + if ((*style)->value.lval != 0 + && !mgd_exists_id(mgd_handle(), "style", "id=$d", (*style)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + + if (!mgd_exists_id(mgd_handle(), "person", "id=$d", (*author)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + php_midgard_create(return_value, "page", "up,name,style,title,changed,content,author,info", "$d,$q,$d,$q,Curdate(),$q,$d,$d", @@ -251,25 +245,12 @@ if (!ispageowner((*id)->value.lval)) RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); -#if HAVE_MIDGARD_SITEGROUPS - /* style must be in same SG or be 0 */ if ((*style)->value.lval != 0 - && !mgd_exists_bool(mgd_handle(), "page,style", - "page.id=$d AND style.id=$d" - " AND (page.sitegroup=style.sitegroup" - " OR page.sitegroup=0" " OR style.sitegroup=0)", - (*id)->value.lval, (*style)->value.lval)) - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); - /* author must be in same SG or be 0 */ - if ((*author)->value.lval != 0 - && !mgd_exists_bool(mgd_handle(), "page,person", - "page.id=$d AND person.id=$d" - " AND (page.sitegroup=person.sitegroup" - " OR page.sitegroup=0" - " OR person.sitegroup=0)", (*id)->value.lval, - (*author)->value.lval)) - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); -#endif + && !mgd_exists_id(mgd_handle(), "style", "id=$d", (*style)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + + if (!mgd_exists_id(mgd_handle(), "person", "id=$d", (*author)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); 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.5 php4/ext/midgard/pageelement.c:1.6 --- php4/ext/midgard/pageelement.c:1.5 Tue Feb 27 17:00:32 2001 +++ php4/ext/midgard/pageelement.c Tue Mar 6 02:35:02 2001 @@ -1,4 +1,4 @@ -/* $Id: pageelement.c,v 1.5 2001/02/28 01:00:32 davidg Exp $ +/* $Id: pageelement.c,v 1.6 2001/03/06 10:35:02 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]> @@ -94,9 +94,9 @@ convert_to_string_ex(value); convert_to_long_ex(inherit); - if (!(*page)->value.lval || !mgd_exists_id(mgd_handle(), "page", "id=$d", - (*page)->value.lval)) - RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + if (!(*page)->value.lval + || !mgd_exists_id(mgd_handle(), "page", "id=$d", (*page)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); if (!ispageowner((*page)->value.lval)) RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); @@ -104,14 +104,6 @@ if (mgd_exists_id(mgd_handle(), "pageelement", "page=$d AND name=$q", (*page)->value.lval, (*name)->value.str.val)) RETURN_FALSE_BECAUSE(MGD_ERR_DUPLICATE); - -#if HAVE_MIDGARD_SITEGROUPS - /* page must be in same SG or be 0 */ - if ((*page)->value.lval != 0 && !mgd_exists_id(mgd_handle(), "page", - "id=$d", - (*page)->value.lval)) - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); -#endif php_midgard_create(return_value, "pageelement", "page,name,value,info", "$d,$q,$q,$d", (*page)->value.lval, (*name)->value.str.val, Index: php4/ext/midgard/preferences.c diff -u php4/ext/midgard/preferences.c:1.5 php4/ext/midgard/preferences.c:1.6 --- php4/ext/midgard/preferences.c:1.5 Tue Feb 27 17:00:32 2001 +++ php4/ext/midgard/preferences.c Tue Mar 6 02:35:02 2001 @@ -1,4 +1,4 @@ -/* $Id: preferences.c,v 1.5 2001/02/28 01:00:32 davidg Exp $ +/* $Id: preferences.c,v 1.6 2001/03/06 10:35:02 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]> @@ -143,15 +143,12 @@ convert_to_string_ex(name); convert_to_string_ex(value); - if (mgd_user(mgd_handle()) != (*uid)->value.lval && - !mgd_isadmin(mgd_handle())) + if (mgd_user(mgd_handle()) != (*uid)->value.lval + && !mgd_isadmin(mgd_handle())) RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); -#if HAVE_MIDGARD_SITEGROUPS - if (!mgd_exists_id(mgd_handle(), "person", - "id=$d", - (*uid)->value.lval)) RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); -#endif + if (!mgd_exists_id(mgd_handle(), "person", "id=$d", (*uid)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); php_midgard_create(return_value, "preference", "uid,domain,name,value", "$d,$q,$q,$q", (*uid)->value.lval, (*domain)->value.str.val, Index: php4/ext/midgard/snippet.c diff -u php4/ext/midgard/snippet.c:1.5 php4/ext/midgard/snippet.c:1.6 --- php4/ext/midgard/snippet.c:1.5 Tue Feb 27 17:00:32 2001 +++ php4/ext/midgard/snippet.c Tue Mar 6 02:35:02 2001 @@ -1,4 +1,4 @@ -/* $Id: snippet.c,v 1.5 2001/02/28 01:00:32 davidg Exp $ +/* $Id: snippet.c,v 1.6 2001/03/06 10:35:02 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]> @@ -125,23 +125,18 @@ convert_to_string_ex(doc); convert_to_string_ex(author); - if (!mgd_exists_id - (mgd_handle(), "snippetdir", "id=$d", - (*snippetdir)->value.lval)) RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); - -#if HAVE_MIDGARD_SITEGROUPS - /* up must be in same SG or be 0 */ - if ((*snippetdir)->value.lval != 0 - && !mgd_exists_id(mgd_handle(), "snippetdir", - "id=$d AND sitegroup IN (0,$d)", - (*snippetdir)->value.lval, - mgd_sitegroup(mgd_handle()))) - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); -#endif - if (!issnippetdirowner((*snippetdir)->value.lval) - || mgd_exists_id(mgd_handle(), "snippet", "up=$d AND name=$q", - (*snippetdir)->value.lval, (*name)->value.str.val)) + 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(), "snippetdir", "id=$d", +(*snippetdir)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + + if (!issnippetdirowner((*snippetdir)->value.lval)) RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); + + if (mgd_exists_id(mgd_handle(), "snippet", "up=$d AND name=$q", + (*snippetdir)->value.lval, (*name)->value.str.val)) + RETURN_FALSE_BECAUSE(MGD_ERR_DUPLICATE); php_midgard_create(return_value, "snippet", "up,name,code,doc,author,creator,created,revisor,revised,revision", Index: php4/ext/midgard/snippetdir.c diff -u php4/ext/midgard/snippetdir.c:1.7 php4/ext/midgard/snippetdir.c:1.8 --- php4/ext/midgard/snippetdir.c:1.7 Tue Feb 27 17:00:32 2001 +++ php4/ext/midgard/snippetdir.c Tue Mar 6 02:35:02 2001 @@ -1,4 +1,4 @@ -/* $Id: snippetdir.c,v 1.7 2001/02/28 01:00:32 davidg Exp $ +/* $Id: snippetdir.c,v 1.8 2001/03/06 10:35:02 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]> @@ -157,31 +157,30 @@ WRONG_PARAM_COUNT; } } - if (up) - convert_to_long_ex(up); + + if (up) convert_to_long_ex(up); convert_to_string_ex(name); convert_to_string_ex(description); convert_to_long_ex(owner); snippetdir_owner_id = (*owner)->value.lval; + if (up) { -#if HAVE_MIDGARD_SITEGROUPS - /* up must be in same SG or be 0 */ if ((*up)->value.lval != 0 - && !mgd_exists_id(mgd_handle(), "snippetdir", "id=$d", - (*up)->value.lval)) - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); - /* owner must be in same SG or be 0 */ + && !mgd_exists_id(mgd_handle(), "snippetdir", "id=$d", (*up)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + /* TODO: should we in fact allow owner == 0 for non-root? */ - if ((*owner)->value.lval != 0 && !mgd_exists_id(mgd_handle(), "grp", - "id=$d", - (*owner)->value.lval)) - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); -#endif - if (!issnippetdirowner((*up)->value.lval) - || mgd_exists_id(mgd_handle(), "snippetdir", + if ((*owner)->value.lval != 0 + && !mgd_exists_id(mgd_handle(), "grp", "id=$d", (*owner)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + + if (!issnippetdirowner((*up)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); + + if (mgd_exists_id(mgd_handle(), "snippetdir", "up=$d AND name=$q", (*up)->value.lval, (*name)->value.str.val)) - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); + RETURN_FALSE_BECAUSE(MGD_ERR_DUPLICATE); php_midgard_create(return_value, "snippetdir", "name,up,owner, description", "$q,$d,$d,$q", @@ -240,19 +239,10 @@ (*id)->value.lval), (*name)->value.str.val)) RETURN_FALSE_BECAUSE(MGD_ERR_DUPLICATE); -#if HAVE_MIDGARD_SITEGROUPS - /* owner must be in same SG or be 0 */ - /* should we in fact allow owner == 0 for non-root? */ if ((*owner)->value.lval != 0 - && !mgd_exists_bool(mgd_handle(), "snippetdir,grp", - "snippetdir.id=$d AND grp.id=$d" - " AND (snippetdir.sitegroup=grp.sitegroup" - " OR snippetdir.sitegroup=0" - " OR grp.sitegroup=0)", - (*id)->value.lval, - (*owner)->value.lval)) - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); -#endif + && !mgd_exists_id(mgd_handle(), "grp", "id=$d", (*owner)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + php_midgard_update(return_value, "snippetdir", "name=$q, owner=$d, description=$q", (*id)->value.lval, (*name)->value.str.val, (*owner)->value.lval, Index: php4/ext/midgard/style.c diff -u php4/ext/midgard/style.c:1.6 php4/ext/midgard/style.c:1.7 --- php4/ext/midgard/style.c:1.6 Tue Feb 27 17:00:32 2001 +++ php4/ext/midgard/style.c Tue Mar 6 02:35:02 2001 @@ -1,4 +1,4 @@ -/* $Id: style.c,v 1.6 2001/02/28 01:00:32 davidg Exp $ +/* $Id: style.c,v 1.7 2001/03/06 10:35:02 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]> @@ -115,18 +115,13 @@ if (!isstyleowner((*up)->value.lval)) RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); -#if HAVE_MIDGARD_SITEGROUPS - /* up must be in same SG or be 0 */ - if ((*up)->value.lval != 0 && !mgd_exists_id(mgd_handle(), "style", - "id=$d", - (*up)->value.lval)) - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); - /* owner must be in same SG or be 0 */ - if ((*owner)->value.lval != 0 && !mgd_exists_id(mgd_handle(), "grp", - "id=$d", - (*owner)->value.lval)) - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); -#endif + if ((*up)->value.lval != 0 + && !mgd_exists_id(mgd_handle(), "style", "id=$d", (*up)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + + if ((*owner)->value.lval != 0 + && !mgd_exists_id(mgd_handle(), "grp", "id=$d", (*owner)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); php_midgard_create(return_value, "style", "up,name,owner", "$d,$q,$d", (*up)->value.lval, (*name)->value.str.val, @@ -167,17 +162,9 @@ if (!isstyleowner((*id)->value.lval)) RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); -#if HAVE_MIDGARD_SITEGROUPS - /* owner must be in same SG or be 0 */ - if ((*owner)->value.lval != 0 && !mgd_exists_bool(mgd_handle(), "style,grp", - "style.id=$d AND grp.id=$d" - " AND (style.sitegroup=grp.sitegroup" - " OR style.sitegroup=0" - " OR grp.sitegroup=0)", - (*id)->value.lval, - (*owner)->value.lval)) - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); -#endif + if ((*owner)->value.lval != 0 + && !mgd_exists_id(mgd_handle(), "grp", "id=$d", (*owner)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); php_midgard_update(return_value, "style", "name=$q,owner=$d", (*id)->value.lval, (*name)->value.str.val, Index: php4/ext/midgard/topic.c diff -u php4/ext/midgard/topic.c:1.10 php4/ext/midgard/topic.c:1.11 --- php4/ext/midgard/topic.c:1.10 Tue Feb 27 17:00:32 2001 +++ php4/ext/midgard/topic.c Tue Mar 6 02:35:02 2001 @@ -1,4 +1,4 @@ -/* $Id: topic.c,v 1.10 2001/02/28 01:00:32 davidg Exp $ +/* $Id: topic.c,v 1.11 2001/03/06 10:35:02 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]> @@ -216,29 +216,21 @@ convert_to_long_ex(owner); convert_to_string_ex(code); - if (!istopicowner((*up)->value.lval) - || mgd_exists_id(mgd_handle(), "topic", "up=$d AND name=$q", - (*up)->value.lval, (*name)->value.str.val)) { + if (!istopicowner((*up)->value.lval)) RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); - } -#if HAVE_MIDGARD_SITEGROUPS - /* up must be in same SG or be 0 */ - if ((*up)->value.lval != 0 && !mgd_exists_id(mgd_handle(), "topic", - "id=$d AND sitegroup IN (0,$d)", - (*up)->value.lval, - mgd_sitegroup(mgd_handle()))) { - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); - } - /* owner must be in same SG or be 0 */ + + if (mgd_exists_id(mgd_handle(), "topic", "up=$d AND name=$q", + (*up)->value.lval, (*name)->value.str.val)) + RETURN_FALSE_BECAUSE(MGD_ERR_DUPLICATE); + + if ((*up)->value.lval != 0 + && !mgd_exists_id(mgd_handle(), "topic", "id=$d", (*up)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + /* TODO: should we in fact allow owner == 0 for non-root? */ - if ((*owner)->value.lval != 0 && !mgd_exists_id(mgd_handle(), "grp", - "id=$d AND sitegroup IN (0,$d)", - (*owner)->value.lval, - mgd_sitegroup(mgd_handle - ()))) { - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); - } -#endif + if ((*owner)->value.lval != 0 + && !mgd_exists_id(mgd_handle(), "grp", "id=$d", (*owner)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); php_midgard_create(return_value, "topic", "up,name,description,extra,owner,code," @@ -287,20 +279,10 @@ if (!istopicowner((*id)->value.lval)) RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); -#if HAVE_MIDGARD_SITEGROUPS - /* owner must be in same SG or be 0 */ - /* should we in fact allow owner == 0 for non-root? */ + /* TODO: should we in fact allow owner == 0 for non-root? */ if ((*owner)->value.lval != 0 - && !mgd_exists_bool(mgd_handle(), "topic,grp", - "topic.id=$d AND grp.id=$d" - " AND (topic.sitegroup=grp.sitegroup" - " OR topic.sitegroup=0" - " OR grp.sitegroup=0)", - (*id)->value.lval, - (*owner)->value.lval)) { - RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); - } -#endif + && !mgd_exists_id(mgd_handle(), "grp", "id=$d", (*owner)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); 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]