Go to file
Chirag Chhatrala 2366f9515d
Readonly User (#637)
* Readonly User

* Refactor FormPolicy and TemplatePolicy to centralize write operation logic

- Introduced a private method `canPerformWriteOperation` in both FormPolicy and TemplatePolicy to encapsulate the logic for determining if a user can perform write operations on the respective models.
- Updated the `update`, `delete`, `restore`, and `forceDelete` methods in FormPolicy to use the new method for improved readability and maintainability.
- Simplified the `update` and `delete` methods in TemplatePolicy to leverage the centralized write operation logic.

This refactoring enhances code clarity and reduces duplication across policy classes.

* Refactor user and workspace permissions handling

- Updated FormController to authorize form creation based on workspace context.
- Removed the `is_readonly` attribute from UserResource and integrated it into WorkspaceResource for better encapsulation.
- Refactored User model to eliminate the `getIsReadonlyAttribute` method, shifting readonly logic to the Workspace model.
- Adjusted FormPolicy and TemplatePolicy to utilize workspace readonly checks for user permissions.
- Updated various frontend components to reference workspace readonly status instead of user readonly status, enhancing clarity and consistency in permission handling.

These changes improve the management of user permissions in relation to workspaces, ensuring a more robust and maintainable authorization system.

* Fix isReadonlyUser

* fix pint

---------

Co-authored-by: Julien Nahum <julien@nahum.net>
2024-12-30 14:35:23 +01:00
.github Bump node & nuxt depencies 2024-11-20 18:41:56 +01:00
api Readonly User (#637) 2024-12-30 14:35:23 +01:00
client Readonly User (#637) 2024-12-30 14:35:23 +01:00
docker Bump node & nuxt depencies 2024-11-20 18:41:56 +01:00
docs Update local deployment instructions to use HTTPS for repository cloning 2024-12-26 17:41:23 +01:00
integrations/zapier Updated zapier integration version 2024-08-23 09:42:44 +02:00
scripts Separated laravel app to its own folder (#540) 2024-08-26 18:24:56 +02:00
.dockerignore Docker compose setup (#513) 2024-08-05 12:06:20 +02:00
.editorconfig Initial commit 2022-09-20 21:59:52 +02:00
.gitattributes Initial commit 2022-09-20 21:59:52 +02:00
.gitignore Separated laravel app to its own folder (#540) 2024-08-26 18:24:56 +02:00
LICENSE Changing license to AGPL 2022-09-20 22:03:59 +02:00
README.md Technical docs (#553) 2024-09-02 15:33:17 +02:00
amplify.yml Attempt to simplify build 2024-01-08 22:30:58 +01:00
docker-compose.yml Fix Docker api issues 2024-08-28 17:20:17 +02:00

README.md

OpnForm

Github Stars Commits per month License Report a bug Ask a question Ask a question Ask a question Open Bounties Rewarded Bounties

OpnForm is an open-source form builder.

Get Started

The easiest way to get started with OpnForm is to sign up for our managed service in the Cloud. You get support, backups, upgrades, and more. Your data is safe and secure, and you don't need to worry about maintenance or infrastructure. Check out our quick overview of cloud vs self-hosting.

Key Features

  • 🚀 No-code builder with unlimited forms & submissions
  • 📝 Various input types: Text, Date, URL, File uploads & much more
  • 🌐 Embed anywhere
  • 📧 Email notifications
  • 💬 Integrations (Slack, Webhooks, Discord)
  • 🧠 Form logic & customization
  • 🛡️ Captcha protection
  • 📊 Form analytics

For a complete list of features and detailed documentation, visit our Technical Documentation.

Quick Start

The easiest way to get started with OpnForm is through our official managed service in the Cloud.

For self-hosted installations, please refer to our Deployment Guides. For detailed instructions on setting up a local environment, check out our Local Deployment Documentation.

Support & Community

If you need help or have questions, please join our Discord community. For more information and assistance, check out the following resources:

License

OpnForm is open-source under the GNU Affero General Public License Version 3 (AGPLv3) or any later version. You can find it here.