I have a user who is getting an error when trying to create a new repository in Diffusion, and I believe everything is setup that he should be able to create the repository. When he finishes creating the repository he is presented with:
You Shall Not Pass: Unknown Object (VOID) You do not have permission to edit this object. Users with the "Can Edit" capability: Members of the project "Engineers - Power" can take this action.
After this, I checked ./bin/repository list just to see if a repository was actually created but it didn't appear to be.
Reproducing
Diffusion Application Policies look like:
Policy | Value | Details |
---|---|---|
Can Use Application | Employees | This is a project/group with all employees who can log into Phabricator |
Can Configure Application | Administrators | This can't be modified in the Phabricator interface |
Default View Policy | Engineers | This is a project/group with the software developers |
Default Edit Policy | Engineers - Power | This is a project/group with limited engineers for managing repositories |
Default Push Policy | Engineers | |
Can Create Repositories | Custom Policy | =>Members of "Engineers" or members of "IT" |
This user is a member of "Employees" and "IT". During the walkthrough of creating a repository, he configures the policies this way:
Policy | Value |
---|---|
Visible To | IT |
Editable By | IT |
Can Push | IT |
Workaround
I believe the issue is due to the user not being in the Diffusion application's "Default Edit Policy". After adding "IT" to the "Default Edit Policy" (as well as "Default View" and "Default Push") he was able to successfully create the repository.
Install
libphutil | 76425eaa812572cc02487db79f2dd43d93e3085f |
arcanist | 1439aaa871837031faa1ef26b81f1fb08e4a41e7 |
phabricator | 2c67d9c8ace2800ec618549963c4036e92cb3a9b |