Skip to content

Commit 59536a2

Browse files
committed
NFS-234: adds branchId and branchSlug to token
1 parent db42747 commit 59536a2

3 files changed

Lines changed: 64 additions & 28 deletions

File tree

src/SSOData.php

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ abstract class SSOData
2727
const CLAIM_ISSUER = 'iss';
2828
const CLAIM_INSTANCE_ID = 'instance_id';
2929
const CLAIM_INSTANCE_NAME = 'instance_name';
30+
const CLAIM_BRANCH_ID = 'branch_id';
31+
const CLAIM_BRANCH_SLUG = 'branch_slug';
3032
const CLAIM_USER_ID = 'sub';
3133
const CLAIM_USER_EXTERNAL_ID = 'external_id';
3234
const CLAIM_USER_FULL_NAME = 'name';
@@ -135,6 +137,28 @@ public function getIssuer() {
135137
return $this->getClaimSafe(self::CLAIM_ISSUER);
136138
}
137139

140+
/**
141+
* Get the branch id of the app that issued the token.
142+
*
143+
* The id will always be present.
144+
*
145+
* @return string
146+
*/
147+
public function getBranchId() {
148+
149+
return $this->getClaimSafe(self::CLAIM_BRANCH_ID);
150+
}
151+
152+
/**
153+
* Get the slug of the branch of the app that issued the token.
154+
*
155+
* @return null|string
156+
*/
157+
public function getBranchSlug() {
158+
159+
return $this->getClaimSafe(self::CLAIM_BRANCH_SLUG);
160+
}
161+
138162
/**
139163
* Get the (plugin) instance id for which the token was issued.
140164
*
@@ -313,5 +337,5 @@ public function isDeleteInstanceCall() {
313337
public function getData() {
314338

315339
return $this->getAllClaims();
316-
}
340+
}
317341
}

test/SSODataTest.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ public static function getTokenData() {
4848
$tokenData[SSOData::CLAIM_THEME_BACKGROUND_COLOR] = '#FFAABB';
4949
$tokenData[SSOData::CLAIM_USER_LOCALE] = 'en_US';
5050
$tokenData[SSOData::CLAIM_USER_TAGS] = ['profile:field1:val', 'profile:field2:val'];
51+
$tokenData[SSOData::CLAIM_BRANCH_ID] = "dev-id";
52+
$tokenData[SSOData::CLAIM_BRANCH_SLUG] = "dev-slug";
5153

5254
return $tokenData;
5355
}
@@ -79,6 +81,8 @@ public static function getTokenAccesors() {
7981
$accessors[SSOData::CLAIM_THEME_BACKGROUND_COLOR] = 'getThemeBackgroundColor';
8082
$accessors[SSOData::CLAIM_USER_LOCALE] = 'getLocale';
8183
$accessors[SSOData::CLAIM_USER_TAGS] = 'getTags';
84+
$accessors[SSOData::CLAIM_BRANCH_ID] = "getBranchId";
85+
$accessors[SSOData::CLAIM_BRANCH_SLUG] = "getBranchSlug";
8286

8387
return $accessors;
8488
}
@@ -106,6 +110,8 @@ public static function getTokenAccesors() {
106110
* @covers \Staffbase\plugins\sdk\SSOData::getThemeBackgroundColor()
107111
* @covers \Staffbase\plugins\sdk\SSOData::getLocale()
108112
* @covers \Staffbase\plugins\sdk\SSOData::getTags()
113+
* @covers \Staffbase\plugins\sdk\SSOData::getBranchId()
114+
* @covers \Staffbase\plugins\sdk\SSOData::getBranchSlug()
109115
*/
110116
public function testAccessorsGiveCorrectValues() {
111117

test/SSOTokenTest.php

Lines changed: 33 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ public static function createSignedTokenFromData($privateKey, $tokenData) {
7676
->set(SSOToken::CLAIM_THEME_BACKGROUND_COLOR, $tokenData[SSOToken::CLAIM_THEME_BACKGROUND_COLOR])
7777
->set(SSOToken::CLAIM_USER_LOCALE, $tokenData[SSOToken::CLAIM_USER_LOCALE])
7878
->set(SSOToken::CLAIM_USER_TAGS, $tokenData[SSOToken::CLAIM_USER_TAGS])
79+
->set(SSOToken::CLAIM_BRANCH_ID, $tokenData[SSOToken::CLAIM_BRANCH_ID])
80+
->set(SSOToken::CLAIM_BRANCH_SLUG, $tokenData[SSOToken::CLAIM_BRANCH_SLUG])
7981
->sign($signer, $keychain->getPrivateKey($privateKey))
8082
->getToken();
8183

@@ -110,6 +112,8 @@ private static function createUnsignedTokenFromData($tokenData) {
110112
->set(SSOToken::CLAIM_THEME_BACKGROUND_COLOR, $tokenData[SSOToken::CLAIM_THEME_BACKGROUND_COLOR])
111113
->set(SSOToken::CLAIM_USER_LOCALE, $tokenData[SSOToken::CLAIM_USER_LOCALE])
112114
->set(SSOToken::CLAIM_USER_TAGS, $tokenData[SSOToken::CLAIM_USER_TAGS])
115+
->set(SSOToken::CLAIM_BRANCH_ID, $tokenData[SSOToken::CLAIM_BRANCH_ID])
116+
->set(SSOToken::CLAIM_BRANCH_SLUG, $tokenData[SSOToken::CLAIM_BRANCH_SLUG])
113117
->getToken();
114118

115119
return $token;
@@ -310,33 +314,35 @@ public function testConstructorToFailOnUnsignedToken() {
310314
$this->fail();
311315
}
312316

313-
/**
314-
* @test
315-
*
316-
* Test accessors deliver correct values.
317-
*
318-
* @covers \Staffbase\plugins\sdk\SSOToken::__construct
319-
* @covers \Staffbase\plugins\sdk\SSOToken::getAudience()
320-
* @covers \Staffbase\plugins\sdk\SSOToken::getExpireAtTime()
321-
* @covers \Staffbase\plugins\sdk\SSOToken::getNotBeforeTime()
322-
* @covers \Staffbase\plugins\sdk\SSOToken::getIssuedAtTime()
323-
* @covers \Staffbase\plugins\sdk\SSOToken::getIssuer()
324-
* @covers \Staffbase\plugins\sdk\SSOToken::getInstanceId()
325-
* @covers \Staffbase\plugins\sdk\SSOToken::getInstanceName()
326-
* @covers \Staffbase\plugins\sdk\SSOToken::getUserId()
327-
* @covers \Staffbase\plugins\sdk\SSOToken::getUserExternalId()
328-
* @covers \Staffbase\plugins\sdk\SSOToken::getFullName()
329-
* @covers \Staffbase\plugins\sdk\SSOToken::getFirstName()
330-
* @covers \Staffbase\plugins\sdk\SSOToken::getLastName()
331-
* @covers \Staffbase\plugins\sdk\SSOToken::getRole()
332-
* @covers \Staffbase\plugins\sdk\SSOToken::getType()
333-
* @covers \Staffbase\plugins\sdk\SSOToken::getThemeTextColor()
334-
* @covers \Staffbase\plugins\sdk\SSOToken::getThemeBackgroundColor()
335-
* @covers \Staffbase\plugins\sdk\SSOToken::getLocale()
336-
* @covers \Staffbase\plugins\sdk\SSOToken::getTags()
337-
* @covers \Staffbase\plugins\sdk\SSOToken::hasClaim()
338-
* @covers \Staffbase\plugins\sdk\SSOToken::getClaim()
339-
*/
317+
/**
318+
* @test
319+
*
320+
* Test accessors deliver correct values.
321+
*
322+
* @covers \Staffbase\plugins\sdk\SSOToken::__construct
323+
* @covers \Staffbase\plugins\sdk\SSOToken::getAudience()
324+
* @covers \Staffbase\plugins\sdk\SSOToken::getExpireAtTime()
325+
* @covers \Staffbase\plugins\sdk\SSOToken::getNotBeforeTime()
326+
* @covers \Staffbase\plugins\sdk\SSOToken::getIssuedAtTime()
327+
* @covers \Staffbase\plugins\sdk\SSOToken::getIssuer()
328+
* @covers \Staffbase\plugins\sdk\SSOToken::getInstanceId()
329+
* @covers \Staffbase\plugins\sdk\SSOToken::getInstanceName()
330+
* @covers \Staffbase\plugins\sdk\SSOToken::getUserId()
331+
* @covers \Staffbase\plugins\sdk\SSOToken::getUserExternalId()
332+
* @covers \Staffbase\plugins\sdk\SSOToken::getFullName()
333+
* @covers \Staffbase\plugins\sdk\SSOToken::getFirstName()
334+
* @covers \Staffbase\plugins\sdk\SSOToken::getLastName()
335+
* @covers \Staffbase\plugins\sdk\SSOToken::getRole()
336+
* @covers \Staffbase\plugins\sdk\SSOToken::getType()
337+
* @covers \Staffbase\plugins\sdk\SSOToken::getThemeTextColor()
338+
* @covers \Staffbase\plugins\sdk\SSOToken::getThemeBackgroundColor()
339+
* @covers \Staffbase\plugins\sdk\SSOToken::getLocale()
340+
* @covers \Staffbase\plugins\sdk\SSOToken::getTags()
341+
* @covers \Staffbase\plugins\sdk\SSOToken::hasClaim()
342+
* @covers \Staffbase\plugins\sdk\SSOToken::getClaim()
343+
* @covers \Staffbase\plugins\sdk\SSOToken::getBranchId()
344+
* @covers \Staffbase\plugins\sdk\SSOToken::getBranchSlug()
345+
*/
340346
public function testAccessorsGiveCorrectValues() {
341347

342348
$tokenData = SSODataTest::getTokenData();

0 commit comments

Comments
 (0)