/* bla bla bla */
@co_call(par_area,'"generic_acl"',"update",par_area=>par_area,par_class=>par_class,par_id=>par_id,par_prop=>par_prop,new_value=>new_value,version=>version);

if (strcmp(par_prop, "id_role")==0) {
/* find wrapper for this user */
id_user=ap_psprintf(p, "%d", par_id); /* conver to string */
@co_call(par_area,par_class,"getByProp",par_area=>par_area,par_class=>'"role"',par_id=>-1,prop_name=>'"id_item"',prop_val=>id_user);
cou_logError(cnx, CO_LOG_DEBUG, "getByProp returned");
__GET_RETURNED_RECORDSET(corec)
id_wrapper_role = atoi(cor_GetCopyOfValueByName(cnx, corec, 0, "id"));
cou_logError(cnx, CO_LOG_DEBUG, "Clearing result");
__CLEAR_RESULT /* clears corec */
cou_logError(cnx, CO_LOG_DEBUG, "...cleared.");
/* update its parent role: set id_parent to the value of id_role set in user */
@co_call(par_area,'"role"',"update",par_area=>par_area,par_class=>'"role"',par_id=>id_wrapper_role,par_prop=>'"id_parent"',new_value=>new_value,version=>-1);
}