Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Codex/pricing permissions refactor#1055

Merged
JhumanJ merged 47 commits intomain-v2OpnForm/OpnForm:main-v2from
codex/pricing-permissions-refactorOpnForm/OpnForm:codex/pricing-permissions-refactorCopy head branch name to clipboard
Mar 28, 2026
Merged

Codex/pricing permissions refactor#1055
JhumanJ merged 47 commits intomain-v2OpnForm/OpnForm:main-v2from
codex/pricing-permissions-refactorOpnForm/OpnForm:codex/pricing-permissions-refactorCopy head branch name to clipboard

Conversation

@JhumanJ
Copy link
Copy Markdown
Collaborator

@JhumanJ JhumanJ commented Mar 22, 2026

No description provided.

- Updated the PdfEditorNavbar.vue to change the tag from ProTag to PlanTag, aligning with the new pricing structure.
- Adjusted the import statement accordingly to reflect the component name change.

These changes enhance the clarity and consistency of the PDF editor's user interface.
- Removed the legacy `RequireProPlan` middleware and replaced it with a more flexible `RequirePlan` middleware that checks for the required tier based on workspace context.
- Updated various controllers and services to utilize the new tier-checking logic, ensuring that feature access is correctly gated based on the workspace's plan.
- Enhanced error responses to include required and current tier information for better user feedback.
- Introduced a new method in the `Workspace` model to check if the workspace meets the required tier for specific features.
- Adjusted tests to reflect the changes in plan requirements and feature access logic.

These changes improve the clarity and maintainability of plan-related logic throughout the application.
chiragchhatrala and others added 16 commits March 18, 2026 16:49
- Updated the `User` model to replace the `hasActiveDefaultSubscription` method with `hasActivePaidSubscription`, which checks for any active paid subscriptions.
- Adjusted the `Workspace` model to maintain consistent subscription filtering.
- Modified tests to use string literals for subscription names instead of constants for better clarity.
- Renamed `ProTag` to `PlanTag` in the EmailIntegration component for improved semantic clarity.

These changes enhance the subscription management logic and improve code readability across the application.
- Changed the expected status code for unauthorized version restoration from 403 to 402.
- Updated the response assertion to include the required tier information for better clarity in error messages.

These modifications enhance the accuracy of the test cases related to version restoration and improve user feedback on subscription requirements.
- Added `plan_tier` to the `FormResource` to provide workspace plan information.
- Updated various components to utilize `plan_tier` for feature access checks, replacing previous `is_pro` checks.
- Introduced a new `requireFeature` method in `usePlanFeatures` to streamline feature access validation and prompt subscription upgrades when necessary.
- Improved error handling and user feedback for features requiring specific plan tiers.

These changes improve the clarity and maintainability of plan-related logic and enhance user experience by providing accurate subscription requirements.
- Updated the `plans.php` configuration to better categorize features under 'PRO' and 'BUSINESS' tiers.
- Modified the `FeatureComparison.vue` component to reflect accurate file upload limits and integration statuses.
- Enhanced the `SubscriptionModal.vue` to utilize a computed property for selected plan pricing, improving clarity in pricing display.
- Cleaned up the `usePlanFeatures.js` by removing fallback pricing and features, relying on the manifest for accurate data.

These changes streamline the feature access logic and enhance the user interface for plan comparisons and subscription details.
- Eliminated the `form_features` from the plan manifest response in the API.
- Removed related functions and logic from `usePlanFeatures.js`, simplifying feature access checks.
- Updated the `getRequiredTier` function to rely solely on standard features.

These changes streamline the feature management process and enhance code clarity by focusing on core plan features.
- Added 'price_yearly_per_month' to each plan tier in the configuration for clearer pricing options.
- Simplified the API response for the '/plan-manifest' route to return the complete tier information directly.
- Refactored the `usePlanFeatures.js` to utilize the new tier structure, enhancing clarity in tier access and pricing retrieval.

