Skip to content

feat: enable public read-only access to FlowInquiry project board#279

Merged
haiphucnguyen merged 2 commits intoflowinquiry:mainfrom
caominhduc52:feature/projects-board-public-access
Oct 28, 2025
Merged

feat: enable public read-only access to FlowInquiry project board#279
haiphucnguyen merged 2 commits intoflowinquiry:mainfrom
caominhduc52:feature/projects-board-public-access

Conversation

@caominhduc52
Copy link
Copy Markdown
Contributor

@caominhduc52 caominhduc52 commented Oct 27, 2025

Description

Update the FlowInquiry project board to support public read-only access without requiring user authentication. This change allows users to view project board content—such as epics, tasks, and statuses—without logging in, improving accessibility and enabling broader audience engagement with project progress.

Changes Made

  • Added boolean field publicAccess to fw_project table
  • Updated related DTOs and mapper configurations to reflect the field name change
  • Update ProjectService to support view public projects without authentication

Additional Notes

Copy link
Copy Markdown
Collaborator

@haiphucnguyen haiphucnguyen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @caominhduc52 for your contribution. Having few recommendations.

private Instant endDate;

@Column(name = "public_access")
private boolean publicAccess;
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should set the attribute of public access to ProjectSetting which defines all project settings, while Project contains all mandatory of project information.

Looking ahead, we might want to support more nuanced access levels beyond just public and private, such as public access for all users, public access limited to users within a corporation, and private access. To accommodate this, we could introduce an accessibleType field in ProjectSetting, defined as an enum. Initially, it could support PRIVATE and PUBLIC, with the flexibility to expand as needed.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, as i'm new to code base, thank you for your suggestion. I'll update accordingly

.orElseThrow(() -> new ResourceNotFoundException("Project not found"));

if (!project.isPublicAccess() && isAnonymous) {
throw new ResourceNotFoundException("Project not found");
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

well done for this code, when people can not access the project because lacking security requirement, you write the ambigous message instead of explicit message and expose the sensitive information.

@haiphucnguyen haiphucnguyen merged commit 4b462f8 into flowinquiry:main Oct 28, 2025
5 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants