Commit Graph

499 Commits

Author SHA1 Message Date
Arpit Mohan
9bf7bab85b Moving organization repository functions to the custom class.
Also fixing the SeedMongoData file with the seed data to correspond to the changes made in the OrganizationRepository. We will default to using the mongoTemplate in the SeedMongoData file in the future so that we don't have to deal with ACL when we are simply populating the DB.
2020-03-18 22:56:32 +05:30
Arpit Mohan
fc6f225935 Adding user policy to manage organization and fixing the organization create flow to ensure the right permissions are set
Also adding test case for get applications. Now we will fetch all applications that the user has read permissions to by default. It's not dependent on the organization that they are a part of.
2020-03-18 16:09:47 +05:30
Arpit Mohan
c06e16db83 Making changes to get the page tests to pass. Also minor improvements to LayoutServiceTest 2020-03-18 14:47:00 +05:30
Arpit Mohan
19b0d53c22 Fixing the tests for page creation. Also adding policies when a new page is created. 2020-03-17 18:47:45 +05:30
Arpit Mohan
1f35bd6a07 Adding the policy hierarchy graph and the lateral policy graph
These graphs help us map policies that are inherited from the parent and also lateral policies that are assigned to the users given that the user has a particular permission. Currently, the hierarchy has been defined for org & application. Need to cascade it to more documents such as pages & actions.
2020-03-16 10:46:28 +05:30
Arpit Mohan
a892ee90b5 Merge release branch 2020-03-13 12:47:16 +05:30
Trisha Anand
96ca03f852 Merge branch 'hotfix/categories-arraylist' into 'release'
Get all categories now return Mono of List instead of Flux.

See merge request theappsmith/internal-tools-server!226
2020-03-12 14:35:42 +00:00
Trisha Anand
1d404cb9bf Get all categories now return Mono of List instead of Flux. 2020-03-12 20:01:43 +05:30
Trisha Anand
7c1434e274 Merge branch 'feature/action-provider-fields' into 'release'
Transient Provider fields added in Action which are filled before an Action is read.

See merge request theappsmith/internal-tools-server!225
2020-03-12 13:21:03 +00:00
Trisha Anand
2543be8668 Provider fields added with the transient property which is set for Actions when they are read. 2020-03-12 18:46:30 +05:30
Arpit Mohan
cc676e3393 Merge branch 'feature/mono-cache' into 'release'
Correcting the writeKey for Segment in Staging

Also adding Mono.cache in the user invite flow to ensure that the same Mono is not executed multiple times.

See merge request theappsmith/internal-tools-server!224
2020-03-12 11:18:22 +00:00
Arpit Mohan
0c5fc27450 Correcting the writeKey for Segment in Staging
Also adding Mono.cache in the user invite flow to ensure that the same Mono is not executed multiple times.
2020-03-12 16:44:31 +05:30
Trisha Anand
2a8da8293c Merge branch 'feature/rapid-api-plugin' into 'release'
Fixing null pointer exception during add to page

See merge request theappsmith/internal-tools-server!222
2020-03-11 19:31:22 +00:00
Trisha Anand
6050b370d4 1. Add to Page changes : In case the sample response is null, don't set the cached response for the action.
2. Add to Page changes : Documentation object has been added in Action to handle the extra Template documentation for actions that have been imported from 3p marketplace
3. Added basic structure for rapid api plugin by copy pasting the rest api plugin
2020-03-11 19:31:21 +00:00
Trisha Anand
5927271c71 Merge branch 'feature/rapid-api-plugin' into 'release'
Partial Rapid API Plugin + Minor bug fix.

See merge request theappsmith/internal-tools-server!218
2020-03-11 17:16:15 +00:00
Trisha Anand
b17fae8e44 1. Add to Page changes : In case the sample response is null, don't set the cached response for the action.
2. Add to Page changes : Documentation object has been added in Action to handle the extra Template documentation for actions that have been imported from 3p marketplace
3. Added basic structure for rapid api plugin by copy pasting the rest api plugin
2020-03-11 17:16:15 +00:00
Trisha Anand
f5eab5b5cf Merge branch 'feature/get-categories-marketplace' into 'release'
Get all categories for provider added & get providers without category returns Business Software only

See merge request theappsmith/internal-tools-server!221
2020-03-11 13:03:50 +00:00
Trisha Anand
668b91665d 1. Added an endpoint to get all categories.
2. When provider is being fetched without a category, only Business Software category providers are returned.
2020-03-11 13:03:48 +00:00
Arpit Mohan
ec7e2c67b5 Merge branch 'feature/remove-document-version' into 'release'
Removing document version from all the Mongo documents.

The version field is causing too many OptimisticLockFailureExceptions when we save or update documents in the DB.

Also adding Origin header to the user invite flow so that we can send the correct links to the user

See merge request theappsmith/internal-tools-server!220
2020-03-11 12:55:50 +00:00
Arpit Mohan
2da4727cbd Removing document version from all the Mongo documents.
Also adding Origin header to the user invite flow so that we can send the correct links to the user
2020-03-11 18:18:10 +05:30
Arpit Mohan
bfea59f354 Merge branch 'feature/email-templates' into 'release'
Updating the communication emails to users for signup, forgot password and invite user flows

Also adding the Origin header to the BaseController create function. This is required by the user creation flow in order to customize the links in the email. For most of the controllers overriding the BaseController, the request header parameter is non-mandatory and can be skipped for testing or otherwise.

