2016-10-04 23 views
3

我希望我的VSTS擴展(已安裝的預置型TFS2015.3),以能夠做代表管理/服務帳戶的具體要求(「代替他人的請求」)TFS REST API:如何「代表他人發出請求」?

背景:我操縱( WorkItem)流程模板,特別是我的擴展打字稿中的GLOBALWORKFLOW(僅在團隊項目級別),但Web Access中擴展的用戶不是項目管理員,因此他不允許使用函數updateWorkItemTypeDefinition() -Project-Admins即使給了該自定義組每個權限(「編輯項目級別GLOBALWORKFLOWs的項目級別信息」權限?)仍然無法訪問「訪問被拒絕」,但仍然不適用於自定義組,僅適用於Project Admin Accounts) 。

看來我不得不冒充被允許改變全局工作流項目

項目管理/服務帳戶如何冒充在的預置型TFS擴展打字稿代碼和REST(1。沒有.NET和2而不改變爲基本身份驗證,只見該解決方案已在其他地方 - 但我很確定,我不能要求改變我的組織)

感謝您的幫助

+0

編輯:因爲我在本地工作,所以PAT不是解決方案(2015.3) –

+0

只有當用戶具有某些集合級別權限時,才能編輯Process Template級別中的一些內容。例如,字段和鏈接類型存儲在集合級別,而不是在項目級別,因此您需要比項目更高的平面上的權限。 – jessehouwing

+0

@ jessehouwing不會傷害,如果我能最終得到我的TFS擴展模擬服務帳戶,即使集合級服務帳戶是好的 –

回答

0

您可以模擬用戶通過vsts-node-api。

模擬用戶有許多功能,例如Basic,NTLM,PWA(VSTS)等......您可以查看這些功能here

import * as vm from 'vso-node-api'; 

// your collection url 
var collectionUrl = "XXX"; 


let authHandler = vm.getNtlmHandler("[user name]","[password]","[workstation optional]","[domain optional]"); 

var connect = new vm.WebApi(collectionUrl, authHandler); 

There是您可以參考的示例。

+0

AFAIK沒有個人訪問令牌與本地TFS2015。這是在VSO和本地開始TFS15RC1 –

+0

@FerdiÖztürk我更新了我的答案,有許多功能模擬用戶,對於本地TFS,您可以使用getNtlmHandler函數。 –

+0

更新THXs,我想嘗試它,但在我的.TS中導入vso-node-api時遇到問題。步驟:1. npm i vso-node-api 2.引用/// 3. import vsonode = require(「 VSO節點-API「); - 沒有工作。你能告訴我如何正確導入vso-node-api模塊,或者我錯過了什麼? (不使用typings安裝,因爲.d.ts已經在vso-node-apis node_module文件夾中) –