Example #1
0
def init_app(app):
    endpoint_name = 'saved_searches'
    service = SavedSearchesService(endpoint_name,
                                   backend=superdesk.get_backend())
    SavedSearchesResource(endpoint_name, app=app, service=service)

    endpoint_name = 'all_saved_searches'
    service = AllSavedSearchesService(endpoint_name,
                                      backend=superdesk.get_backend())
    AllSavedSearchesResource(endpoint_name, app=app, service=service)

    endpoint_name = 'saved_search_items'
    service = SavedSearchItemsService(endpoint_name,
                                      backend=superdesk.get_backend())
    SavedSearchItemsResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name='use_global_saved_searches',
                        label='Global searches',
                        description='Use global saved searches.')
    superdesk.privilege(
        name='global_saved_searches',
        label='Manage Global Saved Searches',
        description='User can manage other users\' global saved searches')
    superdesk.privilege(name='saved_searches',
                        label='Manage Saved Searches',
                        description='User can manage saved searches')
    superdesk.privilege(name='saved_searches_subscriptions',
                        label='Manage Saved Searches Subscriptions',
                        description='User can (un)subscribe to saved searches')
    superdesk.privilege(
        name='saved_searches_subscriptions_admin',
        label='Manage Saved Searches Subscriptions For Other Users',
        description='User manage other users saved searches subscriptions ')
Example #2
0
def init_app(app):

    endpoint_name = 'archive_publish'
    service = ArchivePublishService(endpoint_name, backend=get_backend())
    ArchivePublishResource(endpoint_name, app=app, service=service)

    endpoint_name = 'subscribers'
    service = SubscribersService(endpoint_name, backend=get_backend())
    SubscribersResource(endpoint_name, app=app, service=service)

    endpoint_name = 'publish_queue'
    service = PublishQueueService(endpoint_name, backend=get_backend())
    PublishQueueResource(endpoint_name, app=app, service=service)

    endpoint_name = 'formatted_item'
    service = FormattedItemService(endpoint_name, backend=get_backend())
    FormattedItemResource(endpoint_name, app=app, service=service)

    endpoint_name = 'output_channels'
    service = OutputChannelsService(endpoint_name, backend=get_backend())
    OutputChannelsResource(endpoint_name, app=app, service=service)

    endpoint_name = 'destination_groups'
    service = DestinationGroupsService(endpoint_name, backend=get_backend())
    DestinationGroupsResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name='publish', label='Publish', description='Publish a content')
    superdesk.privilege(name='destination_groups', label='Destination Groups',
                        description='User can manage destination groups')
    superdesk.privilege(name='output_channels', label='Output Channels',
                        description='User can manage output channels')
    superdesk.privilege(name='subscribers', label='Subscribers',
                        description='User can manage subscribers')
    superdesk.privilege(name='publish_queue', label='Publish Queue',
                        description='User can update publish queue')
Example #3
0
def init_app(app):

    endpoint_name = 'archive_publish'
    service = ArchivePublishService(endpoint_name, backend=get_backend())
    ArchivePublishResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name='publish', label='Publish', description='Publish a content')
Example #4
0
def init_app(app):
    endpoint_name = 'dictionaries'
    service = DictionaryService(endpoint_name, backend=superdesk.get_backend())
    DictionariesResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name='dictionaries', label='Dictionaries List Management',
                        description='User can manage dictionaries lists.')
Example #5
0
def init_app(app):

    endpoint_name = 'archive_publish'
    service = ArchivePublishService(endpoint_name, backend=get_backend())
    ArchivePublishResource(endpoint_name, app=app, service=service)

    endpoint_name = 'archive_kill'
    service = KillPublishService(endpoint_name, backend=get_backend())
    KillPublishResource(endpoint_name, app=app, service=service)

    endpoint_name = 'archive_correct'
    service = CorrectPublishService(endpoint_name, backend=get_backend())
    CorrectPublishResource(endpoint_name, app=app, service=service)

    endpoint_name = 'published'
    service = PublishedItemService(endpoint_name, backend=get_backend())
    PublishedItemResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name='subscribers',
                        label='Subscribers',
                        description='User can manage subscribers')
    superdesk.privilege(name='publish',
                        label='Publish',
                        description='Publish a content')
    superdesk.privilege(name='kill',
                        label='Kill',
                        description='Kill a published content')
    superdesk.privilege(name='correct',
                        label='Correction',
                        description='Correction to a published content')
    superdesk.privilege(name='publish_queue',
                        label='Publish Queue',
                        description='User can update publish queue')
Example #6
0
def init_app(app):
    endpoint_name = 'content_types'
    service = ContentTypesService(endpoint_name, backend=superdesk.get_backend())
    ContentTypesResource(endpoint_name, app=app, service=service)
    superdesk.privilege(name=CONTENT_TYPE_PRIVILEGE,
                        label='Content Profile',
                        description='Manage content profiles')
def init_app(app):
    from apps.search_providers.proxy import SearchProviderProxyResource, SearchProviderProxyService
    superdesk.privilege(
        name='search_providers',
        label='Manage Search Providers',
        description='User can manage search providers.'
    )

    superdesk.register_resource(
        name='search_providers',
        resource=SearchProviderResource,
        service=SearchProviderService
    )

    superdesk.register_resource(
        name='search_providers_proxy',
        resource=SearchProviderProxyResource,
        service=SearchProviderProxyService
    )

    superdesk.register_resource(
        name='search_providers_allowed',
        resource=SearchProviderAllowedResource,
        service=SearchProviderAllowedService
    )