See merge request theappsmith/internal-tools-server!219
2020-03-10 13:56:42 +00:00
Arpit Mohan
68fd2f21d9 Updating the communication emails to users for signup, forgot password and invite user flows
Also adding the Origin header to the BaseController create function. This is required by the user creation flow in order to customize the links in the email. For most of the controllers overriding the BaseController, the request header parameter is non-mandatory and can be skipped for testing or otherwise.
2020-03-10 18:58:28 +05:30
Trisha Anand
580bfc76c7 Removing the soft delete right now. Due to the indexing this would lead to duplicate key errors. The index needs to be removed and the allowed naming should be done at application level. 2020-03-09 14:20:43 +05:30
Trisha Anand
e5f8f2bea9 Segment Events Fixed + Soft delete actions 2020-03-09 14:20:32 +05:30
Arpit Mohan
89dec71a07 Merge branch 'feature/user-profile' into 'release'
Modifying the user profile endpoint to send organization and application details

For event tracking, we need the organization name and application names that a user is accessing. In order to reduce the number of API calls, we are returning this information along with the enhanced user profile API call `/profile`. Another endpoint was added instead of `/me` to maintain backwards compatibility.


See merge request theappsmith/internal-tools-server!213
2020-03-06 06:17:01 +00:00
Arpit Mohan
35b0c22334 Adding /profile endpoint to return enhanced user profile to the client. 2020-03-06 06:17:00 +00:00
Arpit Mohan
40964c3dfe WIP commit of trying to create an inheritance structure with permissions.
Also, moving all permissions to READ & MANAGE. Not maintaining separate permissions to create, update & delete.
2020-03-06 09:29:45 +05:30
Arpit Mohan
1475d9124a Fixing all the test cases for OrganizationService
We still need to add a lot more test cases to ensure that no functionality has broken. But this is a start in the right direction.
2020-03-05 19:35:24 +05:30
Arpit Mohan
c9a885d605 Modifying the create application flow in ApplicationPageService. All the tests in ApplicationService are passing
In order to create an application with valid permissions, we copy the relevant permissions from the organization of the user. This involves changes to the organizationService and OrganizationRepository as well.
2020-03-05 18:53:40 +05:30
Arpit Mohan
c813678f49 Adding the AclPermission enum to track all possible permissions globally
Also moving the argument AclPermission to the custom Repository interface level. This is to ensure that all the service functions can invoke the same repository function with different permissions based on their requirements.
2020-03-05 15:33:41 +05:30
Arpit Mohan
c5e8f3bef4 Removing unnecessary and extra code in AclFilter, MongoAspect and CustomWebExpressionHandler 2020-03-04 19:12:34 +05:30
Arpit Mohan
243376642b Deleting the unnecessary annotations and aspects 2020-03-04 19:02:24 +05:30
Arpit Mohan
f47e7eb882 Adding ACL policy filters to CustomApplicationRepository functions 2020-03-04 18:57:46 +05:30
Arpit Mohan
0914acdca6 Adding default principal for anonymous Users in SecurityConfig
Also, hard-coding the document fields in BaseRepositoryImpl criteria queries.
2020-03-04 18:57:46 +05:30
Arpit Mohan
7019bae082 Adding policy to the document object instead of the user
The login has broken and all users are being treated as un-authenticated users
2020-03-04 18:57:46 +05:30
Arpit Mohan
a1ee6d9508 Adding querydsl properties instead of hardcoded names 2020-03-04 18:57:46 +05:30
Arpit Mohan
3a1673dfca Adding QueryDsl to the appsmith-server and appsmith-interfaces modules
This will generate the annotated classes so that we can refer to the fields easily and scalably.
2020-03-04 18:57:46 +05:30
Arpit Mohan
125982dabf Adding the ARN object and parsing it for user login and while checking permissions in PreAuthorize & custom repo implementations 2020-03-04 18:57:46 +05:30
Arpit Mohan
e078382b94 Adding the user policy object that has permissions for ARN objects.
Now we need to parse the ARN and match it to the policy in the PreAuthorize & Custom repository functions.
2020-03-04 18:57:46 +05:30
Arpit Mohan
bd5424095a Adding default implementations for a few functions which filter by ACL clause.
This is present in the BaseRepositoryImpl. In this manner, we can add default conditions to all the basic JPA queries. Now we only need to figure out how to intercept the custom queries to add user details into.
2020-03-04 18:57:46 +05:30
Arpit Mohan
5b09427b6c Removing the aspect and trying to implement the application repository directly 2020-03-04 18:57:46 +05:30
Arpit Mohan
29ae5fd360 Adding default implementation for applicationrepository to test 2020-03-04 18:57:46 +05:30
Arpit Mohan
63f4056a8a Another WIP commit.
At the moment, we cannot fetch the user from securityContext in the SoftDeleteMongo Query Lookup
2020-03-04 18:57:46 +05:30
Arpit Mohan
d5ed147111 Getting the AclAspect to work for both Mono & Flux methods.
This is done by checking the return type of the function via the joinPoint method signature
2020-03-04 18:57:46 +05:30
Arpit Mohan
bd1c390402 Allowing user to define multiple AclPermissions for a given permission
Also adding proper Acl permissions on ApplicationService and PageService functions
2020-03-04 18:57:46 +05:30
Arpit Mohan
9f3197792a WIP Commit to save the dev state 2020-03-04 18:57:46 +05:30
Arpit Mohan
81d39042a6 Merge branch 'feature/mdc-session-logging' into 'release'
Adding sessionId to the MDC logging to make debugging simpler

See merge request theappsmith/internal-tools-server!211
2020-03-04 12:49:50 +00:00
Arpit Mohan
f53a444635 Adding sessionId to the MDC logging to make debugging simpler 2020-03-04 18:16:12 +05:30
Trisha Anand
dfdd44674b Merge branch 'feature/filter-providers-category' into 'release'
Filter providers by category

See merge request theappsmith/internal-tools-server!210
2020-03-04 09:58:16 +00:00
Trisha Anand
0cba85c95b Filter providers by category added. 2020-03-04 15:24:14 +05:30