API New get attribute by ref + security update

This commit is contained in:
Cédric 2019-11-21 15:50:06 +01:00 committed by GitHub
parent c33506b4cc
commit d6ba06e271
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -814,7 +814,7 @@ class Products extends DolibarrApi
*/ */
public function getAttributes() public function getAttributes()
{ {
if(! (DolibarrApiAccess::$user->rights->produit->lire || DolibarrApiAccess::$user->rights->service->lire)) { if(! DolibarrApiAccess::$user->rights->produit->lire) {
throw new RestException(401); throw new RestException(401);
} }
@ -836,7 +836,7 @@ class Products extends DolibarrApi
*/ */
public function getAttributeById($id) public function getAttributeById($id)
{ {
if(! (DolibarrApiAccess::$user->rights->produit->lire || DolibarrApiAccess::$user->rights->service->lire)) { if(! DolibarrApiAccess::$user->rights->produit->lire) {
throw new RestException(401); throw new RestException(401);
} }
@ -849,6 +849,42 @@ class Products extends DolibarrApi
return $prodattr; return $prodattr;
} }
/**
* Get attributes by ref.
*
* @param string $ref Reference of Attribute
* @return array
*
* @throws RestException
* @throws 401
*
* @url GET attributes/ref/{ref}
*/
public function getAttributesByRef($ref)
{
if(! DolibarrApiAccess::$user->rights->produit->lire) {
throw new RestException(401);
}
$sql = "SELECT rowid, ref, label, rang FROM ".MAIN_DB_PREFIX."product_attribute WHERE ref LIKE '". trim($ref) ."' AND entity IN (".getEntity('product').")";
$query = $this->db->query($sql);
if (!$this->db->num_rows($query)) {
throw new RestException(404);
}
$result = $this->db->fetch_object($query);
$attr = [];
$attr['id'] = $result->rowid;
$attr['ref'] = $result->ref;
$attr['label'] = $result->label;
$attr['rang'] = $result->rang;
return $attr;
}
/** /**
* Add attributes. * Add attributes.
@ -864,7 +900,7 @@ class Products extends DolibarrApi
*/ */
public function addAttributes($ref, $label) public function addAttributes($ref, $label)
{ {
if(! (DolibarrApiAccess::$user->rights->produit->lire || DolibarrApiAccess::$user->rights->service->lire)) { if(! DolibarrApiAccess::$user->rights->produit->creer) {
throw new RestException(401); throw new RestException(401);
} }
@ -895,7 +931,7 @@ class Products extends DolibarrApi
*/ */
public function putAttributes($id, $ref, $label) public function putAttributes($id, $ref, $label)
{ {
if(! (DolibarrApiAccess::$user->rights->produit->lire || DolibarrApiAccess::$user->rights->service->lire)) { if(! DolibarrApiAccess::$user->rights->produit->creer) {
throw new RestException(401); throw new RestException(401);
} }
@ -931,7 +967,7 @@ class Products extends DolibarrApi
*/ */
public function deleteAttributes($id) public function deleteAttributes($id)
{ {
if(! (DolibarrApiAccess::$user->rights->produit->lire || DolibarrApiAccess::$user->rights->service->lire)) { if(! DolibarrApiAccess::$user->rights->produit->supprimer) {
throw new RestException(401); throw new RestException(401);
} }
@ -958,7 +994,7 @@ class Products extends DolibarrApi
*/ */
public function deleteAttributesByRef($ref) public function deleteAttributesByRef($ref)
{ {
if(! (DolibarrApiAccess::$user->rights->produit->lire || DolibarrApiAccess::$user->rights->service->lire)) { if(! DolibarrApiAccess::$user->rights->produit->supprimer) {
throw new RestException(401); throw new RestException(401);
} }
@ -983,7 +1019,7 @@ class Products extends DolibarrApi
*/ */
public function getAttributeValues($id) public function getAttributeValues($id)
{ {
if(! (DolibarrApiAccess::$user->rights->produit->lire || DolibarrApiAccess::$user->rights->service->lire)) { if(! DolibarrApiAccess::$user->rights->produit->lire) {
throw new RestException(401); throw new RestException(401);
} }
@ -1004,7 +1040,7 @@ class Products extends DolibarrApi
*/ */
public function getAttributeValuesByRef($ref) public function getAttributeValuesByRef($ref)
{ {
if(! (DolibarrApiAccess::$user->rights->produit->lire || DolibarrApiAccess::$user->rights->service->lire)) { if(! DolibarrApiAccess::$user->rights->produit->lire) {
throw new RestException(401); throw new RestException(401);
} }
@ -1044,7 +1080,7 @@ class Products extends DolibarrApi
*/ */
public function addAttributeValue($id, $ref, $value) public function addAttributeValue($id, $ref, $value)
{ {
if(! (DolibarrApiAccess::$user->rights->produit->lire || DolibarrApiAccess::$user->rights->service->lire)) { if(! DolibarrApiAccess::$user->rights->produit->creer) {
throw new RestException(401); throw new RestException(401);
} }
@ -1076,7 +1112,7 @@ class Products extends DolibarrApi
*/ */
public function deleteAttributeValueById($id) public function deleteAttributeValueById($id)
{ {
if(! (DolibarrApiAccess::$user->rights->produit->lire || DolibarrApiAccess::$user->rights->service->lire)) { if(! DolibarrApiAccess::$user->rights->produit->supprimer) {
throw new RestException(401); throw new RestException(401);
} }
@ -1102,7 +1138,7 @@ class Products extends DolibarrApi
*/ */
public function deleteAttributeValueByRef($ref) public function deleteAttributeValueByRef($ref)
{ {
if(! (DolibarrApiAccess::$user->rights->produit->lire || DolibarrApiAccess::$user->rights->service->lire)) { if(! DolibarrApiAccess::$user->rights->produit->supprimer) {
throw new RestException(401); throw new RestException(401);
} }
@ -1128,7 +1164,7 @@ class Products extends DolibarrApi
*/ */
public function getVariants($id) public function getVariants($id)
{ {
if(! (DolibarrApiAccess::$user->rights->produit->lire || DolibarrApiAccess::$user->rights->service->lire)) { if(! DolibarrApiAccess::$user->rights->produit->lire) {
throw new RestException(401); throw new RestException(401);
} }
@ -1156,7 +1192,7 @@ class Products extends DolibarrApi
*/ */
public function getVariantsByProdRef($ref) public function getVariantsByProdRef($ref)
{ {
if(! (DolibarrApiAccess::$user->rights->produit->lire || DolibarrApiAccess::$user->rights->service->lire)) { if(! DolibarrApiAccess::$user->rights->produit->lire) {
throw new RestException(401); throw new RestException(401);
} }
@ -1196,7 +1232,7 @@ class Products extends DolibarrApi
*/ */
public function addVariant($id, $weight_impact, $price_impact, $price_impact_is_percent, $features) public function addVariant($id, $weight_impact, $price_impact, $price_impact_is_percent, $features)
{ {
if(! (DolibarrApiAccess::$user->rights->produit->creer || DolibarrApiAccess::$user->rights->service->creer)) { if(! DolibarrApiAccess::$user->rights->produit->creer) {
throw new RestException(401); throw new RestException(401);
} }
@ -1255,7 +1291,7 @@ class Products extends DolibarrApi
*/ */
public function addVariantByProductRef($ref, $weight_impact, $price_impact, $price_impact_is_percent, $features) public function addVariantByProductRef($ref, $weight_impact, $price_impact, $price_impact_is_percent, $features)
{ {
if(! (DolibarrApiAccess::$user->rights->produit->creer || DolibarrApiAccess::$user->rights->service->creer)) { if(! DolibarrApiAccess::$user->rights->produit->creer) {
throw new RestException(401); throw new RestException(401);
} }
@ -1308,7 +1344,7 @@ class Products extends DolibarrApi
*/ */
public function putVariant($id, $request_data = null) public function putVariant($id, $request_data = null)
{ {
if(! (DolibarrApiAccess::$user->rights->produit->creer || DolibarrApiAccess::$user->rights->service->creer)) { if(! DolibarrApiAccess::$user->rights->produit->creer) {
throw new RestException(401); throw new RestException(401);
} }
@ -1344,7 +1380,7 @@ class Products extends DolibarrApi
*/ */
public function deleteVariant($id) public function deleteVariant($id)
{ {
if(! (DolibarrApiAccess::$user->rights->produit->supprimer || DolibarrApiAccess::$user->rights->service->supprimer)) { if(! DolibarrApiAccess::$user->rights->produit->supprimer) {
throw new RestException(401); throw new RestException(401);
} }