How to Approve User via Conduit API?


#1

I’ve looked over the docs and source code, but there doesn’t seem to be a straightforward way to approve users via the conduit API.

There is a way to easily query (via API) a list of users that require approval. Once our automated system has determined that an individual can be approved, it would be great if we can also approve the user to sign into the instance without a human manually approving them.

It’s straightforward to enable/disable them, change the name, title, icon, and blurb, but nothing to approve users in the queue.

Does anyone have a patch or way I could get the API to approve users?


#2

This is something we could build pretty easily, but could you explain a little more about your use case? If you’re trying to automate user signups, you might be better served by configuring Phabricator to trust an external authentication provider.


#3

We decided that this would be a good change for general code-cleanliness reasons. See https://secure.phabricator.com/D19877.


#4

Thanks! It’s great that we’ll be able to soon use the API to approve users. Just to give some background for the use case. I was looking to implement the approval via API because it would be much less work than writing a custom authentication provider. We already use LDAP auth, but it’s not quite enough to restrict authorization to a specific group.

For now, I’ve patched UserEnableConduitAPIMethod even though it’s currently deprecated to get us by, but the new solution looks fantastic.


#5

If you’re already using LDAP as an authentication provider, you can probably just disable the approval queue (if I understand your use case correctly). Take a look at the config setting auth.require-approval. Either way, the change to support user approval via the API is currently available in master.


#6

I wish we could disable the approval queue, but we only want a subset of users to have access and not anyone that can authenticate with LDAP which is why we need to gate users with the approval queue.


#7