musora-content-services 1.0.183 → 1.0.184
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/package.json +1 -1
- package/src/services/sanity.js +12 -8
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [1.0.184](https://github.com/railroadmedia/musora-content-services/compare/v1.0.183...v1.0.184) (2024-11-25)
|
|
6
|
+
|
|
5
7
|
### [1.0.183](https://github.com/railroadmedia/musora-content-services/compare/v1.0.182...v1.0.183) (2024-11-25)
|
|
6
8
|
|
|
7
9
|
### [1.0.182](https://github.com/railroadmedia/musora-content-services/compare/v1.0.181...v1.0.182) (2024-11-25)
|
package/package.json
CHANGED
package/src/services/sanity.js
CHANGED
|
@@ -1643,6 +1643,7 @@ export async function fetchSanity(query,
|
|
|
1643
1643
|
]);
|
|
1644
1644
|
const response = promisesResult[0];
|
|
1645
1645
|
const userPermissions = promisesResult[1]?.permissions;
|
|
1646
|
+
const isAdmin = promisesResult[1]?.isAdmin;
|
|
1646
1647
|
|
|
1647
1648
|
if (!response.ok) {
|
|
1648
1649
|
throw new Error(`Sanity API error: ${response.status} - ${response.statusText}`);
|
|
@@ -1653,7 +1654,7 @@ export async function fetchSanity(query,
|
|
|
1653
1654
|
console.log("fetchSanity Results:", result);
|
|
1654
1655
|
}
|
|
1655
1656
|
let results = isList ? result.result : result.result[0];
|
|
1656
|
-
results = processNeedAccess ? await needsAccessDecorator(results, userPermissions) : results;
|
|
1657
|
+
results = processNeedAccess ? await needsAccessDecorator(results, userPermissions, isAdmin) : results;
|
|
1657
1658
|
return customPostProcess ? customPostProcess(results) : results;
|
|
1658
1659
|
} else {
|
|
1659
1660
|
throw new Error('No results found');
|
|
@@ -1664,38 +1665,41 @@ export async function fetchSanity(query,
|
|
|
1664
1665
|
}
|
|
1665
1666
|
}
|
|
1666
1667
|
|
|
1667
|
-
function needsAccessDecorator(results, userPermissions) {
|
|
1668
|
+
function needsAccessDecorator(results, userPermissions, isAdmin) {
|
|
1668
1669
|
if (globalConfig.sanityConfig.useDummyRailContentMethods) return results;
|
|
1669
1670
|
|
|
1670
1671
|
userPermissions = new Set(userPermissions);
|
|
1671
1672
|
|
|
1672
1673
|
if (Array.isArray(results)) {
|
|
1673
1674
|
results.forEach((result) => {
|
|
1674
|
-
result['need_access'] = doesUserNeedAccessToContent(result, userPermissions);
|
|
1675
|
+
result['need_access'] = doesUserNeedAccessToContent(result, userPermissions, isAdmin);
|
|
1675
1676
|
});
|
|
1676
1677
|
} else if (results.entity && Array.isArray(results.entity)) {
|
|
1677
1678
|
// Group By
|
|
1678
1679
|
results.entity.forEach((result) => {
|
|
1679
1680
|
if (result.lessons) {
|
|
1680
1681
|
result.lessons.forEach((lesson) => {
|
|
1681
|
-
lesson['need_access'] = doesUserNeedAccessToContent(lesson, userPermissions); // Updated to check lesson access
|
|
1682
|
+
lesson['need_access'] = doesUserNeedAccessToContent(lesson, userPermissions, isAdmin); // Updated to check lesson access
|
|
1682
1683
|
});
|
|
1683
1684
|
} else {
|
|
1684
|
-
result['need_access'] = doesUserNeedAccessToContent(result, userPermissions);
|
|
1685
|
+
result['need_access'] = doesUserNeedAccessToContent(result, userPermissions, isAdmin);
|
|
1685
1686
|
}
|
|
1686
1687
|
});
|
|
1687
1688
|
} else if (results.related_lessons && Array.isArray(results.related_lessons)) {
|
|
1688
1689
|
results.related_lessons.forEach((result) => {
|
|
1689
|
-
result['need_access'] = doesUserNeedAccessToContent(result, userPermissions);
|
|
1690
|
+
result['need_access'] = doesUserNeedAccessToContent(result, userPermissions, isAdmin);
|
|
1690
1691
|
})
|
|
1691
1692
|
} else {
|
|
1692
|
-
results['need_access'] = doesUserNeedAccessToContent(results, userPermissions);
|
|
1693
|
+
results['need_access'] = doesUserNeedAccessToContent(results, userPermissions, isAdmin);
|
|
1693
1694
|
}
|
|
1694
1695
|
|
|
1695
1696
|
return results;
|
|
1696
1697
|
}
|
|
1697
1698
|
|
|
1698
|
-
function doesUserNeedAccessToContent(result, userPermissions) {
|
|
1699
|
+
function doesUserNeedAccessToContent(result, userPermissions, isAdmin) {
|
|
1700
|
+
if (isAdmin ?? false) {
|
|
1701
|
+
return false;
|
|
1702
|
+
}
|
|
1699
1703
|
const permissions = new Set(result?.permission_id ?? []);
|
|
1700
1704
|
if (permissions.size === 0) {
|
|
1701
1705
|
return false;
|