* FusionForge groups
*
* Copyright 1999-2001, VA Linux Systems, Inc.
+ * Copyright 2009, Roland Mas
*
* This file is part of FusionForge.
*
function & group_get_licenses() {
global $LICENSE_NAMES;
if(empty($LICENSE_NAMES)) {
- $result = db_query('select * from licenses');
+ $result = db_query_params ('select * from licenses', array());
while($data = db_fetch_array($result)) {
$LICENSE_NAMES[$data['license_id']] = $data['license_name'];
}
if ($res) {
//the db result handle was passed in
} else {
- $res=db_query("SELECT * FROM groups WHERE group_id='$group_id'");
+ $res = db_query_params ('SELECT * FROM groups WHERE group_id=$1', array ($group_id)) ;
}
if (!$res || db_numrows($res) < 1) {
$GROUP_OBJ["_".$group_id."_"]=false;
}
}
if (count($fetch) > 0) {
- $res=db_query("SELECT * FROM groups WHERE group_id IN ('".implode($fetch,'\',\'') ."')");
+ $res=db_query_params ('SELECT * FROM groups WHERE group_id = ANY ($1)',
+ array (db_int_array_to_any_clause ($fetch))) ;
while ($arr =& db_fetch_array($res)) {
$GROUP_OBJ["_".$arr['group_id']."_"] = new Group($arr['group_id'],$arr);
$return[] =& $GROUP_OBJ["_".$arr['group_id']."_"];
}
function &group_get_object_by_name($groupname) {
- $res=db_query("SELECT * FROM groups WHERE unix_group_name='$groupname'");
+ $res=db_query_params('SELECT * FROM groups WHERE unix_group_name=$1', array ($groupname)) ;
return group_get_object(db_result($res,0,'group_id'),$res);
}
function &group_get_objects_by_name($groupname_arr) {
- $sql="SELECT group_id FROM groups WHERE unix_group_name IN ('".implode($groupname_arr,'\',\'')."')";
- $res=db_query($sql);
+ $res=db_query_params ('SELECT group_id FROM groups WHERE unix_group_name = ANY ($1)',
+ array (db_string_array_to_any_clause ($groupname_arr))
+ );
$arr =& util_result_column_to_array($res,0);
return group_get_objects($arr);
}
+function &group_get_object_by_publicname($groupname) {
+ $res=db_query_params ('SELECT * FROM groups WHERE group_name ILIKE $1',
+ array (htmlspecialchars ($groupname))) ;
+
+ return group_get_object(db_result($res,0,'group_id'),$res);
+}
+
class Group extends Error {
/**
* Associative array of data from db.
* @param int The group_id.
*/
function fetchData($group_id) {
- $res = db_query("SELECT * FROM groups WHERE group_id='$group_id'");
+ $res = db_query_params ('SELECT * FROM groups WHERE group_id=$1',
+ array ($group_id));
if (!$res || db_numrows($res) < 1) {
$this->setError(sprintf(_('fetchData():: %s'),db_error()));
return false;
* @param string The 'other' license to use if any.
* @param string The purpose of the group.
*/
- function create(&$user, $full_name, $unix_name, $description, $license, $license_other, $purpose, $unix_box='shell1', $scm_box='cvs1', $is_public=1) {
+ function create(&$user, $group_name, $unix_name, $description, $license, $license_other, $purpose, $unix_box='shell1', $scm_box='cvs1', $is_public=1) {
// $user is ignored - anyone can create pending group
if ($this->getID()!=0) {
$this->setError(_('Group::create: Group object already exists'));
return false;
- } else if (strlen($full_name)<3) {
- $this->setError(_('Full name is too short'));
- return false;
- } else if (strlen(htmlspecialchars($full_name))>50) {
- $this->setError(_('Full name is too long'));
+ } else if (!$this->validateGroupName($group_name)) {
return false;
} else if (!account_groupnamevalid($unix_name)) {
$this->setError(_('Invalid Unix name'));
return false;
- } else if (db_numrows(db_query("SELECT group_id FROM groups WHERE unix_group_name='$unix_name'")) > 0) {
+ } else if (db_numrows(db_query_params('SELECT group_id FROM groups WHERE unix_group_name=$1',
+ array ($unix_name))) > 0) {
$this->setError(_('Unix name already taken'));
return false;
} else if (strlen($purpose)<10) {
db_begin();
- $res = db_query("
+ $res = db_query_params ('
INSERT INTO groups (
group_name,
is_public,
enable_anonscm,
rand_hash
)
- VALUES (
- '".htmlspecialchars($full_name)."',
- '$is_public',
- '$unix_name',
- '".htmlspecialchars($description)."',
- '$unix_name.".$GLOBALS['sys_default_domain']."',
- '$unix_name.".$GLOBALS['sys_default_domain']."',
- 'P',
- '$unix_box',
- '$scm_box',
- '$license',
- '".htmlspecialchars($purpose)."',
- ".time().",
- '".htmlspecialchars($license_other)."',
- '$is_public',
- '".md5($random_num)."'
- )
- ");
-
+ VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15)',
+ array (htmlspecialchars ($group_name),
+ $is_public,
+ $unix_name,
+ htmlspecialchars($description),
+ $unix_name.".".$GLOBALS['sys_default_domain'],
+ $unix_name.".".$GLOBALS['sys_default_domain'],
+ 'P',
+ $unix_box,
+ $scm_box,
+ $license,
+ htmlspecialchars($purpose),
+ time(),
+ htmlspecialchars($license_other),
+ $is_public,
+ md5($random_num) )) ;
if (!$res || db_affected_rows($res) < 1) {
$this->setError(sprintf(_('ERROR: Could not create group: %s'),db_error()));
db_rollback();
//
// Now, make the user an admin
//
- $sql="INSERT INTO user_group ( user_id, group_id, admin_flags,
+ $res=db_query_params ('INSERT INTO user_group (user_id, group_id, admin_flags,
cvs_flags, artifact_flags, forum_flags, role_id)
- VALUES ( ".$user->getID().", '$id', 'A', 1, 2, 2, 1)";
-
- $res=db_query($sql);
+ VALUES ($1, $2, $3, $4, $5, $6, $7)',
+ array ($user->getID(),
+ $id,
+ 'A',
+ 1,
+ 2,
+ 2,
+ 1));
if (!$res || db_affected_rows($res) < 1) {
$this->setError(sprintf(_('ERROR: Could not add admin to newly created group: %s'),db_error()));
db_rollback();
$hook_params = array ();
$hook_params['group'] = $this;
$hook_params['group_id'] = $this->getID();
- $hook_params['group_name'] = $full_name;
+ $hook_params['group_name'] = $group_name;
$hook_params['unix_group_name'] = $unix_name;
plugin_hook ("group_create", $hook_params);
db_begin();
- $res = db_query("
+ $res = db_query_params ('
UPDATE groups
- SET is_public='$is_public',
- license='$license',type_id='$type_id',
- unix_box='$unix_box',http_domain='$http_domain'
- WHERE group_id='".$this->getID()."'
- ");
+ SET is_public=$1, license=$2, type_id=$3,
+ unix_box=$4, http_domain=$5
+ WHERE group_id=$6',
+ array ($is_public,
+ $license,
+ $type_id,
+ $unix_box,
+ $http_domain,
+ $this->getID())) ;
if (!$res || db_affected_rows($res) < 1) {
$this->setError(_('ERROR: DB: Could not change group properties: %s'),db_error());
* update - Update number of common properties.
*
* Unlike updateAdmin(), this function accessible to project admin.
- *
- * @param object User requesting operation (for access control).
- * @param bool Whether group is publicly accessible (0/1).
- * @param string Project's license (string ident).
- * @param int Group type (1-project, 2-foundry).
- * @param string Machine on which group's home directory located.
- * @param string Domain which serves group's WWW.
- * @return int status.
- * @access public.
*/
function update(&$user, $group_name,$homepage,$short_description,$use_mail,$use_survey,$use_forum,
- $use_pm,$use_pm_depend_box,$use_scm,$use_news,$use_docman,
- $new_doc_address,$send_all_docs,$logo_image_id,
- $enable_pserver,$enable_anonscm,
+ $use_pm,$use_pm_depend_box,$use_scm,$use_news,$use_docman,
+ $new_doc_address,$send_all_docs,$logo_image_id,
$use_ftp,$use_tracker,$use_frs,$use_stats,$is_public) {
$perm =& $this->getPermission($user);
}
// Validate some values
- if (!$group_name) {
- $this->setError(_('Invalid Group Name'));
- return false;
+ if ($this->getPublicName() != $group_name) {
+ if (!$this->validateGroupName($group_name)) {
+ return false;
+ }
}
if ($new_doc_address) {
db_begin();
//XXX not yet actived logo_image_id='$logo_image_id',
- $sql = "
- UPDATE groups
- SET
- group_name='".htmlspecialchars($group_name)."',
- homepage='$homepage',
- short_description='".htmlspecialchars($short_description)."',
- use_mail='$use_mail',
- use_survey='$use_survey',
- use_forum='$use_forum',
- use_pm='$use_pm',
- use_pm_depend_box='$use_pm_depend_box',
- use_scm='$use_scm',
- use_news='$use_news',
- use_docman='$use_docman',
- is_public='$is_public',
- new_doc_address='$new_doc_address',
- send_all_docs='$send_all_docs',
- ";
- if ($enable_pserver != '') {
- $sql .= "
- enable_pserver='$enable_pserver',
- ";
- }
- if ($enable_anonscm != '') {
- $sql .= "
- enable_anonscm='$enable_anonscm',
- ";
- }
- $sql .= "
- use_ftp='$use_ftp',
- use_tracker='$use_tracker',
- use_frs='$use_frs',
- use_stats='$use_stats'
- WHERE group_id='".$this->getID()."'
- ";
- $res = db_query($sql);
+ $res = db_query_params ('UPDATE groups
+ SET group_name=$1,
+ homepage=$2,
+ short_description=$3,
+ use_mail=$4,
+ use_survey=$5,
+ use_forum=$6,
+ use_pm=$7,
+ use_pm_depend_box=$8,
+ use_scm=$9,
+ use_news=$10,
+ use_docman=$11,
+ is_public=$12,
+ new_doc_address=$13,
+ send_all_docs=$14,
+ use_ftp=$15,
+ use_tracker=$16,
+ use_frs=$17,
+ use_stats=$18
+ WHERE group_id=$19',
+ array (htmlspecialchars($group_name),
+ $homepage,
+ htmlspecialchars($short_description),
+ $use_mail,
+ $use_survey,
+ $use_forum,
+ $use_pm,
+ $use_pm_depend_box,
+ $use_scm,
+ $use_news,
+ $use_docman,
+ $is_public,
+ $new_doc_address,
+ $send_all_docs,
+ $use_ftp,
+ $use_tracker,
+ $use_frs,
+ $use_stats,
+ $this->getID() )) ;
if (!$res) {
$this->setError(sprintf(_('Error updating project information: %s'), db_error()));
db_begin();
- $res = db_query("UPDATE groups
- SET status='$status'
- WHERE group_id='". $this->getID()."'");
+ $res = db_query_params ('UPDATE groups
+ SET status=$1
+ WHERE group_id=$2', array ($status, $this->getID())) ;
if (!$res || db_affected_rows($res) < 1) {
$this->setError(sprintf(_('ERROR: DB: Could not change group status: %s'),db_error()));
function setSCMBox($scm_box) {
if ($scm_box) {
db_begin();
- $sql = "UPDATE groups SET scm_box = '$scm_box' WHERE group_id = ".$this->getID();
- $res = db_query($sql);
+ $res = db_query_params ('UPDATE groups SET scm_box=$1 WHERE group_id=$2', array ($scm_box, $this->getID ()));
if ($res) {
$this->addHistory('scm_box', $this->data_array['scm_box']);
$this->data_array['scm_box']=$scm_box;
*/
function &getAdmins() {
// this function gets all group admins in order to send Jabber and mail messages
- $q = "SELECT user_id FROM user_group WHERE admin_flags = 'A' AND group_id = ".$this->getID();
- $res = db_query($q);
+ $res = db_query_params ('SELECT user_id FROM user_group WHERE admin_flags=$1 AND group_id=$2',
+ array ('A', $this->getID()));
$user_ids=util_result_column_to_array($res);
return user_get_objects($user_ids);
}
function SetUsesAnonSCM ($booleanparam) {
db_begin () ;
$booleanparam = $booleanparam ? 1 : 0 ;
- $sql = "UPDATE groups SET enable_anonscm = $booleanparam WHERE group_id = ".$this->getID() ;
- $res = db_query($sql);
+ $res = db_query_params ('UPDATE groups SET enable_anonscm=$1 WHERE group_id=$2',
+ array ($booleanparam, $this->getID()));
if ($res) {
$this->data_array['enable_anonscm']=$booleanparam;
db_commit () ;
function SetUsesPserver ($booleanparam) {
db_begin () ;
$booleanparam = $booleanparam ? 1 : 0 ;
- $sql = "UPDATE groups SET enable_pserver = $booleanparam WHERE group_id = ".$this->getID() ;
- $res = db_query($sql);
+ $res = db_query_params ('UPDATE groups SET enable_pserver=$1 WHERE group_id=$2',
+ array ($booleanparam, $this->getID()));
if ($res) {
$this->data_array['enable_pserver']=$booleanparam;
db_commit () ;
function getPlugins() {
if (!isset($this->plugins_data)) {
$this->plugins_data = array () ;
- $sql="SELECT group_plugin.plugin_id, plugins.plugin_name
- FROM group_plugin, plugins
- WHERE group_plugin.group_id=".$this->getID()."
- AND group_plugin.plugin_id = plugins.plugin_id" ;
- $res=db_query($sql);
+ $res = db_query_params ('SELECT group_plugin.plugin_id, plugins.plugin_name
+ FROM group_plugin, plugins
+ WHERE group_plugin.group_id=$1
+ AND group_plugin.plugin_id=plugins.plugin_id', array ($this->getID()));
$rows = db_numrows($res);
for ($i=0; $i<$rows; $i++) {
// State is already good, returning
return true ;
}
- $sql="SELECT plugin_id
- FROM plugins
- WHERE plugin_name = '" . $pluginname . "'" ;
- $res=db_query($sql);
+ $res = db_query_params ('SELECT plugin_id FROM plugins WHERE plugin_name=$1',
+ array ($pluginname));
$rows = db_numrows($res);
if ($rows == 0) {
// Error: no plugin by that name
// Invalidate cache
unset ($this->plugins_data) ;
if ($val) {
- $sql="INSERT INTO group_plugin (group_id, plugin_id)
- VALUES (". $this->getID() . ", ". $plugin_id .")" ;
- $res=db_query($sql);
+ $res = db_query_params ('INSERT INTO group_plugin (group_id, plugin_id) VALUES ($1, $2)',
+ array ($this->getID(),
+ $plugin_id));
return $res ;
} else {
- $sql="DELETE FROM group_plugin
- WHERE group_id = ". $this->getID() . "
- AND plugin_id = ". $plugin_id ;
- $res=db_query($sql);
+ $res = db_query_params ('DELETE FROM group_plugin WHERE group_id=$1 AND plugin_id=$2',
+ array ($this->getID(),
+ $plugin_id));
return $res ;
}
}
// Delete FRS Packages
//
//$frspf = new FRSPackageFactory($this);
- $res=db_query("SELECT * FROM frs_package WHERE group_id='".$this->getID()."'");
+ $res = db_query_params ('SELECT * FROM frs_package WHERE group_id=$1',
+ array ($this->getID())) ;
//echo 'frs_package'.db_error();
//$frsp_arr =& $frspf->getPackages();
while ($arr = db_fetch_array($res)) {
// Delete news
//
$news_group=&group_get_object($GLOBALS['sys_news_group']);
- $res=db_query("SELECT forum_id FROM news_bytes WHERE group_id='".$this->getID()."'");
+ $res = db_query_params ('SELECT forum_id FROM news_bytes WHERE group_id=$1',
+ array ($this->getID())) ;
for ($i=0; $i<db_numrows($res); $i++) {
$Forum = new Forum($news_group,db_result($res,$i,'forum_id'));
if (!$Forum->delete(1,1)) {
printf (_("Could Not Delete News Forum: %d"),$Forum->getID());
}
}
- $res=db_query("DELETE FROM news_bytes WHERE group_id='".$this->getID()."'");
+ $res = db_query_params ('DELETE FROM news_bytes WHERE group_id=$1',
+ array ($this->getID())) ;
//
// Delete docs
//
- $res=db_query("DELETE FROM doc_data WHERE group_id='".$this->getID()."'");
+ $res = db_query_params ('DELETE FROM doc_data WHERE group_id=$1',
+ array ($this->getID())) ;
//echo 'doc_data'.db_error();
- $res=db_query("DELETE FROM doc_groups WHERE group_id='".$this->getID()."'");
+ $res = db_query_params ('DELETE FROM doc_groups WHERE group_id=$1',
+ array ($this->getID())) ;
//echo 'doc_groups'.db_error();
//
// Delete group history
//
- $res=db_query("DELETE FROM group_history WHERE group_id='".$this->getID()."'");
+ $res = db_query_params ('DELETE FROM group_history WHERE group_id=$1',
+ array ($this->getID())) ;
//echo 'group_history'.db_error();
//
// Delete group plugins
//
- $res=db_query("DELETE FROM group_plugin WHERE group_id='".$this->getID()."'");
+ $res = db_query_params ('DELETE FROM group_plugin WHERE group_id=$1',
+ array ($this->getID())) ;
//echo 'group_plugin'.db_error();
//
// Delete group cvs stats
//
- $res=db_query("DELETE FROM stats_cvs_group WHERE group_id='".$this->getID()."'");
+ $res = db_query_params ('DELETE FROM stats_cvs_group WHERE group_id=$1',
+ array ($this->getID())) ;
//echo 'stats_cvs_group'.db_error();
//
// Delete Surveys
//
// Delete trove
//
- $res=db_query("DELETE FROM trove_group_link WHERE group_id='".$this->getID()."'");
- $res=db_query("DELETE FROM trove_agg WHERE group_id='".$this->getID()."'");
+ $res = db_query_params ('DELETE FROM trove_group_link WHERE group_id=$1',
+ array ($this->getID())) ;
+ $res = db_query_params ('DELETE FROM trove_agg WHERE group_id=$1',
+ array ($this->getID())) ;
//
// Delete counters
//
- $res=db_query("DELETE FROM project_sums_agg WHERE group_id='".$this->getID()."'");
+ $res = db_query_params ('DELETE FROM project_sums_agg WHERE group_id=$1',
+ array ($this->getID())) ;
//echo 'project_sums_agg'.db_error();
- $res=db_query("INSERT INTO deleted_groups (
- unix_group_name,delete_date,isdeleted) VALUES
- ('".$this->getUnixName()."','".time()."','0')");
+ $res = db_query_params ('INSERT INTO deleted_groups (unix_group_name,delete_date,isdeleted) VALUES ($1, $2, $3)',
+ array ($this->getUnixName(),
+ time(),
+ 0)) ;
//echo 'InsertIntoDeleteQueue'.db_error();
- $res=db_query("DELETE FROM groups WHERE group_id='".$this->getID()."'");
+ $res = db_query_params ('DELETE FROM groups WHERE group_id=$1',
+ array ($this->getID())) ;
//echo 'DeleteGroup'.db_error();
db_commit();
if (!$res) {
//
// Delete reporting
//
- $res=db_query("DELETE FROM rep_group_act_weekly WHERE group_id='".$this->getID()."'");
-//echo 'rep_group_act_weekly'.db_error();
- $res=db_query("DELETE FROM rep_group_act_monthly WHERE group_id='".$this->getID()."'");
+ $res = db_query_params ('DELETE FROM rep_group_act_monthly WHERE group_id=$1',
+ array ($this->getID())) ;
//echo 'rep_group_act_monthly'.db_error();
- $res=db_query("DELETE FROM rep_group_act_daily WHERE group_id='".$this->getID()."'");
+ $res = db_query_params ('DELETE FROM rep_group_act_weekly WHERE group_id=$1',
+ array ($this->getID())) ;
+//echo 'rep_group_act_weekly'.db_error();
+ $res = db_query_params ('DELETE FROM rep_group_act_daily WHERE group_id=$1',
+ array ($this->getID())) ;
//echo 'rep_group_act_daily'.db_error();
unset($this->data_array);
return true;
/**
* addUser - controls adding a user to a group.
*
- * @param string Unix name of the user to add OR integer user_id.
+ * @param string Unix name of the user to add OR integer user_id.
* @param int The role_id this user should have.
* @return boolean success.
* @access public.
*/
- function addUser($user_unix_name,$role_id) {
+ function addUser($user_identifier,$role_id) {
global $SYS;
/*
Admins can add users to groups
/*
get user id for this user's unix_name
*/
- if (preg_match('/^\d/',$user_unix_name)) {
- $res_newuser = db_query("SELECT * FROM users WHERE user_id='". intval($user_unix_name) ."'");
+ if (is_int ($user_identifier)) { // user_id or user_name
+ $res_newuser = db_query_params ('SELECT * FROM users WHERE user_id=$1', array ($user_identifier)) ;
} else {
- $res_newuser = db_query("SELECT * FROM users WHERE user_name='". strtolower($user_unix_name) ."'");
+ $res_newuser = db_query_params ('SELECT * FROM users WHERE user_name=$1', array ($user_identifier)) ;
}
if (db_numrows($res_newuser) > 0) {
//
//
// if not already a member, add them
//
- $res_member = db_query("SELECT user_id
+ $res_member = db_query_params ('SELECT user_id
FROM user_group
- WHERE user_id='$user_id' AND group_id='". $this->getID() ."'");
+ WHERE user_id=$1 AND group_id=$2',
+ array ($user_id, $this->getID())) ;
if (db_numrows($res_member) < 1) {
//
// Create this user's row in the user_group table
//
- $res=db_query("INSERT INTO user_group
+ $res = db_query_params ('INSERT INTO user_group
(user_id,group_id,admin_flags,forum_flags,project_flags,
doc_flags,cvs_flags,member_role,release_flags,artifact_flags)
- VALUES ('$user_id','". $this->getID() ."','','0','0','0','1','100','0','0')");
+ VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)',
+ array ($user_id,
+ $this->getID(),
+ '',
+ 0,
+ 0,
+ 0,
+ 1,
+ 100,
+ 0,
+ 0)) ;
//verify the insert worked
if (!$res || db_affected_rows($res) < 1) {
//
// audit trail
//
- $this->addHistory('Added User',$user_unix_name);
+ $this->addHistory('Added User',$user_identifier);
db_commit();
return true;
}
}
db_begin();
- $res=db_query("DELETE FROM user_group
- WHERE group_id='".$this->getID()."'
- AND user_id='$user_id'");
+ $res = db_query_params ('DELETE FROM user_group WHERE group_id=$1 AND user_id=$2',
+ array ($this->getID(),
+ $user_id)) ;
if (!$res || db_affected_rows($res) < 1) {
$this->setError(sprintf(_('ERROR: User not removed: %s'),db_error()));
db_rollback();
//
// reassign open artifacts to id=100
//
- $res=db_query("UPDATE artifact SET assigned_to='100'
+ $res = db_query_params ('UPDATE artifact SET assigned_to=100
WHERE group_artifact_id
IN (SELECT group_artifact_id
FROM artifact_group_list
- WHERE group_id='".$this->getID()."')
- AND status_id='1' AND assigned_to='$user_id'");
+ WHERE group_id=$1 AND status_id=1 AND assigned_to=$2)',
+ array ($this->getID(),
+ $user_id)) ;
if (!$res) {
$this->setError(sprintf(_('ERROR: DB: artifact: %s'),db_error()));
db_rollback();
$res = db_next_result();
}
} else {
- $res=db_query("DELETE FROM project_assigned_to
+ $res = db_query_params ('DELETE FROM project_assigned_to
WHERE project_task_id IN (SELECT pt.project_task_id
FROM project_task pt, project_group_list pgl, project_assigned_to pat
WHERE pt.group_project_id = pgl.group_project_id
AND pat.project_task_id=pt.project_task_id
- AND pt.status_id='1' AND pgl.group_id='".$this->getID()."'
- AND pat.assigned_to_id='$user_id')
- AND assigned_to_id='100'");
+ AND pt.status_id=1 AND pgl.group_id=$1,
+ AND pat.assigned_to_id=$2)
+ AND assigned_to_id=100',
+ array ($this->getID(),
+ $user_id)) ;
}
if (!$res) {
$this->setError(sprintf(_('ERROR: DB: project_assigned_to %d: %s'),1,db_error()));
db_rollback();
return false;
}
- $res=db_query("UPDATE project_assigned_to SET assigned_to_id='100'
+ $res = db_query_params ('UPDATE project_assigned_to SET assigned_to_id=100
WHERE project_task_id IN (SELECT pt.project_task_id
FROM project_task pt, project_group_list pgl
WHERE pt.group_project_id = pgl.group_project_id
- AND pt.status_id='1' AND pgl.group_id='".$this->getID()."')
- AND assigned_to_id='$user_id'");
+ AND pt.status_id=1 AND pgl.group_id=$1)
+ AND assigned_to_id=$2',
+ array ($this->getID(),
+ $user_id)) ;
if (!$res) {
$this->setError(sprintf(_('ERROR: DB: project_assigned_to %d: %s'),2,db_error()));
db_rollback();
* @access public.
*/
function addHistory($field_name, $old_value) {
- $sql="
- INSERT INTO group_history(group_id,field_name,old_value,mod_by,adddate)
- VALUES ('". $this->getID() ."','$field_name','$old_value','". user_getid() ."','".time()."')
- ";
- return db_query($sql);
+ return db_query_params ('INSERT INTO group_history(group_id,field_name,old_value,mod_by,adddate)
+ VALUES ($1,$2,$3,$4,$5)',
+ array ($this->getID(),
+ $field_name,
+ $old_value,
+ user_getid(),
+ time()));
}
/**
* @access private.
*/
function activateUsers() {
-
+
/*
- Activate member(s) of the project
+ Activate member(s) of the project
*/
-
- $member_res = db_query("SELECT user_id, role_id
- FROM user_group
- WHERE group_id='".$this->getID()."'");
-
+
+ $member_res = db_query_params ('SELECT user_id, role_id FROM user_group WHERE group_id=$1',
+ array ($this->getID())) ;
+
$rows = db_numrows($member_res);
-
+
if ($rows > 0) {
for ($i=0; $i<$rows; $i++) {
*/
function &getMembers() {
if (!isset($this->membersArr)) {
- $res=db_query("SELECT users.* FROM users
- INNER JOIN user_group ON users.user_id=user_group.user_id
- WHERE user_group.group_id='".$this->getID()."'");
+ $res = db_query_params ('SELECT users.* FROM users INNER JOIN user_group ON users.user_id=user_group.user_id WHERE user_group.group_id=$1',
+ array ($this->getID())) ;
while ($arr =& db_fetch_array($res)) {
$this->membersArr[] =& new GFUser($arr['user_id'],$arr);
}
return false;
}
+ // Switch to system language for item creation
+ setup_gettext_from_sys_lang ();
+
+
//
//
// Tracker Integration
if (!$ats || !is_object($ats)) {
$this->setError(_('Error creating ArtifactTypes object'));
db_rollback();
+ setup_gettext_from_context();
return false;
} else if ($ats->isError()) {
$this->setError(sprintf (_('ATS%d: %s'), 1, $ats->getErrorMessage()));
db_rollback();
+ setup_gettext_from_context();
return false;
}
if (!$ats->createTrackers()) {
$this->setError(sprintf (_('ATS%d: %s'), 2, $ats->getErrorMessage()));
db_rollback();
+ setup_gettext_from_context();
return false;
}
//
//
$f = new Forum($this);
- if (!$f->create('Open-Discussion','General Discussion',1,'',1,0)) {
+ if (!$f->create(_('Open-Discussion'),_('General Discussion'),1,'',1,0)) {
$this->setError(sprintf (_('F%d: %s'), 1, $f->getErrorMessage()));
db_rollback();
+ setup_gettext_from_context();
return false;
}
$f = new Forum($this);
- if (!$f->create('Help','Get Public Help',1,'',1,0)) {
+ if (!$f->create(_('Help'),_('Get Public Help'),1,'',1,0)) {
$this->setError(sprintf (_('F%d: %s'), 2, $f->getErrorMessage()));
db_rollback();
+ setup_gettext_from_context();
return false;
}
$f = new Forum($this);
- if (!$f->create('Developers','Project Developer Discussion',0,'',1,0)) {
+ if (!$f->create(_('Developers'),_('Project Developer Discussion'),0,'',1,0)) {
$this->setError(sprintf (_('F%d: %s'), 3, $f->getErrorMessage()));
db_rollback();
+ setup_gettext_from_context();
return false;
}
//
//
$dg = new DocumentGroup($this);
- if (!$dg->create('Uncategorized Submissions')) {
+ if (!$dg->create(_('Uncategorized Submissions'))) {
$this->setError(sprintf(_('DG: %s'),$dg->getErrorMessage()));
db_rollback();
+ setup_gettext_from_context();
return false;
}
if (!$frs->create($this->getUnixName())) {
$this->setError(sprintf(_('FRSP: %s'),$frs->getErrorMessage()));
db_rollback();
+ setup_gettext_from_context();
return false;
}
//
//
$pg = new ProjectGroup($this);
- if (!$pg->create('To Do','Things We Have To Do',1)) {
+ if (!$pg->create(_('To Do'),_('Things We Have To Do'),1)) {
$this->setError(sprintf(_('PG%d: %s'),1,$pg->getErrorMessage()));
db_rollback();
+ setup_gettext_from_context();
return false;
}
$pg = new ProjectGroup($this);
- if (!$pg->create('Next Release','Items For Our Next Release',1)) {
+ if (!$pg->create(_('Next Release'),_('Items For Our Next Release'),1)) {
$this->setError(sprintf(_('PG%d: %s'),2,$pg->getErrorMessage()));
db_rollback();
+ setup_gettext_from_context();
return false;
}
if (!$role->createDefault($todo[$c])) {
$this->setError(sprintf(_('R%d: %s'),$c,$role->getErrorMessage()));
db_rollback();
+ setup_gettext_from_context();
return false;
}
}
- $admin_group = db_query("SELECT user_id FROM user_group
- WHERE group_id=".$this->getID()." AND admin_flags='A'");
+ $admin_group = db_query_params ('SELECT user_id FROM user_group WHERE group_id=$1 AND admin_flags=$2',
+ array ($this->getID(),
+ 'A')) ;
if (db_numrows($admin_group) > 0) {
$idadmin_group = db_result($admin_group,0,'user_id');
} else {
//
if ($GLOBALS['sys_use_mail']) {
$mlist = new MailingList($this);
- if (!$mlist->create('commits','Commits',1,$idadmin_group)) {
+ if (!$mlist->create('commits',_('Commits'),1,$idadmin_group)) {
$this->setError(sprintf(_('ML: %s'),$mlist->getErrorMessage()));
db_rollback();
+ setup_gettext_from_context();
return false;
}
}
-
+
+ // Switch back to user preference
+ setup_gettext_from_context();
+
db_commit();
$this->sendApprovalEmail();
* @access public.
*/
function sendApprovalEmail() {
- $res_admins = db_query("
+ $res_admins = db_query_params ('
SELECT users.user_name,users.email,users.language,users.user_id
FROM users,user_group
WHERE users.user_id=user_group.user_id
- AND user_group.group_id='".$this->getID()."'
- AND user_group.admin_flags='A'
- ");
+ AND user_group.group_id=$1
+ AND user_group.admin_flags=$2',
+ array ($this->getID(),
+ 'A')) ;
if (db_numrows($res_admins) < 1) {
$this->setError(_("Group does not have any administrators."));
util_send_message($row_admins['email'], sprintf(_('%1$s Project Approved'), $GLOBALS['sys_name']), $message);
- setup_gettext_from_browser () ;
+ setup_gettext_from_context();
}
return true;
* @access public.
*/
function sendRejectionEmail($response_id, $message="zxcv") {
- $res_admins = db_query("
+ $res_admins = db_query_params ('
SELECT u.email, u.language, u.user_id
FROM users u, user_group ug
- WHERE ug.group_id='".$this->getID()."'
- AND u.user_id=ug.user_id;
- ");
-
+ WHERE ug.group_id=$1
+ AND u.user_id=ug.user_id',
+ array ($this->getID())) ;
if (db_numrows($res_admins) < 1) {
$this->setError(_("Group does not have any administrators."));
return false;
if ($response_id == 0) {
$response .= stripcslashes($message);
} else {
- $response .= db_result(db_query("
- SELECT response_text
- FROM canned_responses
- WHERE response_id='$response_id'
- "), 0, "response_text");
+ $response .= db_result (
+ db_query_params('SELECT response_text FROM canned_responses WHERE response_id=$1', array ($response_id)),
+ 0,
+ "response_text");
}
util_send_message($row_admins['email'], sprintf(_('%1$s Project Denied'), $GLOBALS['sys_name']), $response);
- setup_gettext_from_browser () ;
+ setup_gettext_from_context();
}
return true;
*/
function sendNewProjectNotificationEmail() {
// Get the user who wants to register the project
- $res = db_query("SELECT u.user_id
- FROM users u, user_group ug
- WHERE ug.group_id='".$this->getID()."' AND u.user_id=ug.user_id;");
+ $res = db_query_params ('SELECT user_id FROM user_group WHERE group_id=$1',
+ array ($this->getID())) ;
if (db_numrows($res) < 1) {
$this->setError(_("Could not find user who has submitted the project."));
$submitter =& user_get_object(db_result($res,0,'user_id'));
- $res = db_query("SELECT users.email, users.language, users.user_id
- FROM users,user_group
+ $res = db_query_params ('SELECT users.email, users.language, users.user_id
+ FROM users, user_group
WHERE group_id=1
- AND user_group.admin_flags='A'
- AND users.user_id=user_group.user_id;");
+ AND user_group.admin_flags=$1
+ AND users.user_id=user_group.user_id',
+ array ('A'));
if (db_numrows($res) < 1) {
$this->setError(_("There is no administrator to send the mail."));
$submitter->getRealName(),
$submitter->getUnixName()));
util_send_message($admin_email, sprintf(_('New %1$s Project Submitted'), $GLOBALS['sys_name']), $message);
- setup_gettext_from_browser () ;
+ setup_gettext_from_context();
}
The %1$s admin team will now examine your project submission. You will be notified of their decision.'), $GLOBALS['sys_name'], $this->getPublicName(), util_unconvert_htmlspecialchars($this->getRegistrationPurpose()), $this->getLicenseName(), $GLOBALS['sys_default_domain']));
util_send_message($email, sprintf(_('New %1$s Project Submitted'), $GLOBALS['sys_name']), $message);
- setup_gettext_from_browser () ;
+ setup_gettext_from_context();
return true;
}
+
+
+
+
+/**
+ * validateGroupName - Validate the group name
+ *
+ * @param string Group name.
+ *
+ * @return an error false and set an error is the group name is invalide otherwise return true
+ */
+ function validateGroupName($group_name) {
+ if (strlen($group_name)<3) {
+ $this->setError(_('Group name is too short'));
+ return false;
+ } else if (strlen(htmlspecialchars($group_name))>50) {
+ $this->setError(_('Group name is too long'));
+ return false;
+ } else if ($group=group_get_object_by_publicname($group_name)) {
+ $this->setError(_('Group name already taken'));
+ return false;
+ }
+ return true;
+ }
+
+
+
+
}
/**
function setUnixStatus($status) {
global $SYS;
db_begin();
- $res=db_query("
- UPDATE groups
- SET unix_status='$status'
- WHERE group_id='". $this->getID()."'
- ");
+ $res = db_query_params ('UPDATE groups SET unix_status=$1 WHERE group_id=$2',
+ array ($status,
+ $this->getID())) ;
if (!$res) {
$this->setError(sprintf(_('ERROR - Could Not Update Group Unix Status: %s'),db_error()));