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, 6.0 has been updated
via 26e3a6b61a104d34769c0a08d62909947e2af283 (commit)
via f5dcf7122210a298fa2d93233faac50503316227 (commit)
via 285f84a42d2a25c140a37acafa0e9772ab8c7d88 (commit)
from 22a90becb8c000ffee0ce53cf31c25053ab6ca4f (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=26e3a6b61a104d34769c0a08d62909947e2af283
commit 26e3a6b61a104d34769c0a08d62909947e2af283
Author: Sylvain Beucler <[email protected]>
Date: Fri Sep 18 14:02:16 2015 +0200
systasksd: fix race condition when registering a project with SCM selected
diff --git a/src/CHANGES b/src/CHANGES
index cb236ef..2cd9bc7 100644
--- a/src/CHANGES
+++ b/src/CHANGES
@@ -3,6 +3,7 @@ Fusionforge 6.0.3:
* Accounts: accept more elliptic curve ssh keys types (Unit 193 & Inria)
* Docman: fix filesize sort [#784] (TrivialDev)
* News: allow moderating news comments even if the Forum tool is disabled
(Inria)
+* Plugin SCM: fix race condition when creating project with SCM selected
(Inria)
* Plugin SCM Git: work-around for iframe access to private projects' gitweb
from Firefox 40 (Inria)
* Plugin Taskboard: remove in-progress French translation (Inria)
* Plugin Taskboard: block dropping item on columns with resolution "closed"
[#781] (TrivialDev)
diff --git a/src/bin/systasksd b/src/bin/systasksd
index 7130077..978b4da 100755
--- a/src/bin/systasksd
+++ b/src/bin/systasksd
@@ -71,6 +71,10 @@ function systask_get_script($plugin_id, $systask_type) {
return null;
}
+function is_group_active_nocache($group_id) {
+ $res = db_query_params("SELECT group_id FROM nss_groups WHERE
group_id=$1", array($group_id));
+ return (db_numrows($res) > 0);
+}
$shortopts = 'v'; // enable verbose mode
@@ -133,6 +137,9 @@ while (true) {
$arr['systask_id']));
continue;
}
+ if (!empty($arr['group_id']) &&
!is_group_active_nocache($arr['group_id'])) {
+ continue; // wait until project is approved
+ }
db_query_params("UPDATE systasks SET status=$1, started=now()
WHERE systask_id=$2",
array('WIP',
$arr['systask_id']));
cron_acquire_lock($script);
diff --git a/src/www/register/index.php b/src/www/register/index.php
index 6cf6927..1d623b3 100644
--- a/src/www/register/index.php
+++ b/src/www/register/index.php
@@ -125,6 +125,7 @@ if (getStringFromRequest('submit')) {
$send_mail,
$built_from_template
);
+ # TODO: enable SCM after the project is approved (if ever), to create
systasks when needed
if ($res && forge_get_config('use_scm') && $plugin) {
$group->setUseSCM (true) ;
$res = $group->setPluginUse ($scm, true);
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=f5dcf7122210a298fa2d93233faac50503316227
commit f5dcf7122210a298fa2d93233faac50503316227
Author: Sylvain Beucler <[email protected]>
Date: Fri Sep 18 11:53:23 2015 +0200
registration: don't reset use_scm when no template is used - it's set
manually by the user
diff --git a/src/common/include/Group.class.php
b/src/common/include/Group.class.php
index 8927950..61bb4b8 100644
--- a/src/common/include/Group.class.php
+++ b/src/common/include/Group.class.php
@@ -2564,8 +2564,8 @@ class Group extends Error {
$params['id_mappings'] = $id_mappings;
plugin_hook_by_reference
('clone_project_from_template', $params);
} else {
- // Disable everything
- db_query_params ('UPDATE groups SET use_mail=0,
use_survey=0, use_forum=0, use_pm=0, use_pm_depend_box=0, use_scm=0,
use_news=0, use_docman=0, use_ftp=0, use_tracker=0, use_frs=0, use_stats=0
WHERE group_id=$1',
+ // Disable everything - except use_scm (manually set in
the registration page)
+ db_query_params ('UPDATE groups SET use_mail=0,
use_survey=0, use_forum=0, use_pm=0, use_pm_depend_box=0, use_news=0,
use_docman=0, use_ftp=0, use_tracker=0, use_frs=0, use_stats=0 WHERE
group_id=$1',
array($this->getID()));
}
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=285f84a42d2a25c140a37acafa0e9772ab8c7d88
commit 285f84a42d2a25c140a37acafa0e9772ab8c7d88
Author: Sylvain Beucler <[email protected]>
Date: Fri Sep 18 10:58:13 2015 +0200
nss: per-user groups were dropped - don't attempt to remove groups when
removing a user, it may dereference a real project
diff --git a/src/common/include/system/pgsql.class.php
b/src/common/include/system/pgsql.class.php
index c45f54d..2b8da1c 100644
--- a/src/common/include/system/pgsql.class.php
+++ b/src/common/include/system/pgsql.class.php
@@ -130,14 +130,6 @@ class pgsql extends System {
$this->setError('Error: Cannot Delete Group
Member(s): '.db_error());
return false;
}
- // This is group used for user, not a real project
- $res2 = db_query_params ('DELETE FROM nss_groups WHERE
name IN
- (SELECT user_name FROM users WHERE
user_id=$1)',
- array ($user_id));
- if (!$res2) {
- $this->setError('Error: Cannot Delete Group
GID: '.db_error());
- return false;
- }
$pids = array () ;
foreach ($user->getGroups() as $p) {
@@ -200,14 +192,6 @@ class pgsql extends System {
$this->setError('Error: Cannot Delete Group
Member(s): '.db_error());
return false;
}
- // This is group used for user, not a real project
- $res2 = db_query_params ('DELETE FROM nss_groups WHERE
name IN
- (SELECT user_name FROM users WHERE user_id=$1)',
- array ($user_id)) ;
- if (!$res2) {
- $this->setError('Error: Cannot Delete Group
GID: '.db_error());
- return false;
- }
}
return true;
}
-----------------------------------------------------------------------
Summary of changes:
src/CHANGES | 1 +
src/bin/systasksd | 7 +++++++
src/common/include/Group.class.php | 4 ++--
src/common/include/system/pgsql.class.php | 16 ----------------
src/www/register/index.php | 1 +
5 files changed, 11 insertions(+), 18 deletions(-)
hooks/post-receive
--
FusionForge
_______________________________________________
Fusionforge-commits mailing list
[email protected]
http://lists.fusionforge.org/cgi-bin/mailman/listinfo/fusionforge-commits