Example #8
0
def init_app(app):
    endpoint_name = "export"
    service = ExportService(endpoint_name, backend=superdesk.get_backend())
    ExportResource(endpoint_name, app=app, service=service)
    superdesk.privilege(name="content_export",
                        label="Content export",
                        description="Content export")
Example #9
0
def init_app(app):
    endpoint_name = 'products'
    service = ProductsService(endpoint_name, backend=get_backend())
    ProductsResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name='products', label='Products Management',
                        description='User can manage product lists.')
Example #10
0
def init_app(app) -> None:
    app.config["DOMAIN"]["desks"]["schema"].update({
        "is_closed": {
            "type": "boolean"
        },
        "closed_destination":
        superdesk.Resource.rel("desks"),
    })

    app.config["SOURCES"]["desks"]["projection"].update({
        "is_closed":
        1,
        "closed_destination":
        1,
    })

    superdesk.register_resource("closed_desks",
                                ClosedDeskResource,
                                ClosedDeskService,
                                _app=app)

    superdesk.privilege(
        name=PRIVILEGE,
        label=lazy_gettext("Desk routing"),
        description=lazy_gettext("User can configure desk routing"))
Example #11
0
def init_app(app):
    if not app.config["LEGAL_ARCHIVE"]:
        return

    endpoint_name = LEGAL_ARCHIVE_NAME
    service = LegalArchiveService(endpoint_name, backend=get_backend())
    LegalArchiveResource(endpoint_name, app=app, service=service)

    endpoint_name = LEGAL_ARCHIVE_VERSIONS_NAME
    service = LegalArchiveVersionsService(endpoint_name, backend=get_backend())
    LegalArchiveVersionsResource(endpoint_name, app=app, service=service)

    endpoint_name = LEGAL_ARCHIVE_HISTORY_NAME
    service = LegalArchiveHistoryService(endpoint_name, backend=get_backend())
    LegalArchiveHistoryResource(endpoint_name, app=app, service=service)

    endpoint_name = LEGAL_PUBLISH_QUEUE_NAME
    service = LegalPublishQueueService(endpoint_name, backend=get_backend())
    LegalPublishQueueResource(endpoint_name, app=app, service=service)

    privilege(name=LEGAL_ARCHIVE_NAME,
              label="Legal Archive",
              description="Read from legal archive")

    superdesk.command("legal_publish_queue:import",
                      ImportLegalPublishQueueCommand())
    superdesk.command("legal_archive:import", ImportLegalArchiveCommand())
Example #12
0
def init_app(app):
    """Initialize planning plugin.

    :param app: superdesk app
    """
    planning_search_service = PlanningService('planning',
                                              backend=superdesk.get_backend())
    PlanningResource('planning', app=app, service=planning_search_service)

    coverage_search_service = CoverageService('coverage',
                                              backend=superdesk.get_backend())
    CoverageResource('coverage', app=app, service=coverage_search_service)

    events_search_service = EventsService('events',
                                          backend=superdesk.get_backend())
    EventsResource('events', app=app, service=events_search_service)

    locations_search_service = LocationsService(
        'locations', backend=superdesk.get_backend())
    LocationsResource('locations', app=app, service=locations_search_service)

    superdesk.privilege(
        name='planning',
        label='Planning',
        description=
        'Create, update, and delete  events, planning items, and coverages')
Example #13
0
def init_app(app) -> None:
    endpoint_name = "ingest_providers"
    service: Any = IngestProviderService(endpoint_name,
                                         backend=superdesk.get_backend())
    IngestProviderResource(endpoint_name, app=app, service=service)

    from .io_errors import IOErrorsService, IOErrorsResource

    endpoint_name = "io_errors"
    service = IOErrorsService(endpoint_name, backend=superdesk.get_backend())
    IOErrorsResource(endpoint_name, app=app, service=service)

    endpoint_name = "ingest"
    service = IngestService(endpoint_name, backend=superdesk.get_backend())
    IngestResource(endpoint_name, app=app, service=service)

    superdesk.register_resource(name="feed_parsers_allowed",
                                resource=FeedParserAllowedResource,
                                service=FeedParserAllowedService)
    superdesk.privilege(
        name="feed_parsers",
        label=lazy_gettext("Ingest Feed Parsers"),
        description=lazy_gettext("User can maintain Ingest Feed Parsers."),
    )

    superdesk.register_resource(name="feeding_services_allowed",
                                resource=FeedingServiceAllowedResource,
                                service=FeedingServiceAllowedService)

    superdesk.privilege(
        name="feeding_services",
        label=lazy_gettext("Ingest Feed Services"),
        description=lazy_gettext("User can maintain Ingest Feed Services."),
    )
Example #14
0
def init_app(app):
    endpoint_name = 'marked_for_desks'
    service = MarkedForDesksService(endpoint_name, backend=get_backend())
    MarkedForDesksResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name='mark_for_desks', label='Mark items for desks',
                        description='User can mark items for other desks.')
