View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0012946 | mantisbt | api soap | public | 2011-04-18 17:03 | 2013-04-06 08:23 |
Reporter | rnelson | Assigned To | rombert | ||
Priority | normal | Severity | feature | Reproducibility | N/A |
Status | closed | Resolution | fixed | ||
Product Version | git trunk | ||||
Target Version | 1.2.6 | Fixed in Version | 1.2.6 | ||
Summary | 0012946: mc_user_pref_get_pref, user_pref_get_pref API call | ||||
Description | The submitted patch adds function mc_user_pref_get_pref to the SOAP API as a frontend to user_pref_get_pref. With it, a developer can access things such as a user's default project via the API. | ||||
Tags | No tags attached. | ||||
Attached Files | mcuserpref.patch (3,011 bytes)
From 05cfdda64e7945b3b7c45eb99a28040c11cee700 Mon Sep 17 00:00:00 2001 From: Ross Nelson <ross.nelson@gmail.com> Date: Mon, 18 Apr 2011 10:57:12 -0500 Subject: [PATCH] Added function mc_user_pref_get_pref to the API to allow read access to user preferences --- api/soap/mantisconnect.php | 20 ++++++++++++++++++++ api/soap/mc_core.php | 1 + api/soap/mc_user_pref_api.php | 30 ++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 0 deletions(-) create mode 100644 api/soap/mc_user_pref_api.php diff --git a/api/soap/mantisconnect.php b/api/soap/mantisconnect.php index efd1545..270ff72 100644 --- a/api/soap/mantisconnect.php +++ b/api/soap/mantisconnect.php @@ -1428,6 +1428,26 @@ $l_oServer->register( 'mc_config_get_string', ); ### +### PUBLIC METHODS (defined in mc_user_pref_api.php) +### + +### mc_user_pref_get_pref +$l_oServer->register( 'mc_user_pref_get_pref', + array( + 'username' => 'xsd:string', + 'password' => 'xsd:string', + 'pref_name' => 'xsd:string', + 'project_id' => 'xsd:integer' + ), + array( + 'return' => 'xsd:string' + ), + $t_namespace, + false, false, false, + 'Get the value for the specified user preference.' +); + +### ### IMPLEMENTATION ### diff --git a/api/soap/mc_core.php b/api/soap/mc_core.php index b637c3d..4369c06 100644 --- a/api/soap/mc_core.php +++ b/api/soap/mc_core.php @@ -40,3 +40,4 @@ require_once( $t_current_dir . 'mc_project_attachment_api.php' ); require_once( $t_current_dir . 'mc_file_api.php' ); require_once( $t_current_dir . 'mc_config_api.php' ); require_once( $t_current_dir . 'mc_custom_field_api.php' ); +require_once( $t_current_dir . 'mc_user_pref_api.php' ); diff --git a/api/soap/mc_user_pref_api.php b/api/soap/mc_user_pref_api.php new file mode 100644 index 0000000..ae00f96 --- /dev/null +++ b/api/soap/mc_user_pref_api.php @@ -0,0 +1,30 @@ +<?php +# MantisConnect - A webservice interface to Mantis Bug Tracker +# Copyright (C) 2004-2011 Victor Boctor - vboctor@users.sourceforge.net +# This program is distributed under dual licensing. These include +# GPL and a commercial licenses. Victor Boctor reserves the right to +# change the license of future releases. +# See docs/ folder for more details + +/** + * Get the value for the specified user preference. + * + * @param string $p_username The user's username + * @param string $p_password The user's password + * @param int $p_project_id Project ID (optional) + * @return string $t_user_pref The requested preference value + */ +function mc_user_pref_get_pref( $p_username, $p_password, $p_pref_name, $p_project_id = ALL_PROJECTS ) { + $t_user_id = mci_check_login( $p_username, $p_password ); + if ( $t_user_id === false ) { + return mci_soap_fault_login_failed(); + } + + if ( !mci_has_readonly_access( $t_user_id ) ) { + return mci_soap_fault_access_denied( $t_user_id ); + } + + $t_user_pref = user_pref_get_pref( $t_user_id, $p_pref_name, $p_project_id ); + return $t_user_pref; +} + -- 1.7.4.4 mcuserpref-v2.patch (5,401 bytes)
From bd2105d87cb20f16a7513ff32b55bf5fa0f8f630 Mon Sep 17 00:00:00 2001 From: Ross Nelson <ross.nelson@gmail.com> Date: Mon, 18 Apr 2011 10:57:12 -0500 Subject: [PATCH] Added function mc_user_pref_get_pref to the API to allow read access to user preferences --- api/soap/mantisconnect.php | 20 +++++++++++++++++++ api/soap/mc_core.php | 1 + api/soap/mc_user_pref_api.php | 29 +++++++++++++++++++++++++++ tests/soap/AllTests.php | 2 + tests/soap/UserTest.php | 43 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 95 insertions(+), 0 deletions(-) create mode 100644 api/soap/mc_user_pref_api.php create mode 100644 tests/soap/UserTest.php diff --git a/api/soap/mantisconnect.php b/api/soap/mantisconnect.php index efd1545..0c99df5 100644 --- a/api/soap/mantisconnect.php +++ b/api/soap/mantisconnect.php @@ -1428,6 +1428,26 @@ $l_oServer->register( 'mc_config_get_string', ); ### +### PUBLIC METHODS (defined in mc_user_pref_api.php) +### + +### mc_user_pref_get_pref +$l_oServer->register( 'mc_user_pref_get_pref', + array( + 'username' => 'xsd:string', + 'password' => 'xsd:string', + 'project_id' => 'xsd:integer', + 'pref_name' => 'xsd:string' + ), + array( + 'return' => 'xsd:string' + ), + $t_namespace, + false, false, false, + 'Get the value for the specified user preference.' +); + +### ### IMPLEMENTATION ### diff --git a/api/soap/mc_core.php b/api/soap/mc_core.php index b637c3d..4369c06 100644 --- a/api/soap/mc_core.php +++ b/api/soap/mc_core.php @@ -40,3 +40,4 @@ require_once( $t_current_dir . 'mc_project_attachment_api.php' ); require_once( $t_current_dir . 'mc_file_api.php' ); require_once( $t_current_dir . 'mc_config_api.php' ); require_once( $t_current_dir . 'mc_custom_field_api.php' ); +require_once( $t_current_dir . 'mc_user_pref_api.php' ); diff --git a/api/soap/mc_user_pref_api.php b/api/soap/mc_user_pref_api.php new file mode 100644 index 0000000..744f2cd --- /dev/null +++ b/api/soap/mc_user_pref_api.php @@ -0,0 +1,29 @@ +<?php +# MantisConnect - A webservice interface to Mantis Bug Tracker +# Copyright (C) 2004-2011 Victor Boctor - vboctor@users.sourceforge.net +# This program is distributed under dual licensing. These include +# GPL and a commercial licenses. Victor Boctor reserves the right to +# change the license of future releases. +# See docs/ folder for more details + +/** + * Get the value for the specified user preference. + * + * @param string $p_username The user's username + * @param string $p_password The user's password + * @param int $p_project_id Project ID (0 = ALL_PROJECTS (mantisbt/core/constant_inc.php)) + * @param string $p_pref_name The name of the preference + * @return string $t_user_pref The requested preference value + */ +function mc_user_pref_get_pref( $p_username, $p_password, $p_project_id, $p_pref_name ) { + $t_user_id = mci_check_login( $p_username, $p_password ); + if ( $t_user_id === false ) { + return mci_soap_fault_login_failed(); + } + + if ( !mci_has_readonly_access( $t_user_id ) ) { + return mci_soap_fault_access_denied( $t_user_id ); + } + + return user_pref_get_pref( $t_user_id, $p_pref_name, $p_project_id ); +} diff --git a/tests/soap/AllTests.php b/tests/soap/AllTests.php index 002b4a1..f93740f 100644 --- a/tests/soap/AllTests.php +++ b/tests/soap/AllTests.php @@ -39,6 +39,7 @@ require_once 'CompressionTest.php'; require_once 'ProjectTest.php'; require_once 'VersionTest.php'; require_once 'RelationshipTest.php'; +require_once 'UserTest.php'; /** * @package Tests @@ -75,6 +76,7 @@ class Soap_AllTests extends PHPUnit_Framework_TestSuite $suite->addTestSuite('ProjectTest'); $suite->addTestSuite('VersionTest'); $suite->addTestSuite('RelationshipTest'); + $suite->addTestSuite('UserTest'); return $suite; } diff --git a/tests/soap/UserTest.php b/tests/soap/UserTest.php new file mode 100644 index 0000000..d316109 --- /dev/null +++ b/tests/soap/UserTest.php @@ -0,0 +1,43 @@ +<?php +# MantisBT - A PHP based bugtracking system + +# MantisBT is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# MantisBT is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with MantisBT. If not, see <http://www.gnu.org/licenses/>. + +/** + * @package Tests + * @subpackage UnitTests + * @copyright Copyright (C) 2002 - 2011 MantisBT Team - mantisbt-dev@lists.sourceforge.net + * @link http://www.mantisbt.org + */ + +require_once 'SoapBase.php'; + +/** + * Test fixture for non-login user methods + */ +class UserTest extends SoapBase { + + /** + * Tests getting a user preference + */ + public function testGetPreference() { + + $language = $this->client->mc_user_pref_get_pref( $this->userName, $this->password, 0, 'language' ); + + $this->assertNotNull( $language ); + + $this->assertEquals( 'english', $language ); + + } +} -- 1.7.4.4 | ||||
Thanks for the patch. I only have two minor comments:
Also it would be nice to have a test, although it's not mandatory. I can assist if needed. |
|
I've uploaded an amended patch that includes those two changes and a test. |
|
Thanks! Committed to both branches, with minor modifications to tests. |
|
Marking as 'acknowledged' not resolved/closed to track that change gets ported to master-2.0.x branch |
|
MantisBT: master 286c1afa 2011-04-26 17:15 Committer: rombert Details Diff |
Added function mc_user_pref_get_pref to the API to allow read access to user preferences. Fixes 0012946: mc_user_pref_get_pref, user_pref_get_pref API call Signed-off-by: Robert Munteanu <robert.munteanu@gmail.com> |
Affected Issues 0012946 |
|
mod - api/soap/mantisconnect.php | Diff File | ||
add - tests/soap/UserTest.php | Diff File | ||
mod - api/soap/mc_core.php | Diff File | ||
add - api/soap/mc_user_pref_api.php | Diff File | ||
mod - tests/soap/AllTests.php | Diff File | ||
MantisBT: master-1.2.x f7bf43fc 2011-04-26 17:15 Committer: rombert Details Diff |
Added function mc_user_pref_get_pref to the API to allow read access to user preferences. Fixes 0012946: mc_user_pref_get_pref, user_pref_get_pref API call Signed-off-by: Robert Munteanu <robert.munteanu@gmail.com> |
Affected Issues 0012946 |
|
add - tests/soap/UserTest.php | Diff File | ||
mod - api/soap/mc_core.php | Diff File | ||
add - api/soap/mc_user_pref_api.php | Diff File | ||
mod - api/soap/mantisconnect.php | Diff File | ||
mod - tests/soap/AllTests.php | Diff File |