Hi there, I’m not entirely sure what entity access functionality, but it looks some of the entity-to-entity functionalities appear to be implemented.
I’m not sure if anyone is currently using it, but I wouldn’t touch the working parts. However, I’m all for removing the stub and todo parts. Regards, Adam > On Aug 3, 2026, at 1:45 PM, Ashhar Ahmad Khan <[email protected]> wrote: > > Hi Aleksandar, > > I checked FINERACT-2169 before replying. As far as I can tell, entityaccess > isn't part of that effort. It isn't one of the 43 subtasks, I couldn't find > any commit overlap, and the module itself hasn't been touched by that > migration. > > At the moment, I'm leaning towards removing the unused methods, along with > FineractEntityAccess, its repository, and the underlying table, since nothing > currently appears to depend on any of them. I'd still like to hear from > anyone who was around for the 2016 change. > > > On Sun, Aug 2, 2026 at 9:47 PM Aleksandar Vidakovic > <[email protected] <mailto:[email protected]>> wrote: >> ... anything that touches JsonCommand is eventually legacy... you should be >> watching this instead https://issues.apache.org/jira/browse/FINERACT-2169 >> ... and independently: if it was not touched in such a long time...: >> >> (a) is it still relevant >> (b) ... or not >> >> On Sun, Aug 2, 2026 at 4:48 PM Ashhar Ahmad Khan <[email protected] >> <mailto:[email protected]>> wrote: >>> Hi everyone, >>> >>> While going through the infrastructure/entityaccess module I found that >>> `FineractEntityAccessWriteServiceImpl` has a method, >>> `createEntityAccess(JsonCommand command)`, that has never had a body: >>> >>> ```java >>> @Override >>> public CommandProcessingResult createEntityAccess(JsonCommand command) { >>> // TODO Auto-generated method stub >>> return null; >>> } >>> ``` >>> >>> This traces back to the very first commit that created the file, >>> `9d11434ee7` ("Branch Specific Products and Charges - initial commit", >>> Binny G Sreevas, Dec 6 2014), where it was already a stub. It has never >>> been implemented since, on any branch. There is no API route, >>> `CommandWrapperBuilder` method, permission record, or command handler for >>> it anywhere in the codebase, and there never has been. >>> `FineractEntityApiResource` only exposes `createMap`/`updateMap`/`delete`, >>> which route to >>> `createEntityToEntityMapping`/`updateEntityToEntityMapping`/`deleteEntityToEntityMapping`, >>> not to `createEntityAccess`. As far as I can tell this method has been >>> unreachable from any entry point since it was written. >>> >>> The same file has a second method, `addNewEntityAccess(...)`, which was >>> implemented from the start and did have a caller: >>> `FineractEntityAccessUtil.checkConfigurationAndAddProductResrictionsForUserOffice(...)`. >>> That changed in commit `66f8d7ce43` ("Changing dependency of >>> m_entity_to_entity_access to m_entity_mapping and adding validation for new >>> loan application", June 9 2016), which rewrote that method to call >>> `fineractEntityToEntityMappingRepository.save(...)` directly instead, >>> bypassing the write service entirely. From that point on >>> `addNewEntityAccess` has had zero callers. >>> >>> So the current state is one class, still a live `@Service` bean, still >>> injected into three command handlers >>> (`CreateEntityToEntityMappingCommandHandler`, >>> `UpdateEntityToEntityMappingCommandHandler`, >>> `DeleteEntityToEntityMappingCommandHandler`) for the methods that are >>> actually used, sitting alongside two methods that have had no caller for >>> roughly ten and twelve years respectively. >>> >>> On dependency surface, I checked: >>> >>> - No reference to `createEntityAccess` or `addNewEntityAccess` in >>> `fineract-client` or `fineract-client-feign` >>> - No OpenAPI/swagger entry for `createEntityAccess` >>> - No test file references either method >>> - `m_entity_to_entity_access`, the table `addNewEntityAccess` used to write >>> to, has 0 rows in `load_sample_data.sql`, and the project's own generated >>> schema docs list it at 0 rows as well >>> - No frontend file in the repo references either method >>> >>> I don't have a strong sense of what the right next step is here. A few >>> options as I see it: >>> >>> (a) implement `createEntityAccess` and restore a caller for >>> `addNewEntityAccess`, if there was ever an intended use case for >>> entity-level (as opposed to entity-to-entity-mapping) access control that >>> just never got finished, >>> (b) remove both methods along with `FineractEntityAccess`, its repository, >>> and the underlying table, since nothing appears to depend on any of it, >>> (c) leave it as is if anyone knows of a reason it's still there, e.g. >>> downstream forks or a planned use I haven't found, or >>> (d) something else. >>> >>> I don't have a preference yet between these and would like to hear from the >>> community, particularly if anyone was around for the 2016 change and >>> remembers why `addNewEntityAccess`'s only call site was rewritten instead >>> of removed along with it. >>> >>> Thanks, >>> Ashhar