These changes improve the pricing model and streamline the handling of plan features across the application.
- Updated the `FeatureComparison.vue` component to dynamically retrieve plan labels and prices using the `getTierDisplayName` and `getPlanPrice` functions.
- Simplified the pricing structure by utilizing computed properties for plan data, enhancing clarity and maintainability.
- Adjusted the `pricing.vue` component to reflect the new plan features structure, ensuring accurate display of plan details and features.

These changes improve the user interface for pricing comparisons and streamline the integration of plan features across the application.
…FAQ entry for discount eligibility. This update streamlines the pricing display while ensuring users can still find information about available discounts.
- Updated the `hasFormFeature` method to include checks for feature overrides in workspaces, improving accuracy in feature access validation.
- Refactored the `getFeatures` method to merge workspace and form features more efficiently, ensuring no overlap in free workspace payloads.
- Added a new test case to verify that free workspaces do not have access to paid features, enhancing test coverage for feature access logic.

These changes improve the clarity and reliability of feature access management in the billing service.
- Adjusted the `Navbar.vue` component to enhance spacing and visibility of navigation links across different screen sizes.
- Updated `UpgradeBanner.vue` to ensure proper formatting and consistency in script tags.
- Enhanced `FormHistory.vue` with a dynamic tooltip for better user feedback based on loading state.
- Improved `PasswordStrengthIndicator.vue` regex for password validation to include additional special characters.
- Refined `MonthlyYearlySelector.vue` for better user interaction and visual feedback on billing options.
- Streamlined `SubscriptionModal.vue` layout for clearer presentation of upgrade options and improved user experience.
- Enhanced `Testimonials.vue` with dynamic styling and additional review links for better engagement.
- Updated `Oidc.vue` to remove unnecessary whitespace for cleaner code.
- Refactored `checkout.vue` and `error.vue` to improve checkout flow and user alerts.

These changes enhance the overall user interface and experience across various components, ensuring better accessibility and clarity.
- Updated `FeatureComparison.vue` to enhance table structure and styling for better responsiveness and readability.
- Simplified the pricing display logic in `pricing.vue` by removing unnecessary suffixes for plan prices.
- Enhanced `Features.vue` with a new desktop layout for better feature presentation and user engagement.

These changes improve the overall user experience and visual consistency across pricing and feature components.
Move displayed plan pricing to a backend-backed catalog and tighten feature access checks so unknown keys fail closed. This keeps pricing aligned with the server source of truth and closes gaps introduced by the new permissions model.
- Updated `PdfNotSupportedException` to allow nullable message parameter for better flexibility in error handling.
- Refactored `HealthCheckController` to utilize the Redis factory for connection checks, enhancing reliability in health status reporting.
- Modified `UserInvite` model to accept nullable `validUntil` parameter, improving data handling.
- Adjusted `Version` model's `diff` method to accept nullable `againstVersion` parameter for better compatibility.
- Cleaned up `TemplatesSlider.vue` by removing unused mounted lifecycle hook.
- Simplified `usePlanCatalog` by initializing the catalog with an empty tiers object, improving clarity.
- Enhanced integration page to conditionally display fallback content based on availability, improving user experience.
Update pricing CTAs so hosted paid plans use upgrade language when they lead into checkout, and remove self-hosted card buttons that should not present actions.
…eatures, and refactor login and register pages for improved design and functionality
@JhumanJ JhumanJ mentioned this pull request Mar 24, 2026
* Add Playwright E2E coverage and CI gating

Add a Docker-backed Playwright E2E stack, cover key auth and form flows, and run the suite before deploy in GitHub Actions. This also adds stable UI selectors and switches the E2E throttle bypass to an app environment-based flow.

* Fix E2E API readiness check

Avoid using a database-dependent HTTP route to detect API readiness in the E2E bootstrap. Wait for artisan to become available instead so CI does not fail while the container is still migrating.

* Track E2E client environment in CI

* Harden E2E auth readiness checks
@JhumanJ JhumanJ merged commit f8af9fa into main-v2 Mar 28, 2026
1 check passed
@JhumanJ JhumanJ deleted the codex/pricing-permissions-refactor branch March 28, 2026 08:52
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.

2 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.