Example #15
0
def init_app(app):

    endpoint_name = 'archive_publish'
    service = ArchivePublishService(endpoint_name, backend=get_backend())
    ArchivePublishResource(endpoint_name, app=app, service=service)

    endpoint_name = 'archive_kill'
    service = KillPublishService(endpoint_name, backend=get_backend())
    KillPublishResource(endpoint_name, app=app, service=service)

    endpoint_name = 'archive_correct'
    service = CorrectPublishService(endpoint_name, backend=get_backend())
    CorrectPublishResource(endpoint_name, app=app, service=service)

    endpoint_name = 'subscribers'
    service = SubscribersService(endpoint_name, backend=get_backend())
    SubscribersResource(endpoint_name, app=app, service=service)

    endpoint_name = 'publish_queue'
    service = PublishQueueService(endpoint_name, backend=get_backend())
    PublishQueueResource(endpoint_name, app=app, service=service)

    endpoint_name = 'published'
    service = PublishedItemService(endpoint_name, backend=get_backend())
    PublishedItemResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name='subscribers', label='Subscribers', description='User can manage subscribers')
    superdesk.privilege(name='publish', label='Publish', description='Publish a content')
    superdesk.privilege(name='kill', label='Kill', description='Kill a published content')
    superdesk.privilege(name='correct', label='Correction', description='Correction to a published content')
    superdesk.privilege(name='publish_queue', label='Publish Queue', description='User can update publish queue')
Example #16
0
def init_app(app):
    endpoint_name = "content_templates"
    service = ContentTemplatesService(endpoint_name,
                                      backend=superdesk.get_backend())
    ContentTemplatesResource(endpoint_name, app=app, service=service)
    superdesk.privilege(name=CONTENT_TEMPLATE_PRIVILEGE,
                        label=lazy_gettext("Templates"),
                        description=lazy_gettext("Create templates"))

    superdesk.privilege(
        name="personal_template",
        label=lazy_gettext("Manage other user personal template"),
        description=lazy_gettext("Manage other user personal template"),
    )

    endpoint_name = "content_templates_apply"
    service = ContentTemplatesApplyService(endpoint_name,
                                           backend=superdesk.get_backend())
    ContentTemplatesApplyResource(endpoint_name, app=app, service=service)

    register_jinja_filter("format_datetime", format_datetime_filter)
    register_jinja_filter("first_paragraph", first_paragraph_filter)
    register_jinja_filter("get_text", get_text)

    app.on_inserted_content_types += create_template_for_profile
Example #17
0
def init_app(app) -> None:
    endpoint_name = "search_capi"
    service = SearchService(endpoint_name, backend=superdesk.get_backend())
    SearchResource(endpoint_name, app=app, service=service)
    superdesk.privilege(
        name=endpoint_name, label=lazy_gettext("Content API Search"), description=lazy_gettext("Content API Search")
    )
Example #18
0
def init_app(app):
    endpoint_name = 'ingest_providers'
    service = IngestProviderService(endpoint_name,
                                    backend=superdesk.get_backend())
    IngestProviderResource(endpoint_name, app=app, service=service)

    from .io_errors import IOErrorsService, IOErrorsResource
    endpoint_name = 'io_errors'
    service = IOErrorsService(endpoint_name, backend=superdesk.get_backend())
    IOErrorsResource(endpoint_name, app=app, service=service)

    endpoint_name = 'ingest'
    service = IngestService(endpoint_name, backend=superdesk.get_backend())
    IngestResource(endpoint_name, app=app, service=service)

    superdesk.register_resource(name='feed_parsers_allowed',
                                resource=FeedParserAllowedResource,
                                service=FeedParserAllowedService)
    superdesk.privilege(name='feed_parsers',
                        label='Ingest Feed Parsers',
                        description='User can maintain Ingest Feed Parsers.')

    superdesk.register_resource(name='feeding_services_allowed',
                                resource=FeedingServiceAllowedResource,
                                service=FeedingServiceAllowedService)

    superdesk.privilege(name='feeding_services',
                        label='Ingest Feed Services',
                        description='User can maintain Ingest Feed Services.')
Example #19
0
def init_app(app):
    endpoint_name = 'content_types'
    service = ContentTypesService(endpoint_name,
                                  backend=superdesk.get_backend())
    ContentTypesResource(endpoint_name, app=app, service=service)
    superdesk.privilege(name=CONTENT_TYPE_PRIVILEGE,
                        label='Content Types',
                        description='Manage types')
Example #20
0
def init_app(app):
    endpoint_name = 'dictionaries'
    service = DictionaryService(endpoint_name, backend=superdesk.get_backend())
    DictionariesResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name='dictionaries',
                        label='Dictionaries List Management',
                        description='User can manage dictionaries lists.')
Example #21
0
def init_app(app):
    endpoint_name = "content_types"
    service = ContentTypesService(endpoint_name,
                                  backend=superdesk.get_backend())
    ContentTypesResource(endpoint_name, app=app, service=service)
    superdesk.privilege(name=CONTENT_TYPE_PRIVILEGE,
                        label="Content Profile",
                        description="Manage content profiles")
Example #22
0
def init_app(app):

    endpoint_name = ARCHIVE_BROADCAST_NAME
    service = ArchiveBroadcastService(endpoint_name, backend=superdesk.get_backend())
    ArchiveBroadcastResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name=ARCHIVE_BROADCAST_NAME, label='Broadcast',
                        description='Allows user to create broadcast content.')
Example #23
0
def init_app(app) -> None:
    endpoint_name = "roles"
    service = RolesService(endpoint_name, backend=superdesk.get_backend())
    RolesResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name="roles",
                        label=lazy_gettext("Roles Management"),
                        description=lazy_gettext("User can manage roles."))
