@saooti/octopus-sdk 41.10.7 → 41.10.9

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 CHANGED
@@ -1,5 +1,17 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 41.10.9 (01/06/2026)
4
+
5
+ **Fixes**
6
+
7
+ - **14539** - Ajout droits pour accès règles RSS
8
+
9
+ ## 41.10.8 (29/05/2026)
10
+
11
+ **Fixes**
12
+
13
+ - **14524** - Accès aux aggrégateurs sans authentification
14
+
3
15
  ## 41.10.7 (28/05/2026)
4
16
 
5
17
  **Fixes**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saooti/octopus-sdk",
3
- "version": "41.10.7",
3
+ "version": "41.10.9",
4
4
  "private": false,
5
5
  "description": "Javascript SDK for using octopus",
6
6
  "author": "Saooti",
@@ -47,7 +47,22 @@ async function getAll(organisationId?: string): Promise<Array<Aggregator>> {
47
47
  });
48
48
  }
49
49
 
50
+ /**
51
+ * Return the list of all user-defined aggregators, without filter data.
52
+ * This doesn't require to be authenticated.
53
+ * @param organisationId If defined, the aggregators will be filtered for this
54
+ * organisation
55
+ */
56
+ async function getAllNoAuth(organisationId?: string): Promise<Array<PredefinedAggregator>> {
57
+ return classicApi.fetchData<Array<Aggregator>>({
58
+ api: ModuleApi.DEFAULT,
59
+ path: 'rss/aggregator/noauth/list',
60
+ parameters: organisationId ? { organisationId } : undefined
61
+ });
62
+ }
63
+
50
64
  export const aggregatorsApi = {
51
65
  getPredefined,
52
- getAll
66
+ getAll,
67
+ getAllNoAuth
53
68
  };
@@ -13,7 +13,7 @@ import PodbeanIcon from "../../icons/PodbeanIcon.vue";
13
13
  import YoutubeIcon from "vue-material-design-icons/Youtube.vue";
14
14
  import SpotifyIcon from "vue-material-design-icons/Spotify.vue";
15
15
  import { Annotations } from "@/stores/class/general";
16
- import { h, markRaw, ref, type Component, type Ref } from "vue";
16
+ import { h, markRaw, ref, type Component } from "vue";
17
17
  import { aggregatorsApi } from "../../../api/aggregatorsApi";
18
18
  import { useNotificationStore } from "../../../stores/NotificationStore";
19
19
  import ClassicAvatar from "../../misc/ClassicAvatar.vue";
@@ -136,7 +136,7 @@ export const useSharePlatforms = () => {
136
136
  platforms.value = [...PREDEFINED_PLATFORMS];
137
137
 
138
138
  try {
139
- const customPlatforms = await aggregatorsApi.getAll(organisationId);
139
+ const customPlatforms = await aggregatorsApi.getAllNoAuth(organisationId);
140
140
  customPlatforms.forEach(platform => {
141
141
  platforms.value.push({
142
142
  name: platform.name,
@@ -193,6 +193,16 @@ export const useRights = () => {
193
193
  return roleContainsAny('ADMIN', 'ORGANISATION');
194
194
  }
195
195
 
196
+ /** Can read/edit RSS rules */
197
+ function canReadRSSRules(): boolean {
198
+ return roleContainsAny('ADMIN', 'ORGANISATION', 'PRODUCTION');
199
+ }
200
+
201
+ /** Can edit RSS rules */
202
+ function canEditRSSRules(): boolean {
203
+ return canReadRSSRules();
204
+ }
205
+
196
206
  return {
197
207
  // Emissions
198
208
  canCreateEmission,
@@ -224,6 +234,10 @@ export const useRights = () => {
224
234
  canEditAggregator,
225
235
  canDeleteAggregator,
226
236
 
237
+ // RSS Rules
238
+ canReadRSSRules,
239
+ canEditRSSRules,
240
+
227
241
  // Other
228
242
  canEditCodeInsertPlayer,
229
243
  canEditTranscript,
@@ -1,6 +1,5 @@
1
1
  <template>
2
2
  <section v-if="isInit" class="page-box">
3
- <!-- TODO à intégrer dans frontoffice -->
4
3
  <router-link
5
4
  v-if="isRolePlaylists && !isPodcastmaker"
6
5
  to="/main/priv/edit/playlist"