[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gforge-commits] gforge/common/frs FRSFile.class, 1.9, 1.10 FRSPackage.c
From: |
tperdue |
Subject: |
[Gforge-commits] gforge/common/frs FRSFile.class, 1.9, 1.10 FRSPackage.class, 1.11, 1.12 FRSRelease.class, 1.10, 1.11 |
Date: |
Wed, 04 Aug 2004 11:18:37 -0500 |
Update of /cvsroot/gforge/gforge/common/frs
In directory db.perdue.net:/home/tperdue/share/dev.gforge.org/common/frs
Modified Files:
FRSFile.class FRSPackage.class FRSRelease.class
Log Message:
RBAC, DELETION, AND FORUM EMAIL GATEWAY
Index: FRSFile.class
===================================================================
RCS file: /cvsroot/gforge/gforge/common/frs/FRSFile.class,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- FRSFile.class 2 Jan 2004 02:10:42 -0000 1.9
+++ FRSFile.class 4 Aug 2004 16:18:32 -0000 1.10
@@ -308,6 +308,8 @@
$this->setError("frsDeleteFile()::2
".db_error());
return false;
} else {
+ $res=db_query("DELETE FROM frs_dlstats_file
WHERE file_id='".$this->getID()."'");
+ $res=db_query("DELETE FROM
frs_dlstats_filetotal_agg WHERE file_id='".$this->getID()."'");
return true;
}
}
Index: FRSPackage.class
===================================================================
RCS file: /cvsroot/gforge/gforge/common/frs/FRSPackage.class,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- FRSPackage.class 9 Feb 2004 19:02:02 -0000 1.11
+++ FRSPackage.class 4 Aug 2004 16:18:32 -0000 1.12
@@ -34,6 +34,7 @@
* @var array $data_array.
*/
var $data_array;
+ var $package_releases;
/**
* The Group object.
@@ -86,9 +87,10 @@
* create - create a new FRSPackage in the database.
*
* @param string The name of this package.
+ * @param boolean Whether it's public or not. 1=public 0=private.
* @return boolean success.
*/
- function create($name) {
+ function create($name,$is_public=1) {
global $Language;
if (strlen($name) < 3) {
$this->setError($Language->getText('frs_package','error_min_name_length'));
@@ -104,8 +106,8 @@
return false;
}
- $sql="INSERT INTO frs_package(group_id,name,status_id)
- VALUES
('".$this->Group->getId()."','".htmlspecialchars($name)."','1')";
+ $sql="INSERT INTO frs_package(group_id,name,status_id,is_public)
+ VALUES
('".$this->Group->getId()."','".htmlspecialchars($name)."','1','$is_public')";
db_begin();
$result=db_query($sql);
@@ -180,6 +182,15 @@
}
/**
+ * isPublic - whether non-group-members can view.
+ *
+ * @return boolean is_public.
+ */
+ function isPublic() {
+ return $this->data_array['is_public'];
+ }
+
+ /**
* setMonitor - Add the current user to the list of people monitoring
this package.
*
* @return boolean success.
@@ -322,6 +333,52 @@
}
+ /**
+ * getReleases - gets Release objects for all the releases in this
package.
+ *
+ * return array Array of FRSRelease Objects.
+ */
+ function &getReleases() {
+ if (!is_array($this->package_releases) ||
count($this->package_releases) < 1) {
+ $this->package_releases=array();
+ $res=db_query("SELECT * FROM frs_release WHERE
package_id='".$this->getID()."'");
+ while ($arr = db_fetch_array($res)) {
+ $this->package_releases[]=new
FRSRelease($this,$arr['release_id'],$arr);
+ }
+ }
+ return $this->package_releases;
+ }
+
+ /**
+ * delete - delete this package and all its related data.
+ *
+ * @param bool I'm Sure.
+ * @param bool I'm REALLY sure.
+ * @return bool true/false;
+ */
+ function delete($sure, $really_sure) {
+ if (!$sure || !$really_sure) {
+ $this->setMissingParamsError();
+ return false;
+ }
+ $perm =& $this->Group->getPermission( session_get_user() );
+
+ if (!$perm || !is_object($perm) ||
!$perm->isReleaseTechnician()) {
+ $this->setPermissionDeniedError();
+ return false;
+ }
+ $r =& $this->getReleases();
+ for ($i=0; $i<count($r); $i++) {
+ if (!is_object($r[$i]) || $r[$i]->isError() ||
!$r[$i]->delete($sure, $really_sure)) {
+ $this->setError('Release Error:
'.$r[$i]->getName().':'.$r[$i]->getErrorMessage());
+ return false;
+ }
+ }
+ db_query("DELETE FROM frs_package WHERE
package_id='".$this->getID()."'
+ AND group_id='".$this->Group->getID()."'");
+ return true;
+ }
+
}
?>
Index: FRSRelease.class
===================================================================
RCS file: /cvsroot/gforge/gforge/common/frs/FRSRelease.class,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- FRSRelease.class 21 May 2003 15:14:06 -0000 1.10
+++ FRSRelease.class 4 Aug 2004 16:18:32 -0000 1.11
@@ -42,6 +42,7 @@
* @var object FRSPacakge.
*/
var $FRSPackage;
+ var $release_files;
/**
* Constructor.
@@ -239,15 +240,15 @@
$date = date('Y-m-d H:i',time());
$subject = $Language->getText('frs_release','email_title',array(
- $this->FRSPackage->Group->getUnixName(),
- $this->FRSPackage->getName()));
+ $this->FRSPackage->Group->getUnixName(),
+ $this->FRSPackage->getName()));
$text =
stripcslashes($Language->getText('frs_release','email_text',array(
- $this->FRSPackage->Group->getPublicName(),
- $this->FRSPackage->Group->getUnixName(),
- $this->FRSPackage->getName(),
-
"<http://".$GLOBALS['HTTP_HOST']."/project/showfiles.php?group_id=".
$this->FRSPackage->Group->getID() ."&release_id=". $this->getID(),
- $GLOBALS['sys_name'],
-
"<http://$GLOBALS[HTTP_HOST]/project/filemodule_monitor.php?filemodule_id=".$this->FRSPackage->getID()."&group_id=".$this->FRSPackage->Group->getID()."&stop=1>")));
+ $this->FRSPackage->Group->getPublicName(),
+ $this->FRSPackage->Group->getUnixName(),
+ $this->FRSPackage->getName(),
+
"<http://".$GLOBALS['HTTP_HOST']."/project/showfiles.php?group_id=".
$this->FRSPackage->Group->getID() ."&release_id=". $this->getID(),
+ $GLOBALS['sys_name'],
+
"<http://$GLOBALS[HTTP_HOST]/project/filemodule_monitor.php?filemodule_id=".$this->FRSPackage->getID()."&group_id=".$this->FRSPackage->Group->getID()."&stop=1>")));
$text = util_line_wrap($text);
@@ -258,6 +259,52 @@
}
/**
+ * getFiles - gets all the file objects for files in this release.
+ *
+ * return array Array of FRSFile Objects.
+ */
+ function &getFiles() {
+ if (!is_array($this->release_files) ||
count($this->release_files) < 1) {
+ $this->release_files=array();
+ $res=db_query("SELECT * FROM frs_file_vw WHERE
release_id='".$this->getID()."'");
+ while ($arr = db_fetch_array($res)) {
+ $this->release_files[]=new
FRSFile($this,$arr['release_id'],$arr);
+ }
+ }
+ return $this->release_files;
+ }
+
+ /**
+ * delete - delete this release and all its related data.
+ *
+ * @param bool I'm Sure.
+ * @param bool I'm REALLY sure.
+ * @return bool true/false;
+ */
+ function delete($sure, $really_sure) {
+ if (!$sure || !$really_sure) {
+ $this->setMissingParamsError();
+ return false;
+ }
+ $perm =& $this->FRSPackage->Group->getPermission(
session_get_user() );
+
+ if (!$perm || !is_object($perm) ||
!$perm->isReleaseTechnician()) {
+ $this->setPermissionDeniedError();
+ return false;
+ }
+ $f =& $this->getFiles();
+ for ($i=0; $i<count($f); $i++) {
+ if (!is_object($f[$i]) || $f[$i]->isError() ||
!$f[$i]->delete()) {
+ $this->setError('File Error:
'.$f[$i]->getName().':'.$f[$i]->getErrorMessage());
+ return false;
+ }
+ }
+ db_query("DELETE FROM frs_release WHERE
release_id='".$this->getID()."'
+ AND package_id='".$this->FRSPackage->getID()."'");
+ return true;
+ }
+
+ /**
* create - create a new release in the database.
*
* @param int The status of this release from the frs_status
table.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gforge-commits] gforge/common/frs FRSFile.class, 1.9, 1.10 FRSPackage.class, 1.11, 1.12 FRSRelease.class, 1.10, 1.11,
tperdue <=
- Prev by Date:
[Gforge-commits] gforge/common/pm ProjectGroup.class, 1.10, 1.11 ProjectGroupFactory.class, 1.6, 1.7
- Next by Date:
[Gforge-commits] gforge/db 20040804.sql, NONE, 1.1 migrateforum.php, NONE, 1.1 migraterbac.php, NONE, 1.1
- Previous by thread:
[Gforge-commits] gforge/common/pm ProjectGroup.class, 1.10, 1.11 ProjectGroupFactory.class, 1.6, 1.7
- Next by thread:
[Gforge-commits] gforge/db 20040804.sql, NONE, 1.1 migrateforum.php, NONE, 1.1 migraterbac.php, NONE, 1.1
- Index(es):