Skip to content

Organizations: LinkedIn company-page management #42

Closed

Description

@Adron

Part of #38 — Social account linking (OAuth) and full cross-post destination support

Web behaviour (/help/organizations → LinkedIn company pages): an organization can hold a
LinkedIn credential and assign pages to members.

None of these are called from Android:

  • GET /api/organizations/{id}/linkedin/status
  • PUT /api/organizations/{id}/linkedin/assignments
  • DELETE /api/organizations/{id}/linkedin/credential
  • POST /api/organizations/{id}/linkedin/sync-pages

Add a LinkedIn section to the organization detail screen, visible only to roles allowed to manage
it.

Tests: status parse; assignment round-trip; credential removal confirmation.


Filed from the parity review of feature/parity-wip @ 14d7795 against interlinedlist.com (OpenAPI /api/openapi.json, 233 paths) and the public help centre.

Activity

  1. Adron commented on Sep 16, 2026

    @Adron
    MemberAuthor

    Implemented in the PR above (branch issue/42-org-linkedin). Closing here — review and any follow-up happens on the PR.

    Three live findings contradict the help centre and are worth fixing in the docs:

    1. GET …/linkedin/status returns {"credential":null,"role":"member"}, not the documented {"connected":true,"expiresAt":…}.
    2. GET …/linkedin/assignments and GET …/linkedin/sync-pages answer 405 — the help centre's endpoint table lists GETs that do not exist. The status payload is the only source of pages and assignments.
    3. PUT …/linkedin/assignments takes one {userId, pageId} pair, not a map of assignments. Omitting pageId clears that member (200 {"assigned":false}).

    Good news on enforcement: unlike the member endpoints #83 found unenforced, the server does enforce roles here — a plain member gets 403 "Admin or owner required".

    Still unconfirmed: the connected status payload, because no reachable account holds an organization LinkedIn credential. The DTOs are deliberately tolerant and sync re-reads status rather than trusting its own response shape, but this is worth re-probing the first time an org actually connects.

    One throwaway org was created for the write probes and deleted; no real organization's credential or assignments were touched.

  2. added a commit that references this issue on Sep 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Niche or minorarea:integrationsOAuth, cross-posting, GitHubarea:organizationsOrganizationsparityClosing a gap against interlinedlist.com

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions