package Ġno . nav . fo . ve ilar bre gist r ering . autor is as jon Ċ Ċ import Ġno . nav . common . ab ac . Pep Ċ import Ġno . nav . common . ab ac . domain . request . Action Id Ċ import Ġno . nav . common . auth . context . Auth Context Holder Ċ import Ġno . nav . common . auth . context . UserRole Ċ import Ġno . nav . common . types . id enter . A ktor Id Ċ import Ġno . nav . common . types . id enter . Fn r Ċ import Ġno . nav . fo . ve ilar bre gist r ering . br uk er . Fo ed se ls nummer Ċ import Ġorg . springframework . http . HttpStatus Ċ import Ġorg . springframework . web . server . ResponseStatus Exception Ċ Ċ open Ġclass ĠA utor is as jon Service ( private Ġval Ġve ilar b Pep : ĠP ep , Ġprivate Ġval Ġauth Context Holder : ĠAuth Context Holder ) Ġ{ ĊĊĠĠĠ Ġfun Ġer Intern B ru ker (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġauth Context Holder . er Intern B ru ker () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġs je kk Le set il gang Til B ru ker ( fn r : ĠF o ed se ls nummer ) Ġ= Ġve ilar b Pep . har Til gang Til Person ( inn log getB ru ker Token , ĠAction Id . READ , ĠF nr ( fn r . stringValue ())) ĊĊĠĠĠ Ġfun Ġs je kk Sk riv et il gang Til B ru ker ( fn r : ĠF o ed se ls nummer ) Ġ= Ġve ilar b Pep . har Til gang Til Person ( inn log getB ru ker Token , ĠAction Id . WRITE , ĠF nr ( fn r . stringValue ())) ĊĊĠĠĠ Ġfun Ġs je kk Le set il gang Med A ktor Id ( ak tor Id : Ġno . nav . fo . ve ilar bre gist r ering . br uk er . A ktor Id ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( auth Context Holder . role . orElse ( null ) Ġ== ĠUser Role . SYSTEM ) Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ(! ve ilar b Pep . har Til gang Til Person ( inn log getB ru ker Token , ĠAction Id . READ , ĠA ktor Id ( ak tor Id . asString ()))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠResponse Status Exception ( HttpStatus . FOR BID DEN ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġs je kk Sk riv et il gang Med A ktor Id ( ak tor Id : Ġno . nav . fo . ve ilar bre gist r ering . br uk er . A ktor Id ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! ve ilar b Pep . har Til gang Til Person ( inn log getB ru ker Token , ĠAction Id . WRITE , ĠA ktor Id ( ak tor Id . asString ()))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠResponse Status Exception ( HttpStatus . FOR BID DEN ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġinn log getB ru ker Token : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġauth Context Holder . id Token String ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. orElse Throw Ġ{ ĠResponse Status Exception ( HttpStatus . UN AUTHORIZ ED , Ġ" F ant Ġik ke Ġtoken Ġfor Ġinn log get Ġbru ker ") Ġ} ĊĊĠĠĠ Ġ// ĠNAV Ġident , Ġfn r Ġeller Ġan nen ĠID ĊĠĠĠ Ġprivate Ġval Ġinn log getB ru ker Ident : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġauth Context Holder . subject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. orElse Throw Ġ{ ĠResponse Status Exception ( HttpStatus . UN AUTHORIZ ED , Ġ" NAV Ġident Ġis Ġmissing ") Ġ} ĊĊĠĠĠ Ġval Ġinn log get Ve ile der Ident : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! er Intern B ru ker ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠResponse Status Exception ( HttpStatus . UN AUTHORIZ ED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġinn log getB ru ker Ident ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġer Ve ile der (): ĠBoolean Ġ= Ġer Intern B ru ker () Ċ }