deriveFieldsAccess(fields, accessType, withActingRights = false) {
		var fieldsAccesses = {};
		fields.forEach(field => {
			var fieldAccess = [];
			if (this.EXPLICIT_ROW_ACCESS_QUERY) {
				fieldAccess.push('JSON_EXTRACT(' + this.EXPLICIT_ROW_ACCESS_QUERY.alias + '.fields, "$.' + field + '.uac.' + accessType + '")');
            }
            if (this.EXPLICIT_TABLE_ACCESS_QUERY) {
			    fieldAccess.push('JSON_EXTRACT(' + this.EXPLICIT_TABLE_ACCESS_QUERY.alias + '.fields, "$.' + field + '.uac.' + accessType + '")');
            }
            fieldAccess.push(getRightsRulesIntersectionExpression(rules(this.schema.fields[field].uac, accessType), this.getGuestRightsExpression(), withActingRights));
			// In the form: id:"0"
			fieldsAccesses[field] = 'COALESCE(' + fieldAccess.join(', ') + ')';
		});
		return fieldsAccesses;
	}
/**
	 * Creates the SQL logic that computes descreet access rules and all 
     * other rules into their final values
	 * - for table fields access.
	 *
	 * @param array 	                fields
	 * @param string 	                accessType
	 * @param bool 		                withActingRights
	 *
	 * @return object
	 */
Creates the SQL logic that computes descreet access rules and all
other rules into their final values
- for table fields access.



@return object
Creates the SQL logic that computes descreet access rules and all other rules into their final values - for table fields access . @return object
deriveFieldsAccess(fields, accessType, withActingRights = false) {
		var fieldsAccesses = {};
		fields.forEach(field => {
			var fieldAccess = [];
			if (this.EXPLICIT_ROW_ACCESS_QUERY) {
				fieldAccess.push('JSON_EXTRACT(' + this.EXPLICIT_ROW_ACCESS_QUERY.alias + '.fields, "$.' + field + '.uac.' + accessType + '")');
            }
            if (this.EXPLICIT_TABLE_ACCESS_QUERY) {
			    fieldAccess.push('JSON_EXTRACT(' + this.EXPLICIT_TABLE_ACCESS_QUERY.alias + '.fields, "$.' + field + '.uac.' + accessType + '")');
            }
            fieldAccess.push(getRightsRulesIntersectionExpression(rules(this.schema.fields[field].uac, accessType), this.getGuestRightsExpression(), withActingRights));
			fieldsAccesses[field] = 'COALESCE(' + fieldAccess.join(', ') + ')';
		});
		return fieldsAccesses;
	}
deriveFieldsAccess ( fields , accessType , withActingRights = false ) { var fieldsAccesses = { } ; fields . forEach ( field => { var fieldAccess = [ ] ; if ( this . EXPLICIT_ROW_ACCESS_QUERY ) { fieldAccess . push ( 'JSON_EXTRACT(' + this . EXPLICIT_ROW_ACCESS_QUERY . alias + '.fields, "$.' + field + '.uac.' + accessType + '")' ) ; } if ( this . EXPLICIT_TABLE_ACCESS_QUERY ) { fieldAccess . push ( 'JSON_EXTRACT(' + this . EXPLICIT_TABLE_ACCESS_QUERY . alias + '.fields, "$.' + field + '.uac.' + accessType + '")' ) ; } fieldAccess . push ( getRightsRulesIntersectionExpression ( rules ( this . schema . fields [ field ] . uac , accessType ) , this . getGuestRightsExpression ( ) , withActingRights ) ) ; fieldsAccesses [ field ] = 'COALESCE(' + fieldAccess . join ( ', ' ) + ')' ; } ) ; return fieldsAccesses ; }
Creates the SQL logic that computes descreet access rules and all
 other rules into their final values
 - for table fields access.
Creates the SQL logic that computes descreet access rules and all other rules into their final values - for table fields access .
// In the form: id:"0"