abapGit
abapGit copied to clipboard
ACGR: Support for PFCG roles (authorizations)
Hello together, I need to resume the initial feature request #827
How to handle roles?
Here are the facts about roles:
- Roles can't be handled with BC Sets
- Roles are customizing and not linked to a development package
- Roles are essential part of an application and should be delivered as well
- Roles can be easily handled as files, see transaction PFCG (upload / download function)
- Therefore it would be highly recommended also to cover PFCG roles by abapGit
- Without disturbing the core of abapGit it would be possible.
As an example: Customizing files, like roles, could be stored with a separated folder /cust/, parallel to /src/. Manual selection of role to be added to the repo would be needed any way.
Hope you can reopen, the feature request with this insights.
We can build initial object support based on Download/Upload roles functionality

As a workaround, while is thinking how to assign customizing to the repository, roles can be added via abapGit exit zif_abapgit_exit->change_tadir
Well at first we can keep it simple, like a simple upload/download option at abapGit UI to keep or retrieve the files. In background there should be a separated folder created and handled by abapGit to store the files. This folder should be different to the src folder not to harm the development objects underneath.
Some additional changes need to be done, everything outside of / and /src/ folders is ignored

Role support is being discussed in this issue #3474
When everything outside of / and /src/ folders is ignored, we do not have a problem o create a folder beside /src/ (e.g. /cust/) to store additional files. The function module PRGN_DOWNLOAD_AGRS and PRGN_EXECUTE_UPLOAD can do the job of writing and receiving a role as file. Details as discussed in #3474 are covered by these.
Since there are no TADIR entries for roles i.e. no association with packages, I would treat them the same way as TABU data. An extension of the current data serializer seems feasible resulting in role data being persisted in /data/.
To implement this object type, create a PR or reopen this issue for further discussion.