Example #24
0
def init_app(app):
    endpoint_name = 'products'
    service = ProductsService(endpoint_name, backend=get_backend())
    ProductsResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name='products',
                        label='Products Management',
                        description='User can manage product lists.')
Example #25
0
def init_app(app):
    endpoint_name = 'users'
    service = DBUsersService(endpoint_name, backend=superdesk.get_backend())
    UsersResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name='users', label='User Management', description='User can manage users.')

    # Registering with intrinsic privileges because: A user should be allowed to update their own profile.
    superdesk.intrinsic_privilege(resource_name='users', method=['PATCH'])
Example #26
0
def init_app(app):
    endpoint_name = 'concept_items'
    service = ConceptItemsService(endpoint_name,
                                  backend=superdesk.get_backend())
    ConceptItemsResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name=CONCEPT_ITEMS_PRIVELEGE,
                        label='Concept items management',
                        description='User can manage concept items.')
Example #27
0
def init_app(app):
    if app.config.get("ENABLE_PROFILING"):
        endpoint_name = "profiling"
        service = ProfilingService(endpoint_name, backend=superdesk.get_backend())
        ProfilingResource(endpoint_name, app=app, service=service)

        superdesk.privilege(name="profiling", label="Profiling Service", description="User can read profiling data.")

        profile.enable()
Example #28
0
def init_app(app) -> None:
    superdesk.register_resource(
        "workspaces", WorkspaceResource, WorkspaceService, privilege=["POST", "PATCH", "DELETE"]
    )

    superdesk.register_default_user_preference("workspace:active", {"type": "string", "workspace": ""})

    superdesk.privilege(
        name="dashboard", label=lazy_gettext("Dashboard"), description=lazy_gettext("Can access dashboard.")
    )
def init_app(app):
    endpoint_name = 'content_publishing_report'
    service = ContentPublishingReportService(endpoint_name,
                                             backend=superdesk.get_backend())
    ContentPublishingReportResource(endpoint_name, app=app, service=service)
    register_report('content_publishing_report', 'content_publishing_report')

    superdesk.privilege(name='content_publishing_report',
                        label='Analytics - Content Publishing Reports',
                        description='User can view Content Publishing Reports')
Example #30
0
def init_app(app):
    endpoint_name = 'mission_report'
    service = MissionReportService(endpoint_name, backend=superdesk.get_backend())
    MissionReportResource(endpoint_name, app=app, service=service)

    superdesk.privilege(
        name='mission_report',
        label='Mission Report View',
        description='User can view mission reports.'
    )
Example #31
0
def init_app(app):
    endpoint_name = 'contacts'
    service = ContactsService(endpoint_name, backend=superdesk.get_backend())
    ContactsResource(endpoint_name, app=app, service=service)
    superdesk.privilege(name=CONTACTS_PRIVILEDGE,
                        label='Contacts Management',
                        description='Manage Contacts')
    superdesk.privilege(name=VIEW_CONTACTS,
                        label='Contacts View Rights',
                        description='View Contacts')
Example #32
0
def init_app(app) -> None:
    endpoint_name = "dictionaries"
    service = DictionaryService(endpoint_name, backend=superdesk.get_backend())
    DictionariesResource(endpoint_name, app=app, service=service)

    superdesk.privilege(
        name="dictionaries",
        label=lazy_gettext("Dictionaries List Management"),
        description=lazy_gettext("User can manage dictionaries lists."),
    )
Example #33
0
def init_app(app):
    endpoint_name = 'contacts'
    service = ContactsService(endpoint_name, backend=superdesk.get_backend())
    ContactsResource(endpoint_name, app=app, service=service)
    superdesk.privilege(name=CONTACTS_PRIVILEDGE, label='Contacts Management', description='Manage Contacts')
    superdesk.privilege(name=VIEW_CONTACTS, label='Contacts View Rights', description='View Contacts')

    service = OrganisationService(endpoint_name, backend=superdesk.get_backend())
    endpoint_name = 'contacts organisations'
    OrganisationSearchResource(endpoint_name, app=app, service=service)
Example #34
0
def init_app(app):

    endpoint_name = ARCHIVE_BROADCAST_NAME
    service = ArchiveBroadcastService(endpoint_name,
                                      backend=superdesk.get_backend())
    ArchiveBroadcastResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name=ARCHIVE_BROADCAST_NAME,
                        label='Broadcast',
                        description='Allows user to create broadcast content.')
Example #35
0
def init_app(app) -> None:
    endpoint_name = "system_messages"
    service = SystemMessagesService(endpoint_name,
                                    backend=superdesk.get_backend())
    SystemMessagesResource(endpoint_name, app=app, service=service)

    superdesk.privilege(
        name="system_messages",
        label=lazy_gettext("System Message"),
        description=lazy_gettext("User can manage system messages."),
    )
Example #36
0
def init_app(app):
    # Must be imported here as the registered_search_providers is referenced by the below modules
    from .resource import SearchProviderResource
    from .service import SearchProviderService

    endpoint_name = 'search_providers'
    search_provider_service = SearchProviderService(endpoint_name, backend=superdesk.get_backend())
    SearchProviderResource(endpoint_name, app=app, service=search_provider_service)

    superdesk.privilege(name='search_providers', label='Manage Search Providers',
                        description='User can manage search providers.')
