package Ġcom . ml ree f . rest . api . v 1 Ċ Ċ import Ġcom . ml ree f . rest . api . Current UserService Ċ import Ġcom . ml ree f . rest . api . v 1 . dto . User Dto Ċ import Ġcom . ml ree f . rest . api . v 1 . dto . to User Dto Ċ import Ġcom . ml ree f . rest . exceptions . NotFoundException Ċ import Ġcom . ml ree f . rest . external _ api . gitlab . Git lab RestClient Ċ import Ġcom . ml ree f . rest . feature . auth . Auth Service Ċ import Ġcom . ml ree f . rest . feature . auth . User Resolver Service Ċ import Ġcom . ml ree f . rest . feature . system . Session Dto Ċ import Ġcom . ml ree f . rest . feature . system . Sessions Service Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . security . access . pre post . Pre Authorize Ċ import Ġorg . springframework . web . bind . annotation . Delete Mapping Ċ import Ġorg . springframework . web . bind . annotation . GetMapping Ċ import Ġorg . springframework . web . bind . annotation . RequestMapping Ċ import Ġorg . springframework . web . bind . annotation . RequestParam Ċ import Ġorg . springframework . web . bind . annotation . RestController Ċ import Ġjava . util . UUID Ċ Ċ @ RestController Ċ @ RequestMapping ("/ api / v 1 / sessions ") Ċ class ĠS essions Controller ( ĊĠĠĠ Ġval Ġgit lab RestClient : ĠGit lab RestClient , ĊĠĠĠ Ġval Ġsessions Service : ĠS essions Service , ĊĠĠĠ Ġval Ġcurrent UserService : ĠCurrent UserService , ĊĠĠĠ Ġval Ġauth Service : ĠAuth Service , ĊĠĠĠ Ġval Ġuser Resolver Service : ĠUser Resolver Service , Ċ ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠLoggerFactory . getLogger ( Sessions Controller :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠFIXME : ĠCoverage Ġsays : Ġmissing Ġtests ĊĠĠĠ Ġ@ GetMapping ("/ user ") ĊĠĠĠ Ġ@ Pre Authorize (" is Git lab Admin () ") ĊĠĠĠ Ġfun Ġget Sessions List ForUser ( ĊĠĠĠĠĠĠĠ Ġ@ RequestParam ( value Ġ= Ġ" user _ name ", Ġrequired Ġ= Ġfalse ) ĠuserName : ĠString ?, ĊĠĠĠĠĠĠĠ Ġ@ RequestParam ( value Ġ= Ġ" token ", Ġrequired Ġ= Ġfalse ) Ġtoken : ĠString ? ĊĠĠĠ Ġ): ĠList < Session Dto > Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġusername : ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġif Ġ( token Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= ĠuserName Ġ?: Ġcurrent UserService . account (). username ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlog . warn (" Requested Ġsessions Ġlist Ġfor Ġuser Ġ$ username Ġor Ġfor Ġsession Ġ$ token ") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsessions Service . getS essions List ( username , Ġtoken ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠFIXME : ĠCoverage Ġsays : Ġmissing Ġtests ĊĠĠĠ Ġ@ Delete Mapping ("/ kill ") ĊĠĠĠ Ġ@ Pre Authorize (" is Git lab Admin () Ġ|| Ġis User It self (# userName ) Ġ|| Ġis User It self By Token (# token )") ĊĠĠĠ Ġfun Ġkill Sessions ( ĊĠĠĠĠĠĠĠ Ġ@ RequestParam ( value Ġ= Ġ" user _ name ", Ġrequired Ġ= Ġfalse ) ĠuserName : ĠString ?, ĊĠĠĠĠĠĠĠ Ġ@ RequestParam ( value Ġ= Ġ" token ", Ġrequired Ġ= Ġfalse ) Ġtoken : ĠString ? ĊĠĠĠ Ġ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġusername : ĠString ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġif Ġ( token Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= ĠuserName Ġ?: Ġcurrent UserService . account (). username ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlog . warn (" Requested Ġsessions Ġkill Ġfor Ġuser Ġ$ userName Ġor Ġfor Ġsession Ġ$ token ") ĊĊĠĠĠĠĠĠĠ Ġval Ġsession K illed Ġ= Ġsessions Service . kill All Sessions ( username , Ġtoken ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ" Sessions Ġkilled : Ġ$ session K illed " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠFIXME : ĠCoverage Ġsays : Ġmissing Ġtests ĊĠĠĠ Ġ@ GetMapping ("/ find / user ") ĊĠĠĠ Ġ@ Pre Authorize (" is Git lab Admin () Ġ|| Ġis User It self (# userId ) Ġ|| Ġis User It self (# gitlab Id ) Ġ|| Ġis User It self (# userName )") ĊĠĠĠ Ġfun Ġfind User ( ĊĠĠĠĠĠĠĠ Ġ@ RequestParam ( value Ġ= Ġ" user _ name ", Ġrequired Ġ= Ġfalse ) ĠuserName : ĠString ?, ĊĠĠĠĠĠĠĠ Ġ@ RequestParam ( value Ġ= Ġ" user _ id ", Ġrequired Ġ= Ġfalse ) ĠuserId : ĠUUID ?, ĊĠĠĠĠĠĠĠ Ġ@ RequestParam ( value Ġ= Ġ" gitlab _ id ", Ġrequired Ġ= Ġfalse ) Ġgit lab Id : ĠLong ? ĊĠĠĠ Ġ): ĠUser Dto ? Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . debug (" Find Ġuser Ġby Ġusername =$ userName Ġand ĠuserId =$ userId Ġand Ġgit lab Id =$ gitlab Id ") ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġuser Resolver Service . resolve Account ( userName , ĠuserId , Ġgit lab Id ) ĊĠĠĠĠĠĠĠ Ġuser ?. person ?. gitlab Id ?. let Ġ{ Ġuser Resolver Service . find Git lab User Via Git lab Id ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġif Ġ( user Ġ!= Ġnull ) Ġthrow ĠNotFound Exception (" No Ġuser Ġwith Ġid Ġ${ user . person . gitlab Id } Ġexists Ġin ĠGit lab ") ĊĠĠĠĠĠĠĠ Ġreturn Ġuser ?. to User Dto () ĊĠĠĠ Ġ} Ċ } Ċ