function project_update($p_project_id, $p_name, $p_description, $p_status, $p_view_state, $p_file_path, $p_enabled, $p_inherit_global) { $p_project_id = (int) $p_project_id; $c_enabled = db_prepare_bool($p_enabled); $c_inherit_global = db_prepare_bool($p_inherit_global); if (is_blank($p_name)) { trigger_error(ERROR_PROJECT_NAME_INVALID, ERROR); } $t_old_name = project_get_field($p_project_id, 'name'); if (strcasecmp($p_name, $t_old_name) != 0) { project_ensure_name_unique($p_name); } if (DATABASE !== config_get('file_upload_method', null, null, $p_project_id)) { $p_file_path = validate_project_file_path($p_file_path); } $t_project_table = db_get_table('project'); $query = "UPDATE {$t_project_table}\n\t\t\t\t SET name=" . db_param() . ",\n\t\t\t\t\tstatus=" . db_param() . ",\n\t\t\t\t\tenabled=" . db_param() . ",\n\t\t\t\t\tview_state=" . db_param() . ",\n\t\t\t\t\tfile_path=" . db_param() . ",\n\t\t\t\t\tdescription=" . db_param() . ",\n\t\t\t\t\tinherit_global=" . db_param() . "\n\t\t\t\t WHERE id=" . db_param(); db_query_bound($query, array($p_name, (int) $p_status, $c_enabled, (int) $p_view_state, $p_file_path, $p_description, $c_inherit_global, $p_project_id)); project_clear_cache($p_project_id); # db_query errors on failure so: return true; }
/** * Update a project * @param integer $p_project_id The project identifier being updated. * @param string $p_name The project name. * @param string $p_description A description of the project. * @param integer $p_status The current status of the project. * @param integer $p_view_state The view state of the project - public or private. * @param string $p_file_path The attachment file path for the project, if not storing in the database. * @param boolean $p_enabled Whether the project is enabled. * @param boolean $p_inherit_global Whether the project inherits global categories. * @return void */ function project_update($p_project_id, $p_name, $p_description, $p_status, $p_view_state, $p_file_path, $p_enabled, $p_inherit_global) { $p_project_id = (int) $p_project_id; $c_enabled = (bool) $p_enabled; $c_inherit_global = (bool) $p_inherit_global; if (is_blank($p_name)) { trigger_error(ERROR_PROJECT_NAME_INVALID, ERROR); } $t_old_name = project_get_field($p_project_id, 'name'); # If project is becoming private, save current user's access level # so we can add them to the project afterwards so they don't lock # themselves out $t_old_view_state = project_get_field($p_project_id, 'view_state'); $t_is_becoming_private = VS_PRIVATE == $p_view_state && VS_PRIVATE != $t_old_view_state; if ($t_is_becoming_private) { $t_user_id = auth_get_current_user_id(); $t_access_level = user_get_access_level($t_user_id, $p_project_id); $t_manage_project_threshold = config_get('manage_project_threshold'); } if (strcasecmp($p_name, $t_old_name) != 0) { project_ensure_name_unique($p_name); } if (DATABASE !== config_get('file_upload_method', null, null, $p_project_id)) { $p_file_path = validate_project_file_path($p_file_path); } $t_query = 'UPDATE {project} SET name=' . db_param() . ', status=' . db_param() . ', enabled=' . db_param() . ', view_state=' . db_param() . ', file_path=' . db_param() . ', description=' . db_param() . ', inherit_global=' . db_param() . ' WHERE id=' . db_param(); db_query($t_query, array($p_name, (int) $p_status, $c_enabled, (int) $p_view_state, $p_file_path, $p_description, $c_inherit_global, $p_project_id)); project_clear_cache($p_project_id); # User just locked themselves out of the project by making it private, # so we add them to the project with their previous access level if ($t_is_becoming_private && !access_has_project_level($t_manage_project_threshold, $p_project_id)) { project_add_user($p_project_id, $t_user_id, $t_access_level); } }