Example #37
0
def init_app(app):
    endpoint_name = 'users'
    service = DBUsersService(endpoint_name, backend=superdesk.get_backend())
    UsersResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name='users',
                        label='User Management',
                        description='User can manage users.')

    # Registering with intrinsic privileges because: A user should be allowed to update their own profile.
    superdesk.intrinsic_privilege(resource_name='users', method=['PATCH'])
def init_app(app):
    register_resource(NAME,
                      InternalDestinationsResource,
                      InternalDestinationsService,
                      _app=app)

    privilege(name=NAME,
              label='Internal Destinations',
              description='User can manage internal destinations.')

    item_published.connect(handle_item_published)
def init_app(app):
    locations_search_service = LocationsService(
        'locations', backend=superdesk.get_backend())
    LocationsResource('locations', app=app, service=locations_search_service)

    superdesk.privilege(
        name='planning_locations_management',
        label=lazy_gettext('Planning - Manage locations'),
        description=lazy_gettext(
            'Ability to create, edit and delete locations'),
    )
Example #40
0
def init_app(app):
    if app.config.get('ENABLE_PROFILING'):
        endpoint_name = 'profiling'
        service = ProfilingService(endpoint_name,
                                   backend=superdesk.get_backend())
        ProfilingResource(endpoint_name, app=app, service=service)

        superdesk.privilege(name='profiling',
                            label='Profiling Service',
                            description='User can read profiling data.')

        profile.enable()
Example #41
0
def init_app(app) -> None:

    endpoint_name = ARCHIVE_BROADCAST_NAME
    service = ArchiveBroadcastService(endpoint_name,
                                      backend=superdesk.get_backend())
    ArchiveBroadcastResource(endpoint_name, app=app, service=service)

    superdesk.privilege(
        name=ARCHIVE_BROADCAST_NAME,
        label=lazy_gettext("Broadcast"),
        description=lazy_gettext("Allows user to create broadcast content."),
    )
Example #42
0
def init_app(app):
    endpoint_name = 'content_templates'
    service = ContentTemplatesService(endpoint_name, backend=superdesk.get_backend())
    ContentTemplatesResource(endpoint_name, app=app, service=service)
    superdesk.privilege(name=CONTENT_TEMPLATE_PRIVILEGE, label='Templates', description='Create templates')

    endpoint_name = 'content_templates_apply'
    service = ContentTemplatesApplyService(endpoint_name, backend=superdesk.get_backend())
    ContentTemplatesApplyResource(endpoint_name, app=app, service=service)

    register_jinja_filter('format_datetime', format_datetime_filter)
    register_jinja_filter('first_paragraph', first_paragraph_filter)
Example #43
0
def init_app(app):
    endpoint_name = 'highlights'
    service = HighlightsService(endpoint_name, backend=get_backend())
    HighlightsResource(endpoint_name, app=app, service=service)

    endpoint_name = 'marked_for_highlights'
    service = MarkedForHighlightsService(endpoint_name, backend=get_backend())
    MarkedForHighlightsResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name='highlights', label='Highlights/Summary List Management',
                        description='User can manage highlights/summary lists.')
    superdesk.privilege(name='mark_for_highlights', label='Mark items for Highlights/Summary Lists',
                        description='User can mark items for Highlights/Summary Lists.')
def init_app(app):
    register_resource(
        NAME,
        InternalDestinationsResource,
        InternalDestinationsService,
        _app=app)

    privilege(
        name=NAME,
        label='Internal Destinations',
        description='User can manage internal destinations.')

    item_published.connect(handle_item_published)
Example #45
0
def init_app(app):
    endpoint_name = LEGAL_ARCHIVE_NAME
    service = LegalArchiveService(endpoint_name, backend=get_backend())
    LegalArchiveResource(endpoint_name, app=app, service=service)

    endpoint_name = LEGAL_ARCHIVE_VERSIONS_NAME
    service = LegalArchiveVersionsService(endpoint_name, backend=get_backend())
    LegalArchiveVersionsResource(endpoint_name, app=app, service=service)

    endpoint_name = LEGAL_PUBLISH_QUEUE_NAME
    service = LegalPublishQueueService(endpoint_name, backend=get_backend())
    LegalPublishQueueResource(endpoint_name, app=app, service=service)

    privilege(name=LEGAL_ARCHIVE_NAME, label='Legal Archive', description='Read from legal archive')
Example #46
0
def init_app(app):
    endpoint_name = 'rule_sets'
    service = RuleSetsService(endpoint_name, backend=get_backend())
    RuleSetsResource(endpoint_name, app=app, service=service)

    endpoint_name = 'routing_schemes'
    service = RoutingRuleSchemeService(endpoint_name, backend=get_backend())
    RoutingRuleSchemeResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name='rule_sets', label='Transformation Rules Management',
                        description='User can setup transformation rules for ingest content.')

    superdesk.privilege(name='routing_rules', label='Routing Rules Management',
                        description='User can manage routing rules which are executed on ingested articles.')
Example #47
0
def init_app(app):
    endpoint_name = 'fetch'
    service = FetchService(endpoint_name, backend=superdesk.get_backend())
    FetchResource(endpoint_name, app=app, service=service)

    endpoint_name = 'duplicate'
    service = DuplicateService(endpoint_name, backend=superdesk.get_backend())
    DuplicateResource(endpoint_name, app=app, service=service)

    endpoint_name = 'translate'
    service = TranslateService(endpoint_name, backend=superdesk.get_backend())
    TranslateResource(endpoint_name, app=app, service=service)

    endpoint_name = 'copy'
    service = CopyService(endpoint_name, backend=superdesk.get_backend())
    CopyResource(endpoint_name, app=app, service=service)

    endpoint_name = 'move'
    service = MoveService(endpoint_name, backend=superdesk.get_backend())
    MoveResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name='fetch', label='Fetch Content To a Desk', description='Fetch Content to a Desk')
    superdesk.privilege(name='move', label='Move Content to another desk', description='Move Content to another desk')
    superdesk.privilege(name='duplicate', label='Duplicate Content within a Desk',
                        description='Duplicate Content within a Desk')
    superdesk.privilege(name='translate', label='Translate Content within a Desk',
                        description='Translate Content within a Desk')

    superdesk.intrinsic_privilege('copy', method=['POST'])
Example #48
0
def init_app(app):
    endpoint_name = 'saved_searches'
    service = SavedSearchesService(endpoint_name, backend=superdesk.get_backend())
    SavedSearchesResource(endpoint_name, app=app, service=service)

    endpoint_name = 'all_saved_searches'
    service = AllSavedSearchesService(endpoint_name, backend=superdesk.get_backend())
    AllSavedSearchesResource(endpoint_name, app=app, service=service)

    endpoint_name = 'saved_search_items'
    service = SavedSearchItemsService(endpoint_name, backend=superdesk.get_backend())
    SavedSearchItemsResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name='global_saved_searches',
                        label='Manage Global Saved Searches',
                        description='User can manage other users\' global saved searches')
    superdesk.privilege(name='saved_searches',
                        label='Manage Saved Searches',
                        description='User can manage saved searches')
    superdesk.privilege(name='saved_searches_subscriptions',
                        label='Manage Saved Searches Subscriptions',
                        description='User can (un)subscribe to saved searches')
    superdesk.privilege(name='saved_searches_subscriptions_admin',
                        label='Manage Saved Searches Subscriptions For Other Users',
                        description='User manage other users saved searches subscriptions ')
Example #49
0
def init_app(app):
    endpoint_name = 'filter_conditions'
    service = FilterConditionService(endpoint_name, backend=get_backend())
    FilterConditionResource(endpoint_name, app=app, service=service)

    endpoint_name = 'filter_condition_parameters'
    service = FilterConditionParametersService(endpoint_name, backend=get_backend())
    FilterConditionParametersResource(endpoint_name, app=app, service=service)

    endpoint_name = 'publish_filters'
    service = PublishFilterService(endpoint_name, backend=get_backend())
    PublishFilterResource(endpoint_name, app=app, service=service)

    endpoint_name = 'publish_filter_tests'
    service = PublishFilterTestService(endpoint_name, backend=superdesk.get_backend())
    PublishFilterTestResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name='publish_filters', label='Publish Filters',
                        description='User can manage publish filters')
Example #50
0
def init_app(app):
    endpoint_name = 'mission_report'
    service = MissionReportService(endpoint_name, backend=superdesk.get_backend())
    MissionReportResource(endpoint_name, app=app, service=service)
    register_report('mission_report', 'mission_report')

    superdesk.privilege(
        name='mission_report',
        label='Mission Report View',
        description='User can view mission reports.'
    )

    endpoint_name = 'sms_report'
    service = SMSReportService(endpoint_name, backend=superdesk.get_backend())
    SMSReportResource(endpoint_name, app=app, service=service)
    register_report('sms_report', 'sms_report')

    superdesk.privilege(
        name='sms_report',
        label='SMS Report View',
        description='User can view sms reports.'
    )
Example #51
0
def init_app(app):
    if not app.config['LEGAL_ARCHIVE']:
        return

    endpoint_name = LEGAL_ARCHIVE_NAME
    service = LegalArchiveService(endpoint_name, backend=get_backend())
    LegalArchiveResource(endpoint_name, app=app, service=service)

    endpoint_name = LEGAL_ARCHIVE_VERSIONS_NAME
    service = LegalArchiveVersionsService(endpoint_name, backend=get_backend())
    LegalArchiveVersionsResource(endpoint_name, app=app, service=service)

    endpoint_name = LEGAL_ARCHIVE_HISTORY_NAME
    service = LegalArchiveHistoryService(endpoint_name, backend=get_backend())
    LegalArchiveHistoryResource(endpoint_name, app=app, service=service)

    endpoint_name = LEGAL_PUBLISH_QUEUE_NAME
    service = LegalPublishQueueService(endpoint_name, backend=get_backend())
    LegalPublishQueueResource(endpoint_name, app=app, service=service)

    privilege(name=LEGAL_ARCHIVE_NAME, label='Legal Archive', description='Read from legal archive')

    superdesk.command('legal_publish_queue:import', ImportLegalPublishQueueCommand())
    superdesk.command('legal_archive:import', ImportLegalArchiveCommand())
Example #52
0
def init_app(app):
    endpoint_name = 'ingest_providers'
    service = IngestProviderService(endpoint_name, backend=superdesk.get_backend())
    IngestProviderResource(endpoint_name, app=app, service=service)

    from .io_errors import IOErrorsService, IOErrorsResource
    endpoint_name = 'io_errors'
    service = IOErrorsService(endpoint_name, backend=superdesk.get_backend())
    IOErrorsResource(endpoint_name, app=app, service=service)

    endpoint_name = 'ingest'
    service = IngestService(endpoint_name, backend=superdesk.get_backend())
    IngestResource(endpoint_name, app=app, service=service)

    superdesk.register_resource(
        name='feed_parsers_allowed',
        resource=FeedParserAllowedResource,
        service=FeedParserAllowedService
    )
    superdesk.privilege(
        name='feed_parsers',
        label='Ingest Feed Parsers',
        description='User can maintain Ingest Feed Parsers.'
    )

    superdesk.register_resource(
        name='feeding_services_allowed',
        resource=FeedingServiceAllowedResource,
        service=FeedingServiceAllowedService
    )

    superdesk.privilege(
        name='feeding_services',
        label='Ingest Feed Services',
        description='User can maintain Ingest Feed Services.'
    )
Example #53
0
def init_app(app):
    endpoint_name = 'activity_reports'
    service = ActivityReportService(endpoint_name, backend=superdesk.get_backend())
    ActivityReportResource(endpoint_name, app=app, service=service)

    endpoint_name = 'saved_activity_reports'
    service = SavedActivityReportService(endpoint_name, backend=superdesk.get_backend())
    SavedActivityReportResource(endpoint_name, app=app, service=service)

    endpoint_name = 'track_activity_report'
    service = TrackActivityService(endpoint_name, backend=superdesk.get_backend())
    TrackActivityResource(endpoint_name, app=app, service=service)

    endpoint_name = 'processed_items_report'
    service = ProcessedItemsService(endpoint_name, backend=superdesk.get_backend())
    ProcessedItemsResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name='activity_reports', label='Activity Report View',
                        description='User can view activity reports.')
    superdesk.privilege(name='track_activity_report', label='Track Activity Report View')
    superdesk.privilege(name='processed_items_report', label='Processed Items Report View',
                        description='User can view activity reports.')
Example #54
0
        old_task = original.get('task', {})
        if new_task.get('stage') != old_task.get('stage'):
            push_notification('task:stage',
                              new_stage=str(new_task.get('stage', '')),
                              old_stage=str(old_task.get('stage', '')),
                              new_desk=str(new_task.get('desk', '')),
                              old_desk=str(old_task.get('desk', ''))
                              )
        else:
            push_notification(self.datasource, updated=1)

        if is_assigned_to_a_desk(updated):
            if self.__is_content_assigned_to_new_desk(original, updates) and \
                    not self._stage_changed(updates, original):
                insert_into_versions(doc=updated)
            add_activity(ACTIVITY_UPDATE, 'updated task {{ subject }} for item {{ type }}',
                         self.datasource, item=updated, subject=get_subject(updated), type=updated['type'])

    def on_deleted(self, doc):
        push_notification(self.datasource, deleted=1)

    def assign_user(self, item_id, user):
        return self.patch(item_id, {'task': user})

    def _stage_changed(self, updates, original):
        new_stage_id = str(updates.get('task', {}).get('stage', ''))
        old_stage_id = str(original.get('task', {}).get('stage', ''))
        return new_stage_id and new_stage_id != old_stage_id

superdesk.privilege(name='tasks', label='Tasks Management', description='Tasks Management')
from eve.methods.common import serialize_value

from superdesk import privilege
from superdesk.notification import push_notification
from superdesk.resource import Resource
from superdesk.services import BaseService
from superdesk.users import get_user_from_request
from superdesk.utc import utcnow
from superdesk.errors import SuperdeskApiError
from superdesk.default_schema import DEFAULT_SCHEMA, DEFAULT_EDITOR
from copy import deepcopy

logger = logging.getLogger(__name__)


privilege(name="vocabularies", label="Vocabularies Management",
          description="User can manage vocabularies' contents.")


# TODO(petr): add api to specify vocabulary schema
vocab_schema = {
    'crop_sizes': {
        'width': {'type': 'integer'},
        'height': {'type': 'integer'},
    }
}


class VocabulariesResource(Resource):
    schema = {
        '_id': {
            'type': 'string',
Example #56
0
}


def init_app(app):
    endpoint_name = 'desks'
    service = DesksService(endpoint_name, backend=superdesk.get_backend())
    DesksResource(endpoint_name, app=app, service=service)
    endpoint_name = 'user_desks'
    service = UserDesksService(endpoint_name, backend=superdesk.get_backend())
    UserDesksResource(endpoint_name, app=app, service=service)
    endpoint_name = 'sluglines'
    service = SluglineDeskService(endpoint_name, backend=superdesk.get_backend())
    SluglineDesksResource(endpoint_name, app=app, service=service)


superdesk.privilege(name='desks', label='Desk Management', description='User can manage desks.')


class DesksResource(Resource):
    schema = desks_schema
    privileges = {'POST': 'desks', 'PATCH': 'desks', 'DELETE': 'desks'}


class DesksService(BaseService):
    notification_key = 'desk'

    def create(self, docs, **kwargs):
        """
        Overriding to check if the desk being created has Working and Incoming Stages. If not then Working and Incoming
        Stages would be created and associates them with the desk and desk with the Working and Incoming Stages.
        Also sets desk_type.
Example #57
0
    def qname(self, tag, ns=None):
        if ns is None:
            ns = self.root.tag.rsplit('}')[0].lstrip('{')
        elif ns is not None and ns == 'xml':
            ns = 'http://www.w3.org/XML/1998/namespace'

        return str(etree.QName(ns, tag))


def get_xml_parser(etree):
    """Get parser for given xml.

    :param etree: parsed xml
    """
    for parser in parsers:
        if parser.can_parse(etree):
            return parser


# must be imported for registration
import superdesk.io.nitf
import superdesk.io.newsml_2_0
import superdesk.io.newsml_1_2
import superdesk.io.wenn_parser
import superdesk.io.teletype
import superdesk.io.email
import superdesk.io.dpa
register_provider('search', None, [])

superdesk.privilege(name='ingest_providers', label='Ingest Channels', description='User can maintain Ingest Channels.')
Example #58
0
def init_app(app):

    endpoint_name = 'ingest'
    service = AppIngestService(endpoint_name, backend=superdesk.get_backend())
    IngestResource(endpoint_name, app=app, service=service)

    endpoint_name = 'archive_versions'
    service = superdesk.Service(endpoint_name, backend=superdesk.get_backend())
    ArchiveVersionsResource(endpoint_name, app=app, service=service)

    endpoint_name = 'archive'
    service = ArchiveService(endpoint_name, backend=superdesk.get_backend())
    ArchiveResource(endpoint_name, app=app, service=service)

    endpoint_name = 'item_comments'
    service = ItemCommentsService(endpoint_name, backend=superdesk.get_backend())
    ItemCommentsResource(endpoint_name, app=app, service=service)

    endpoint_name = 'content_item_comments'
    service = ItemCommentsSubService(endpoint_name, backend=superdesk.get_backend())
    ItemCommentsSubResource(endpoint_name, app=app, service=service)

    endpoint_name = 'archive_lock'
    service = ArchiveLockService(endpoint_name, backend=superdesk.get_backend())
    ArchiveLockResource(endpoint_name, app=app, service=service)

    endpoint_name = 'archive_unlock'
    service = ArchiveUnlockService(endpoint_name, backend=superdesk.get_backend())
    ArchiveUnlockResource(endpoint_name, app=app, service=service)

    endpoint_name = 'archive_spike'
    service = ArchiveSpikeService(endpoint_name, backend=superdesk.get_backend())
    ArchiveSpikeResource(endpoint_name, app=app, service=service)

    endpoint_name = 'archive_unspike'
    service = ArchiveUnspikeService(endpoint_name, backend=superdesk.get_backend())
    ArchiveUnspikeResource(endpoint_name, app=app, service=service)

    endpoint_name = 'user_content'
    service = UserContentService(endpoint_name, backend=superdesk.get_backend())
    UserContentResource(endpoint_name, app=app, service=service)

    endpoint_name = 'archive_link'
    service = ArchiveLinkService(endpoint_name, backend=superdesk.get_backend())
    ArchiveLinkResource(endpoint_name, app=app, service=service)

    endpoint_name = 'archive_rewrite'
    service = ArchiveRewriteService(endpoint_name, backend=superdesk.get_backend())
    ArchiveRewriteResource(endpoint_name, app=app, service=service)

    endpoint_name = 'saved_searches'
    service = SavedSearchesService(endpoint_name, backend=superdesk.get_backend())
    SavedSearchesResource(endpoint_name, app=app, service=service)

    endpoint_name = 'all_saved_searches'
    service = BaseService(endpoint_name, backend=superdesk.get_backend())
    AllSavedSearchesResource(endpoint_name, app=app, service=service)

    endpoint_name = 'saved_search_items'
    service = SavedSearchItemsService(endpoint_name, backend=superdesk.get_backend())
    SavedSearchItemsResource(endpoint_name, app=app, service=service)

    endpoint_name = 'archive_autosave'
    service = ArchiveSaveService(endpoint_name, backend=superdesk.get_backend())
    AutoSaveResource(endpoint_name, app=app, service=service)

    from apps.item_autosave.components.item_autosave import ItemAutosave
    from apps.item_autosave.models.item_autosave import ItemAutosaveModel
    register_component(ItemLock(app))
    register_component(ItemHold(app))
    register_model(ItemModel(EveProxy(superdesk.get_backend())))
    register_component(ItemAutosave(app))
    register_model(ItemAutosaveModel(EveProxy(superdesk.get_backend())))

    superdesk.privilege(name='archive', label='Archive', description='User can view the published content.')
    superdesk.privilege(name='ingest', label='Ingest', description='User can view content in ingest and fetch it.')
    superdesk.privilege(name='spike', label='Spike', description='User can spike content.')
    superdesk.privilege(name='unspike', label='Un Spike', description='User can un-spike content.')
    superdesk.privilege(name='unlock', label='Unlock content', description='User can unlock content.')
    superdesk.privilege(name='metadata_uniquename', label='Edit Unique Name', description='User can edit unique name.')
    superdesk.privilege(name='saved_searches', label='Manage Saved Searches',
                        description='User can manage Saved Searches')

    superdesk.privilege(name='hold', label='Hold', description='Hold a content')
    superdesk.privilege(name='restore', label='Restore', description='Restore a hold a content')
    superdesk.privilege(name='rewrite', label='Rewrite', description='Rewrite a published content')

    superdesk.intrinsic_privilege(ArchiveUnlockResource.endpoint_name, method=['POST'])
    superdesk.intrinsic_privilege(ArchiveLinkResource.endpoint_name, method=['POST'])