package Ġcom . tencent . devops . auth . service Ċ Ċ import Ġcom . tencent . bk . sdk . iam . config . Iam Configuration Ċ import Ġcom . tencent . devops . auth . pojo . Permission Url DTO Ċ import Ġcom . tencent . devops . common . api . pojo . Result Ċ import Ġcom . tencent . devops . common . auth . api . Auth Permission Ċ import Ġcom . tencent . devops . common . auth . api . Auth ResourceType Ċ import Ġcom . tencent . devops . common . auth . pojo . Action Ċ import Ġcom . tencent . devops . common . auth . pojo . Iam Permission Url Req Ċ import Ġcom . tencent . devops . common . auth . pojo . Related Resource Types Ċ import Ġcom . tencent . devops . common . auth . service . Iam E sb Service Ċ import Ġcom . tencent . devops . common . auth . ut lis . Action Utils Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . stereotype . Service Ċ Ċ @ Service Ċ class ĠI am Service Ġ@ Autowired Ġconstructor ( ĊĠĠĠ Ġval Ġiam E sb Service : ĠI am E sb Service , ĊĠĠĠ Ġval Ġiam Configuration : ĠI am Configuration Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġget Permission Url ( permission Url DTO : ĠList < Permission Url DTO >): ĠResult < String ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" get Ġpermission Url Ġpermission Url DTO : Ġ$ permission Url DTO ") ĊĠĠĠĠĠĠĠ Ġval Ġactions Ġ= Ġmutable ListOf < Action >() ĊĠĠĠĠĠĠĠ Ġpermission Url DTO . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresource Type Ġ= ĠAction Utils . build Action ( it . resourceId , Ġit . action Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinstance List Ġ= Ġit . instanceId ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrelated Resource Types Ġ= Ġmutable ListOf < Related Resource Types >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġrelated ResourceType Ġ= Ġit . resourceId . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . action Id Ġ== ĠAuth Permission . CREATE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelated ResourceType Ġ= ĠAuth ResourceType . PROJECT . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( instance List Ġ== Ġnull Ġ|| Ġinstance List . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelated Resource Types . add ( Related Resource Types ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsystem Ġ= Ġiam Configuration . system Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġrelated ResourceType , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstances Ġ= Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelated Resource Types . add ( Related Resource Types ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsystem Ġ= Ġiam Configuration . system Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġrelated ResourceType , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstances Ġ= ĠlistOf ( instance List )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠåĪĽå»º é¡¹çĽ® éľĢ çī¹æ®Ĭ å¤ĦçĲĨ ï¼Į æĹł éľĢ åħ³èģĶ ä»»åĬ¡ èµĦæºĲ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . resourceId Ġ== ĠAuth ResourceType . PROJECT Ġ&& Ġit . action Id Ġ== ĠAuth Permission . CREATE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" project Create Ġ${ it . action Id } Ġ| ${ it . instanceId }| Ġ${ it . resourceId }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactions . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġresource Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelated _ resource _ types Ġ= Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactions . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġresource Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelated _ resource _ types Ġ= Ġrelated Resource Types ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġiam E sb Req Ġ= ĠI am Permission Url Req ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsystem Ġ= Ġiam Configuration . system Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactions Ġ= Ġactions , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbk _ app _ code Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbk _ app _ secret Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbk _ username Ġ= Ġ" admin " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġlogger . info (" get Ġpermission Url Ġiam E sb Req : Ġ$ iam E sb Req ") ĊĠĠĠĠĠĠĠ Ġreturn ĠResult ( iam E sb Service . get Permission Url ( iam E sb Req )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( this :: class . java ) ĊĠĠĠ Ġ} Ċ }