Skip to content

Argus: screen censored content #4326

@bedeho

Description

@bedeho

Dependency

This depends on having authentication working, as is described in this issue #basic

Background

Currently the curators can call the following two extrinsics

/// Extrinsic for setting channel visibility status (hidden/visible) by moderator
///
/// <weight>
///
/// ## Weight
/// `O (A)` where:
/// - `A` is the length of `rationale`
/// - DB:
///    - O(1) doesn't depend on the state or parameters
/// # </weight>
#[weight = Module::<T>::set_channel_visibility_as_moderator_weight(rationale)]
pub fn set_channel_visibility_as_moderator(
    origin,
    actor: ContentActor<T::CuratorGroupId, T::CuratorId, T::MemberId>,
    channel_id: T::ChannelId,
    is_hidden: bool,
    rationale: Vec<u8>,
) -> DispatchResult;

  /// Extrinsic for video visibility status (hidden/visible) setting by moderator
  ///
  /// <weight>
  ///
  /// ## Weight
  /// `O (A)` where:
  /// - `A` is the length of `rationale`
  /// - DB:
  ///    - O(1) doesn't depend on the state or parameters
  /// # </weight>
  #[weight = Module::<T>::set_video_visibility_as_moderator_weight(rationale)]
  pub fn set_video_visibility_as_moderator(
      origin,
      actor: ContentActor<T::CuratorGroupId, T::CuratorId, T::MemberId>,
      video_id: T::VideoId,
      is_hidden: bool,
      rationale: Vec<u8>,
  ) -> DispatchResult;

these result in setting properties in the query node video and channel schemas

"Flag signaling whether a channel is censored."
isCensored: Boolean!

...

"Flag signaling whether a video is censored."
isCensored: Boolean!

However, Argus is not sensitive to these and serves the content to anyone!

Proposal

Prevent anyone except (called insiders)

  • channel collaborators
  • channel owner (including WG workers+lead if owned by curator group)
  • lead
  • council member
  • curators in group which can mutate this status

to fetch

  1. any asset used by a censored video.
  2. any asset used by a video in a censored channel.
  3. any asset used by a censored channel

┆Issue is synchronized with this Asana task by Unito

Metadata

Metadata

Assignees

Labels

argusArgus distributor nodeenhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions