Commit Graph

18234 Commits

Author SHA1 Message Date
Arpit Mohan
3e109d4d28 Merge branch 'feature/remove-basic-auth' into 'release'
Removing basic auth from our securityConfig

See merge request theappsmith/internal-tools-server!116
2019-12-16 09:08:07 +00:00
Arpit Mohan
3760849aa6 Removing basic auth from our securityConfig 2019-12-16 14:32:27 +05:30
Abhinav Jha
cf5fcfe9c6 Merge branch 'feature/userauth' into 'release'
User Auth Flow

The following user scenarios are implemented:

Login
=====
- User should be able to login using email and password
- - Known issue: No redirect happens after login. In fact, an error shows. User should go to `/applications` manually
- User should be able to login using google
- - Know issue: User redirects to the `release` application or `production` applications. If you're using `release` or `production`, you'll be on the same domain.
- User should be able to see validation errors on login page for email and password
- Login button is in loading state when clicked (logging In)
- Login page should start with login button disabled
- Login page shows login errors, if any.
- User should be able to redirect to signup page from the link in the page
- User should be able to redirect to forgot page from the link in the page
- If the email field has any value, the value is carried over to forgot password page.

Sign Up
=======
- User should be able to sign up with email and password
- User should be able to see success message on successful signup.
- User should be able to see password and email validation errors.
- The signup button should work exactly the way it works in the login page
- User should be able to go back to login page from the link on the page.

Forgot Password
===============
- User should be able to see the email field populated if they had something in the email field on the login page. Works only when redirecting from login page's forgot password link.
- User should be able to see validation messages
- User should be able to initiate a request to send a reset token to their provided email
- The reset button should work exactly the way it works on the login page
- User should see the success and failure messages, with actionable links.

Reset Password
==============
- User should be able to reset their password
- User should be able to see success/failure messages with actionable links.
- User should be able to see validation errors.
- User should be able to go back to login page in case they change their mind.

Other changes
=============
- User should see proper error messages when we have a 500 error in forms
- User should redirect to login page if trying without a logged in session on protected routes (for eg: `applications/`)
- Custom form error message tag component which adheres to appsmith's intent colors.




See merge request theappsmith/internal-tools-client!177
2019-12-16 08:49:10 +00:00
Abhinav Jha
ed2ecadbc4 User Auth Flow 2019-12-16 08:49:10 +00:00
Arpit Mohan
ccd6a7f4e6 Merge branch 'feature/spring-boot-upgrade' into 'release'
Upgrading to Spring boot 2.2.2 for features in Spring security

Now, we have an authenticationSuccessHandler & authenticationFailureHandler for OAuth & Form sign ups. This makes the whole flow much cleaner & easier to handle.

See merge request theappsmith/internal-tools-server!115
2019-12-16 05:28:22 +00:00
Arpit Mohan
82a6d96b1a Upgrading to Spring boot 2.2.2 for features in Spring security
Now, we have an authenticationSuccessHandler & authenticationFailureHandler for OAuth & Form sign ups. This makes the whole flow much easier to handle.
2019-12-16 10:53:17 +05:30
Arpit Mohan
7f9e0b71da Merge branch 'release' into 'master'
Release

See merge request theappsmith/internal-tools-server!114
2019-12-16 05:02:50 +00:00
Arpit Mohan
deea507e8b Merge branch 'release' 2019-12-16 10:30:32 +05:30
Arpit Mohan
274a686e51 Modifying the form submit error handler to redirect the browser to login error page.
This is because the client cannot handle a JSON response for form submit requests. They can only be handled in Ajax requests.
2019-12-12 18:22:18 +05:30
Arpit Mohan
69e73ad240 Disabling the GET for the login page to ensure that the server login page is not loaded 2019-12-12 16:07:57 +05:30
Arpit Mohan
018b98df8f Merge branch 'feature/user-endpoint-me' into 'release'
Adding endpoint to fetch current user's profile.

Also redirecting the browser to this user profile endpoint on username password login success. This ensures that the client fetches the profile along with setting the session ID cookie in the browser

See merge request theappsmith/internal-tools-server!113
2019-12-12 10:01:16 +00:00
Arpit Mohan
eb825f37e9 Adding endpoint to fetch current user's profile.
Also redirecting the browser to this user profile endpoint on username password login success. This ensures that the client fetches the profile along with setting the session ID cookie in the browser
2019-12-12 15:25:09 +05:30
Arpit Mohan
9a1ed9a17c Merge branch 'feature/auth-success-redirect' into 'release'
Redirect to the client's homepage on success of username password login

This has been done with the express purpose of ensuring that the session ID is set correctly in the browser by the client. This can only happen when there is a 302 redirect by the browser.

See merge request theappsmith/internal-tools-server!112
2019-12-12 09:46:38 +00:00
Arpit Mohan
af96c11d3e On username + pwd auth success, we redirect the browser to the client's index page via the origin header. 2019-12-12 09:46:38 +00:00
Satbir Singh
fb028eb13e Merge branch 'feature/cypress-e2e' into 'release'
Added cypress for e2e tests.

See merge request theappsmith/internal-tools-client!190
2019-12-12 07:50:53 +00:00
Satbir Singh
ab0007317e Added cypress for e2e tests. 2019-12-12 07:50:53 +00:00
Trisha Anand
d8fc726f79 Merge branch 'feature/user-login-redirect' into 'release'
Sending custom JSON in form login success and failure scenarios

See merge request theappsmith/internal-tools-server!111
2019-12-12 07:32:20 +00:00
Arpit Mohan
c12f90ca1e Sending custom JSON in form login success and failure scenarios
This involves overriding the default success and failure handlers for login in the SecurityConfig class. The handlers are defined in the filters package.
2019-12-12 12:57:23 +05:30
Arpit Mohan
1e83f6943b Merge branch 'bug/pageid-being-deleted-on-dsl-update' into 'release'
Fixed : Unbinding action from page during DSL update leads to unbinding of all actions.

Removed unbinding of actions from the page if not present in the DSL.

See merge request theappsmith/internal-tools-server!110
2019-12-12 07:04:36 +00:00
Trisha Anand
9c62029ff0 Removed unbinding of actions from the page if not present in the DSL. 2019-12-12 12:30:50 +05:30
Hetu Nandu
e58bc582c7 Merge branch 'feature/page-load-actions' into 'release'
Execute page load actions when loading page

Closes #336 and #282

See merge request theappsmith/internal-tools-client!185
2019-12-11 15:24:27 +00:00
Hetu Nandu
dd03093834 Execute page load actions when loading page 2019-12-11 15:24:27 +00:00
Hetu Nandu
49643ae16c Merge branch 'fix/api-pane-ui-state-per-api' into 'release'
Separate loading states per action

Fixes: #320, #273
* Fixes issue where loading state of one action is shared with others
* Adds a loading overlay when saving an action

See merge request theappsmith/internal-tools-client!188
2019-12-11 15:14:38 +00:00
Hetu Nandu
37a96358f4 Separate loading states per action 2019-12-11 15:14:38 +00:00
Arpit Mohan
ec478e5c2a Reverting previous commit with @EnableMongoAuditing because that is causing APIs to return empty data in the API 2019-12-11 17:15:16 +05:30
Satbir Singh
9111e33d52 Merge branch 'fix/api-pane-styles' into 'release'
Fix minor Api pane style issues

Fixes: #199, #158, #328

See merge request theappsmith/internal-tools-client!189
2019-12-11 11:31:08 +00:00
Arpit Mohan
3db6a94e2e Merge branch 'feature/mongo-created-timestamp' into 'release'
Moving the annotation @EnableMongoAuditing to the CommonConfig class because it wasn't being acknowledged by Spring

This now ensures that Spring JPA inserts the createdAt and updatedAt timestamps to the MongoDB along with the document itself.

See merge request theappsmith/internal-tools-server!109
2019-12-11 10:54:54 +00:00
Arpit Mohan
6f39d39523 Moving the annotation @EnableMongoAuditing to the CommonConfig class because it wasn't being acknowledged by Spring
This now ensures that Spring JPA inserts the createdAt and updatedAt timestamps to the MongoDB along with the document itself.
2019-12-11 16:21:14 +05:30
Hetu Nandu
d1ee106faa style fixes 2019-12-11 16:05:07 +05:30
Arpit Mohan
3c80cd4363 Merge branch 'bug/delete-pageid-action-on-dsl-update' into 'release'
Removes pageId from actions no longer in DSL in action collection

Removes pageId from actions no longer in DSL and adds pageIds for actions in DSL in actions collection.

All of these operations are now happening in bulk to improve performance

See merge request theappsmith/internal-tools-server!107
2019-12-11 10:29:12 +00:00
Trisha Anand
2a47a442be Removes pageId from actions no longer in DSL and adds pageIds for actions in DSL in actions collection 2019-12-11 10:29:12 +00:00
Arpit Mohan
cf2ebe53b3 Merge branch 'feature/new-user-group-assignemtn' into 'release'
Assigning groups & permissions to new user signups

When a new user signs up, a new personal organization is created for that user. Default permission groups are created for this  personal organization based on the database that contains this information in the `groups` collection with organization name `default-org`. These default groups should NEVER be deleted from the DB. 

The user is then assigned to these default groups which allows him/her to administer their personal organization as org admins 
would.

Also, the `User` domain object now returns the email ID as the username of the user.

See merge request theappsmith/internal-tools-server!108
2019-12-11 10:20:29 +00:00
Arpit Mohan
614b1b3f0d Creating default groups for the user's personal organization when the new user signs up
The default groups for an organization are created by copying over data from the groups collection with the organizationId 'default-org'. This ensures that we can update the permissions in the DB and add new permissions without any code changes. The new user is then assigned to these groups so that they have all the permissions required to administer the organization.

Also adding a display name for the groups so that the UI can show a different name than the one used internally within the DB to represent the group.
2019-12-11 10:20:28 +00:00
Hetu Nandu
bc018eaece Merge branch 'feature/widget-validation-error-message' into 'release'
Validation Error Message display

* Implements: #295 
  * Shows a validation error message on the property pane
* Fixes: #380   
  * Fixed invalid prop for input icons

See merge request theappsmith/internal-tools-client!186
2019-12-10 13:30:16 +00:00
Hetu Nandu
d5e08b5836 Validation Error Message display 2019-12-10 13:30:16 +00:00
Arpit Mohan
f0af6a06fe Merge branch 'feature/signup-create-organization' into 'release'
Create personal workspace/organization on user create

Create user now also leads to creation of personal organization for the user. It also gets assigned as the default (current) workspace (or currentOrganizationId)

See merge request theappsmith/internal-tools-server!105
2019-12-10 10:58:34 +00:00
Trisha Anand
7a3cfe2c52 Create user now also leads to creation of personal organization for the user. It also gets assigned as the default (current) workspace (or currentOrganizationId) 2019-12-10 10:58:34 +00:00
Trisha Anand
85303ab188 Merge branch 'release' into 'master'
Release to Master sink

See merge request theappsmith/internal-tools-server!106
2019-12-10 10:46:32 +00:00
Arpit Mohan
cebd1cfef3 Merge branch 'bug/published-actions' into 'release'
Published page has layout on load actions and layout load actions now.

LayoutOnLoadActions are now being copied to the published version. Now viewing the published page would give all three published datastructures : DSL, Layout Actions, and Layout Load Actions

See merge request theappsmith/internal-tools-server!104
2019-12-10 07:25:08 +00:00
Trisha Anand
66b28e8dec LayoutOnLoadActions are now being copied to the published version. Now viewing the published page would give all three published datastructures : DSL, Layout Actions, and Layout Load Actions 2019-12-10 07:25:08 +00:00
Abhinav Jha
71a2bbf344 Merge branch 'feature/sideNav-router-integration' into 'release'
Integrate SideNav with react router for faster switching of item

Closes #334

See merge request theappsmith/internal-tools-client!183
2019-12-09 11:31:09 +00:00
Abhinav Jha
34e20f3d1a Integrate SideNav with react router for faster switching of item 2019-12-09 11:31:09 +00:00
Arpit Mohan
fe82366ace Fixing compilation issue 2019-12-08 21:20:58 +05:30
Arpit Mohan
69f77c19da Merge branch 'feature/reset-password-email' into 'release'
Adding email sending capability when the user resets their password

At the moment, the email sending is sent in the same thread that slows down the API request. Future changes should include:
1. Publish the request to send an email to Redis and actually send the email on subscribe event.
2. Disable the email sending in local environments.

See merge request theappsmith/internal-tools-server!102
2019-12-08 15:46:17 +00:00
Arpit Mohan
fdba2f62ef Adding email sending capability when the user resets their password 2019-12-08 15:46:17 +00:00
Trisha Anand
73cf8955d1 Merge branch 'feature/dsl-parsing' into 'release'
Find the page load actions

See merge request theappsmith/internal-tools-server!98
2019-12-08 13:41:15 +00:00
Trisha Anand
046751b1ba Working version where the top feeding nodes have been discovered in the tree. These would be page load actions. 2019-12-08 13:41:15 +00:00
Hetu Nandu
9404215422 Merge branch 'feature/base-dyanmic-input' into 'release'
Data Tree Autocomplete

Implements: #293 , #131 , #128 

See merge request theappsmith/internal-tools-client!170
2019-12-06 13:16:08 +00:00
Hetu Nandu
f45d2b9135 Data Tree Autocomplete 2019-12-06 13:16:08 +00:00
Arpit Mohan
c937c234b9 Merge branch 'feature/user-password' into 'release'
Implementing Forgot Password flow + DB based password authentication

Changes include:
1. Create/Update user APIs now use `passwordEncoder` to encode the user password before storing it in the database.
2. Forgot password flow has been added.
3. Added a `PasswordEncoderConfig` to configure the encoder from a single location
4. Moving from in-memory `MapUserDetails` to DB for checking the password for a user during login.
5. Using `WithUserDetails` in all the tests because we now use our custom `User` domain object instead of Spring's `User` object in our session. The earlier implementation in the test cases was using Spring's implementation.
6. Adding a bunch of javadoc comments to `UserServiceImpl`

See merge request theappsmith/internal-tools-server!101
2019-12-06 12:15:28 +00:00