feat: add access control to channels with various modes
- Introduced AccessMode enum to define channel access levels: Public, PasswordProtected, AccountRequired, and OwnerOnly. - Updated Channel and ProgrammingBlock entities to include access_mode and access_password_hash fields. - Enhanced create and update channel functionality to handle access mode and password. - Implemented access checks in channel routes based on the defined access modes. - Modified frontend components to support channel creation and editing with access control options. - Added ChannelPasswordModal for handling password input when accessing restricted channels. - Updated API calls to include channel and block passwords as needed. - Created database migrations to add access_mode and access_password_hash columns to channels table.
This commit is contained in:
@@ -98,22 +98,22 @@ export function useActiveSchedule(channelId: string) {
|
||||
});
|
||||
}
|
||||
|
||||
export function useCurrentBroadcast(channelId: string) {
|
||||
export function useCurrentBroadcast(channelId: string, channelPassword?: string) {
|
||||
const { token } = useAuthContext();
|
||||
return useQuery({
|
||||
queryKey: ["broadcast", channelId],
|
||||
queryFn: () => api.schedule.getCurrentBroadcast(channelId, token ?? ""),
|
||||
queryKey: ["broadcast", channelId, channelPassword],
|
||||
queryFn: () => api.schedule.getCurrentBroadcast(channelId, token ?? "", channelPassword),
|
||||
enabled: !!channelId,
|
||||
refetchInterval: 30_000,
|
||||
retry: false,
|
||||
});
|
||||
}
|
||||
|
||||
export function useEpg(channelId: string, from?: string, until?: string) {
|
||||
export function useEpg(channelId: string, from?: string, until?: string, channelPassword?: string) {
|
||||
const { token } = useAuthContext();
|
||||
return useQuery({
|
||||
queryKey: ["epg", channelId, from, until],
|
||||
queryFn: () => api.schedule.getEpg(channelId, token ?? "", from, until),
|
||||
queryKey: ["epg", channelId, from, until, channelPassword],
|
||||
queryFn: () => api.schedule.getEpg(channelId, token ?? "", from, until, channelPassword),
|
||||
enabled: !!channelId,
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user