summaryrefslogtreecommitdiffstats
path: root/web/lib/pkgfuncs.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'web/lib/pkgfuncs.inc.php')
-rw-r--r--web/lib/pkgfuncs.inc.php81
1 files changed, 74 insertions, 7 deletions
diff --git a/web/lib/pkgfuncs.inc.php b/web/lib/pkgfuncs.inc.php
index 6811767f..f800e343 100644
--- a/web/lib/pkgfuncs.inc.php
+++ b/web/lib/pkgfuncs.inc.php
@@ -105,6 +105,32 @@ function pkg_from_name($name="") {
}
/**
+ * Get licenses for a specific package
+ *
+ * @param int $pkgid The package to get licenses for
+ *
+ * @return array All licenses for the package
+ */
+function pkg_licenses($pkgid) {
+ $lics = array();
+ $pkgid = intval($pkgid);
+ if ($pkgid > 0) {
+ $dbh = DB::connect();
+ $q = "SELECT l.Name FROM Licenses l ";
+ $q.= "INNER JOIN PackageLicenses pl ON pl.LicenseID = l.ID ";
+ $q.= "WHERE pl.PackageID = ". $pkgid;
+ $result = $dbh->query($q);
+ if (!$result) {
+ return array();
+ }
+ while ($row = $result->fetch(PDO::FETCH_COLUMN, 0)) {
+ $lics[] = $row;
+ }
+ }
+ return $lics;
+}
+
+/**
* Get package groups for a specific package
*
* @param int $pkgid The package to get groups for
@@ -756,20 +782,18 @@ function pkg_details_by_name($pkgname) {
*
* @param int $base_id ID of the package base
* @param string $pkgname Name of the new package
- * @param string $license License of the new package
* @param string $pkgver Version of the new package
* @param string $pkgdesc Description of the new package
* @param string $pkgurl Upstream URL for the new package
*
* @return int ID of the new package
*/
-function pkg_create($base_id, $pkgname, $license, $pkgver, $pkgdesc, $pkgurl) {
+function pkg_create($base_id, $pkgname, $pkgver, $pkgdesc, $pkgurl) {
$dbh = DB::connect();
- $q = sprintf("INSERT INTO Packages (PackageBaseID, Name, License, " .
- "Version, Description, URL) VALUES (%d, %s, %s, %s, %s, %s)",
- $base_id, $dbh->quote($pkgname), $dbh->quote($license),
- $dbh->quote($pkgver), $dbh->quote($pkgdesc),
- $dbh->quote($pkgurl));
+ $q = sprintf("INSERT INTO Packages (PackageBaseID, Name, Version, " .
+ "Description, URL) VALUES (%d, %s, %s, %s, %s)",
+ $base_id, $dbh->quote($pkgname), $dbh->quote($pkgver),
+ $dbh->quote($pkgdesc), $dbh->quote($pkgurl));
$dbh->exec($q);
return $dbh->lastInsertId();
}
@@ -874,3 +898,46 @@ function pkg_add_grp($pkgid, $grpid) {
);
$dbh->exec($q);
}
+
+/**
+ * Creates a new license and returns its ID
+ *
+ * If the license already exists, the ID of the already existing license is
+ * returned.
+ *
+ * @param string $name The name of the license to create
+ *
+ * @return int The ID of the license
+ */
+function pkg_create_license($name) {
+ $dbh = DB::connect();
+ $q = sprintf("SELECT ID FROM Licenses WHERE Name = %s", $dbh->quote($name));
+ $result = $dbh->query($q);
+ if ($result) {
+ $licid = $result->fetch(PDO::FETCH_COLUMN, 0);
+ if ($licid > 0) {
+ return $licid;
+ }
+ }
+
+ $q = sprintf("INSERT INTO Licenses (Name) VALUES (%s)", $dbh->quote($name));
+ $dbh->exec($q);
+ return $dbh->lastInsertId();
+}
+
+/**
+ * Add a license to a package
+ *
+ * @param int $pkgid The package ID of the package
+ * @param int $grpid The ID of the license to add
+ *
+ * @return void
+ */
+function pkg_add_lic($pkgid, $licid) {
+ $dbh = DB::connect();
+ $q = sprintf("INSERT INTO PackageLicenses (PackageID, LicenseID) VALUES (%d, %d)",
+ $pkgid,
+ $licid
+ );
+ $dbh->exec($q);
+}