r793: - Forgot to implement verify_componentid()
[bugdar.git] / includes / api_bug.php
1 <?php
2 /*=====================================================================*\
3 || ###################################################################
4 || # Bugdar [#]version[#]
5 || # Copyright ©2002-[#]year[#] Iris Studios, Inc.
6 || #
7 || # This program is free software; you can redistribute it and/or modify
8 || # it under the terms of the GNU General Public License as published by
9 || # the Free Software Foundation; version [#]gpl[#] of the License.
10 || #
11 || # This program is distributed in the hope that it will be useful, but
12 || # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 || # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14 || # more details.
15 || #
16 || # You should have received a copy of the GNU General Public License along
17 || # with this program; if not, write to the Free Software Foundation, Inc.,
18 || # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
19 || ###################################################################
20 \*=====================================================================*/
21
22 $GLOBALS['isso:callback']->load('api', null);
23
24 /**
25 * API: Bug
26 *
27 * @author Iris Studios, Inc.
28 * @copyright Copyright ©2002 - [#]year[#], Iris Studios, Inc.
29 * @version $Revision$
30 * @package Bugdar
31 *
32 */
33 class BugAPI extends API
34 {
35 /**
36 * Database fields
37 * @var array
38 * @access private
39 */
40 var $fields = array(
41 'bugid' => array(TYPE_UINT, REQ_AUTO, 'verify_nozero'),
42 'userid' => array(TYPE_UINT, REQ_NO),
43 'dateline' => array(TYPE_UINT, REQ_SET),
44 'productid' => array(TYPE_UINT, REQ_YES, ':self'),
45 'componentid' => array(TYPE_UINT, REQ_NO, ':self'),
46 'versionid' => array(TYPE_UINT, REQ_YES, ':self'),
47 'summary' => array(TYPE_STR, REQ_YES, 'verify_noempty'),
48 'priority' => array(TYPE_UINT, REQ_NO, ':self'),
49 'severity' => array(TYPE_UINT, REQ_NO, ':self'),
50 'status' => array(TYPE_UINT, REQ_NO, ':self'),
51 'resolution' => array(TYPE_UINT, REQ_NO, ':self'),
52 'assignedto' => array(TYPE_UINT, REQ_NO, ':self', array('includes/api_user.php', 'UserAPI'),
53 'duplicateof' => array(TYPE_STR, REQ_NO),
54 'dependency' => array(TYPE_STR, REQ_NO),
55 'hidden' => array(TYPE_BOOL, REQ_NO),
56 'initialreport' => array(TYPE_UINT, REQ_NO),
57 'lastposttime' => array(TYPE_UINT, REQ_NO),
58 'lastpostby' => array(TYPE_UINT, REQ_NO),
59 'hiddenlastposttime' => array(TYPE_UINT, REQ_NO),
60 'hiddenlastpostby' => array(TYPE_UINT, REQ_NO)
61 );
62
63 /**
64 * Database table
65 * @var string
66 * @access private
67 */
68 var $table = 'bug';
69
70 /**
71 * Table prefix
72 * @var string
73 * @access private
74 */
75 var $prefix = TABLE_PREFIX;
76
77 // ###################################################################
78 /**
79 * Set field: dateline
80 *
81 * @access private
82 */
83 function set_dateline()
84 {
85 $this->set('dateline', time());
86 }
87
88 // ###################################################################
89 /**
90 * Verify: productid
91 *
92 * @access private
93 */
94 function verify_productid()
95 {
96 $this->verify_nozero('productid');
97
98 if (!$this->registry->datastore['product'][ $this->values['productid'] ])
99 {
100 return false;
101 }
102 return true;
103 }
104
105 // ###################################################################
106 /**
107 * Verify: componentid
108 *
109 * @access private
110 */
111 function verify_componentid()
112 {
113 if ($this->values['componentid'] != 0)
114 {
115 $product = $this->registry->datastore['product'][ $this->values['product'] ];
116 $version = $this->registry->datastore['version'][ $this->values['version'] ];
117 if ($component['componentmother'] != $product['productid'])
118 {
119 return false;
120 }
121 if (($version['productid'] != $component['productid'] AND $version['productid'] != $product['productid']) AND $version['productid'] != 0)
122 {
123 return false;
124 }
125 }
126 return true;
127 }
128
129 // ###################################################################
130 /**
131 * Verify: versionid
132 *
133 * @access private
134 */
135 function verify_versionid()
136 {
137 $this->verify_nozero('versionid');
138
139 if (!$this->registry->datastore['version'][ $this->values['versionid'] ])
140 {
141 return false;
142 }
143 return true;
144 }
145
146 // ###################################################################
147 /**
148 * Verify: priority
149 *
150 * @access private
151 */
152 function verify_priority()
153 {
154 if (!$this->registry->datastore['priority'][ $this->values['priority'] ])
155 {
156 return false;
157 }
158 return true;
159 }
160
161 // ###################################################################
162 /**
163 * Verify: severity
164 *
165 * @access private
166 */
167 function verify_severity()
168 {
169 if (!$this->registry->datastore['severity'][ $this->values['severity'] ])
170 {
171 return false;
172 }
173 return true;
174 }
175
176 // ###################################################################
177 /**
178 * Verify: status
179 *
180 * @access private
181 */
182 function verify_status()
183 {
184 if (!$this->registry->datastore['status'][ $this->values['status'] ])
185 {
186 return false;
187 }
188 return true;
189 }
190
191 // ###################################################################
192 /**
193 * Verify: resolution
194 *
195 * @access private
196 */
197 function verify_resolution()
198 {
199 if (!$this->registry->datastore['resolution'][ $this->values['resolution'] ])
200 {
201 return false;
202 }
203 return true;
204 }
205
206 // ###################################################################
207 /**
208 * Verify: assignedto
209 *
210 * @access private
211 */
212 function verify_assignedto()
213 {
214 if (!$this->registry->datastore['assignedto'][ $this->values['assignedto'] ]['userid'])
215 {
216 return false;
217 }
218 return true;
219 }
220 }
221
222 /*=====================================================================*\
223 || ###################################################################
224 || # $HeadURL$
225 || # $Id$
226 || ###################################################################
227 \*=====================================================================*/
228 ?>