davidg Mon Feb 19 07:50:20 2001 EDT Modified files: /php4/ext/midgard article.c page.c topic.c Log: fixed bug #81, for more details, see: http://www.midgard-project.org/bugs/?id=81 Index: php4/ext/midgard/article.c diff -u php4/ext/midgard/article.c:1.3 php4/ext/midgard/article.c:1.4 --- php4/ext/midgard/article.c:1.3 Sat Feb 17 15:21:49 2001 +++ php4/ext/midgard/article.c Mon Feb 19 07:50:20 2001 @@ -1,4 +1,4 @@ -/* $Id: article.c,v 1.3 2001/02/17 23:21:49 emile Exp $ +/* $Id: article.c,v 1.4 2001/02/19 15:50:20 davidg Exp $ Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]> Copyright (C) 2000 The Midgard Project ry Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]> @@ -42,6 +42,16 @@ convert_to_long_ex(root); convert_to_long_ex(article); + if((*article)->value.lval == 0 || /* useless to waste time if article=0 */ + !mgd_exists_id(mgd_handle(), + "article", "id=$d", + (*article)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + if ((*root)->value.lval == 0) + RETURN_TRUE; /* always true if topic = 0 */ + if(!mgd_exists_id(mgd_handle(), "topic", "id=$d", (*root)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + #if 0 if (!isarticlereader((*article)->value.lval)) return; @@ -534,6 +544,10 @@ 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 (!istopicowner((*topic)->value.lval)) { RETURN_FALSE_BECAUSE(MGD_ERR_ACCESS_DENIED); } @@ -555,12 +569,11 @@ ()))) { 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", + /* 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 - ()))) { + mgd_sitegroup(mgd_handle()))) { RETURN_FALSE_BECAUSE(MGD_ERR_SITEGROUP_VIOLATION); } #endif @@ -840,6 +853,10 @@ 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); @@ -865,9 +882,8 @@ 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(), "article,person", + /* 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)", Index: php4/ext/midgard/page.c diff -u php4/ext/midgard/page.c:1.3 php4/ext/midgard/page.c:1.4 --- php4/ext/midgard/page.c:1.3 Sat Feb 17 15:21:50 2001 +++ php4/ext/midgard/page.c Mon Feb 19 07:50:20 2001 @@ -1,4 +1,4 @@ -/* $Id: page.c,v 1.3 2001/02/17 23:21:50 emile Exp $ +/* $Id: page.c,v 1.4 2001/02/19 15:50:20 davidg Exp $ Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]> Copyright (C) 2000 The Midgard Project ry Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]> @@ -79,6 +79,16 @@ WRONG_PARAM_COUNT; convert_to_long_ex(root); convert_to_long_ex(page); + + if((*page)->value.lval == 0 || /* useless to waste time if page=0 */ + !mgd_exists_id(mgd_handle(), + "page", "id=$d", + (*page)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + if ((*root)->value.lval == 0) + RETURN_TRUE; /* always true if root=0 */ + if(!mgd_exists_id(mgd_handle(), "page", "id=$d", (*root)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); ids = mgd_tree(mgd_handle(), "page", (*root)->value.lval, 0, NULL); if (ids) Index: php4/ext/midgard/topic.c diff -u php4/ext/midgard/topic.c:1.3 php4/ext/midgard/topic.c:1.4 --- php4/ext/midgard/topic.c:1.3 Sat Feb 17 15:21:50 2001 +++ php4/ext/midgard/topic.c Mon Feb 19 07:50:20 2001 @@ -1,4 +1,4 @@ -/* $Id: topic.c,v 1.3 2001/02/17 23:21:50 emile Exp $ +/* $Id: topic.c,v 1.4 2001/02/19 15:50:20 davidg Exp $ Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]> Copyright (C) 2000 The Midgard Project ry Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]> @@ -113,6 +113,15 @@ convert_to_long_ex(root); convert_to_long_ex(topic); + if((*topic)->value.lval == 0 || /* useless to waste time if topic=0 */ + !mgd_exists_id(mgd_handle(), + "topic", "id=$d", + (*topic)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); + if ((*root)->value.lval == 0) + RETURN_TRUE; /* always true if root=0 */ + if(!mgd_exists_id(mgd_handle(), "topic", "id=$d", (*root)->value.lval)) + RETURN_FALSE_BECAUSE(MGD_ERR_NOT_EXISTS); #if 0 if (!istopicreader((*topic)->value.lval)) return; -- 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]