[Fusionforge-commits] FusionForge branch master updated. v6.0.5-1881-gf0db745

Franck Villaume nerville at libremir.placard.fr.eu.org
Mon May 29 13:48:26 CEST 2017


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "FusionForge".

The branch, master has been updated
       via  f0db7459ba24259411a4915f5c9d208342ba114b (commit)
       via  5bff4f1f8a56be0542051254d8e69a82ad523d5c (commit)
      from  7e38d9ba26bde5bbf0ccb098149f463bcf0ebd39 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=f0db7459ba24259411a4915f5c9d208342ba114b

commit f0db7459ba24259411a4915f5c9d208342ba114b
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date:   Mon May 29 13:48:00 2017 +0200

    forge cli: implement frsImport

diff --git a/src/bin/forge b/src/bin/forge
index aa463b7..a4e5f46 100755
--- a/src/bin/forge
+++ b/src/bin/forge
@@ -1326,7 +1326,7 @@ class CliActions {
 				$group->setDocmanCreateOnlineStatus($stream['setup']['use_docman_create_online']);
 			}
 			if (isset($stream['setup']['send_all_docs'])) {
-				$group->setDocmanCreateOnlineStatus($stream['setup']['send_all_docs']);
+				$group->setDocEmailAll($stream['setup']['send_all_docs']);
 			}
 			if (isset($stream['data']) && is_array($stream['data'])) {
 				foreach ($stream['data'] as $element) {
@@ -1382,7 +1382,34 @@ class CliActions {
 		if (!$stream) {
 			return false;
 		}
-		return true;
+		$group_id = $this->getMappingId($stream['setup']['group_id'], 'group');
+		$group = group_get_object($group_id);
+		if ($group && is_object($group) && !$group->isError() && $group->usesDocman()) {
+			db_begin();
+			if (isset($stream['setup']['new_frs_address'])) {
+				$group->setFRSEmailAddress($stream['setup']['new_frs_address']);
+			}
+			if (isset($stream['setup']['send_frs_docs'])) {
+				$group->setFRSEmailAll($stream['setup']['send_frs_docs']);
+			}
+			if (isset($stream['package']) && is_array($stream['package'])) {
+				foreach ($stream['package'] as $element) {
+					$filename = 'packageDump-'.$element['data_array']['package_id'].'.'.$format;
+					$this->createSubfile($filename, $element, $format);
+					if (!$this->packageImport($filename, $format)) {
+						echo _('Unable to inject package element')."\n";
+						db_rollback();
+						return false;
+					}
+					@unlink($filename);
+				}
+			}
+			db_commit();
+			echo _('FRS injected')."\n";
+			return true;
+		} else {
+			echo _('Unable to get project to inject FRS')._(': ').$group_id."\n";
+		}
 	}
 
 	function packageDump($packageid, $format = 'json') {
@@ -1390,12 +1417,12 @@ class CliActions {
 		$package = frspackage_get_object($packageid);
 		if ($package && is_object($package) && !$package->isError()) {
 			unset($package->Group);
-			$packageDump['setup'] = (array)$package;
+			$packageDump = (array)$package;
 			$frsrs = $package->getReleases();
-			$packageDump['setup']['package_releases'] = array();
+			$packageDump['package_releases'] = array();
 			foreach ($frsrs as $frsr) {
 				unset($frsr->FRSPackage);
-				$packageDump['setup']['package_releases'][] = $frsr;
+				$packageDump['package_releases'][] = $frsr;
 			}
 			$packageDump['monitor'] = $package->getMonitorIds();
 		} else {
@@ -1420,7 +1447,7 @@ class CliActions {
 		$release = frsrelease_get_object($releaseid);
 		if ($release && is_object($release) && !$release->isError()) {
 			unset($release->FRSPackage);
-			$releaseDump['setup'] = $release;
+			$releaseDump = (array)$release;
 		} else {
 			$releaseDump['error'][] = _('Unable to get release id')._(': ').$releaseid;
 		}
diff --git a/src/common/include/Group.class.php b/src/common/include/Group.class.php
index 7a3c3ff..08ee536 100644
--- a/src/common/include/Group.class.php
+++ b/src/common/include/Group.class.php
@@ -1618,6 +1618,27 @@ class Group extends FFError {
 		return $this->data_array['new_frs_address'];
 	}
 
+	function setFRSEmailAddress($email) {
+		$invalid_mails = validate_emails($email);
+		if (count($invalid_mails) > 0) {
+			$this->setError(sprintf(ngettext('New FRS Address Appeared Invalid: %s', 'New FRS Addresses Appeared Invalid: %s', count($invalid_mails)),implode(',',$invalid_mails)));
+			return false;
+		}
+		db_begin();
+		$res = db_query_params('UPDATE groups SET new_frs_address = $1 WHERE group_id = $2',
+					array($email, $this->getID()));
+
+		if (!$res) {
+			$this->setError(_('Error')._(': ')._('Cannot Update Group new_frs_address')._(': ').db_error());
+			db_rollback();
+			return false;
+		} else {
+			$this->data_array['new_frs_address'] = $email;
+			db_commit();
+			return true;
+		}
+	}
+
 	/**
 	 * frsEmailAll - whether or not this group has opted to use receive notices on all frs updates.
 	 *
@@ -1627,6 +1648,22 @@ class Group extends FFError {
 		return $this->data_array['send_all_frs'];
 	}
 
+	function setFRSEmailAll($status) {
+		db_begin();
+		$res = db_query_params('UPDATE groups SET send_all_frs = $1 WHERE group_id = $2',
+					array($status, $this->getID()));
+
+		if (!$res) {
+			$this->setError(_('Error')._(': ')._('Cannot Update Group send_frs_docs')._(': ').db_error());
+			db_rollback();
+			return false;
+		} else {
+			$this->data_array['send_frs_docs'] = $status;
+			db_commit();
+			return true;
+		}
+	}
+
 	/**
 	 * getHomePage - The URL for this project's home page.
 	 *

https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=5bff4f1f8a56be0542051254d8e69a82ad523d5c

commit 5bff4f1f8a56be0542051254d8e69a82ad523d5c
Author: Franck Villaume <franck.villaume at trivialdev.com>
Date:   Mon May 29 13:34:57 2017 +0200

    add missing group_id information

diff --git a/src/common/frs/FRSManager.class.php b/src/common/frs/FRSManager.class.php
index 82d566f..1bd32ee 100644
--- a/src/common/frs/FRSManager.class.php
+++ b/src/common/frs/FRSManager.class.php
@@ -50,8 +50,9 @@ class FRSManager extends FFError {
 
 	function getSettings() {
 		$settings = array();
-		$settings['send_all_frs'] = $this->Group->frsEmailAll();
+		$settings['send_all_frs']    = $this->Group->frsEmailAll();
 		$settings['new_frs_address'] = $this->Group->getFRSEmailAddress();
+		$settings['group_id']        = $this->Group->getID();
 		return $settings;
 	}
 }

-----------------------------------------------------------------------

Summary of changes:
 src/bin/forge                       | 39 +++++++++++++++++++++++++++++++------
 src/common/frs/FRSManager.class.php |  3 ++-
 src/common/include/Group.class.php  | 37 +++++++++++++++++++++++++++++++++++
 3 files changed, 72 insertions(+), 7 deletions(-)


hooks/post-receive
-- 
FusionForge



More information about the Fusionforge-commits mailing list