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

Reply via email to