2
0
forked from Wavyzz/dolibarr

Merge pull request #18628 from lainwir3d/fix_rest_api_fix_self_user_info_read

FIX #18627 REST API: Allow users with self read / modify rights to get own info
This commit is contained in:
Laurent Destailleur
2021-09-10 13:34:56 +02:00
committed by GitHub

View File

@@ -151,7 +151,7 @@ class Users extends DolibarrApi
*/
public function get($id, $includepermissions = 0)
{
if (empty(DolibarrApiAccess::$user->rights->user->user->lire) && empty(DolibarrApiAccess::$user->admin)) {
if (empty(DolibarrApiAccess::$user->rights->user->user->lire) && empty(DolibarrApiAccess::$user->admin) && $id != 0 && DolibarrApiAccess::$user->id != $id) {
throw new RestException(401, 'Not allowed');
}
@@ -184,12 +184,17 @@ class Users extends DolibarrApi
*
* @url GET login/{login}
*
* @throws RestException 401 Insufficient rights
* @throws RestException 404 User or group not found
* @throws RestException 400 Bad request
* @throws RestException 401 Insufficient rights
* @throws RestException 404 User or group not found
*/
public function getByLogin($login, $includepermissions = 0)
{
if (empty(DolibarrApiAccess::$user->rights->user->user->lire) && empty(DolibarrApiAccess::$user->admin)) {
if (empty($login)) {
throw new RestException(400, 'Bad parameters');
}
if (empty(DolibarrApiAccess::$user->rights->user->user->lire) && empty(DolibarrApiAccess::$user->admin) && DolibarrApiAccess::$user->login != $login) {
throw new RestException(401, 'Not allowed');
}
@@ -218,12 +223,17 @@ class Users extends DolibarrApi
*
* @url GET email/{email}
*
* @throws RestException 400 Bad request
* @throws RestException 401 Insufficient rights
* @throws RestException 404 User or group not found
*/
public function getByEmail($email, $includepermissions = 0)
{
if (empty(DolibarrApiAccess::$user->rights->user->user->lire) && empty(DolibarrApiAccess::$user->admin)) {
if (empty($email)) {
throw new RestException(400, 'Bad parameters');
}
if (empty(DolibarrApiAccess::$user->rights->user->user->lire) && empty(DolibarrApiAccess::$user->admin) && DolibarrApiAccess::$user->email != $email) {
throw new RestException(401, 'Not allowed');
}
@@ -256,7 +266,7 @@ class Users extends DolibarrApi
*/
public function getInfo($includepermissions = 0)
{
if (empty(DolibarrApiAccess::$user->rights->user->user->lire) && empty(DolibarrApiAccess::$user->admin)) {
if (empty(DolibarrApiAccess::$user->rights->user->self->creer) && empty(DolibarrApiAccess::$user->rights->user->user->lire) && empty(DolibarrApiAccess::$user->admin)) {
throw new RestException(401, 'Not allowed');
}