>In any order, and any number or items, where they are logically joined with AND in the function. Does that make sense to all?
So if you mean delete user whose idnumber is 434343 AND email=fred@xxx AND id=3 ??? :In that case is it too much demanding on the external SIS that will likely not know anything about Moodle internal ids and does not want to know about them.
And if you mean user whose idnumber is 434343 OR email=fred@xxx OR id=3 , it does not make sense to me either since, when writing processes to sync Moodle with my SIS it is very unlikely that I shall scan my database twice, once for idnumber and one for email. If in my place idNumber are the "primary key", I shall use it anywhere, if it is the email, I shall uses is instead, but never both...
I think Ludo's question is more :
-Shall we have ONE public operation delete_users (array of some info, corresponding field name in Moodle ) that could be called as :
res = delete_users (array(1,2,3), 'id')
or res = delete_users (array('CS27001','CS27002',...), 'idnumber')
or res = delete_users (array(jack@here,fred@ther,...), ,'email')
or res = delete_users (array(jack,fred,...), 'username')
- Or shall we have four public operations :
res = delete_users_byid (array(1,2,3')
or res = delete_users_byidnumber('CS27001','CS27002',...)
or res = delete_users_byemail (array(jack@here,fred@ther,...)
or res = delete_users_byusername (array(jack,fred,...)
and make delete_users private to avoid devastating calls such as delete_users (array(1),'confirmed') or delete_users(array('patrick'),'firstname')... unless you feel that it should be allowed
Also the question of wildcards should be addressed (permitted or not) such as delete_users (array('CS%','idnumber) ....
To me it should not be permitted to delete_users for safety reasons ; it that case we should request a true identifying id (unique in database) ;
in contrast it should be allowed in get_users . I shall be happy with a get_users(array(1),'deleted')