2017-10-24 3 views
0

Ich verwende diese in meinem Auth0 Delegated Administration Extension.Lucene Abfragefilter funktioniert nicht

function(ctx, callback) { 
    // Get the company from the current user's metadata. 
    var company = ctx.request.user.app_metadata && ctx.request.user.app_metadata.company; 
    if (!company || !company.length) { 
    return callback(new Error('The current user is not part of any company.')); 
    } 

    // The GREEN company can see all users. 
    if (company === 'GREEN') { 
    return callback(); 
    } 
    // Return the lucene query. 
    return callback(null, 'app_metadata.company:"' + company + '"'); 
} 

Wenn der Benutzer angemeldet, in deren Gesellschaft ist GREEN alle Benutzer sehen kann. Aber wenn sich ein Benutzer anmeldet, dessen Firma RED ist, kann er keine Benutzer sehen, deren Firma RED ist.

Ich muss dies machen, wenn Benutzer angemeldet, Benutzer sollte nur in der Lage sein, Benutzer innerhalb seiner Firma zugreifen. (außer Benutzer von GREEN-Unternehmen).

Aber oben Code gibt nicht erwartetes Ergebnis. Was könnte das Problem sein?

Antwort

0

Ich endete schließlich mit dieser Lösung.

Benutzte Suchfunktion zum Filtern von Benutzern. Ich musste unter zwei Dateien wechseln.

fetchUsers Funktion in client\actions\user.js

geändert

Exportfunktion fetchUsers (search = '', Reset = false, page = 0)

zu

Export Funktion fetchUsers (search = '@ red.com', reset = false, page = 0)

UND

onReset Funktion in client\containers\Users\Users.jsx

geändert onreset =() => {this.props.fetchUsers ('', true); }

zu

onreset =() => {this.props.fetchUsers ('@ red.com', true); }

0

Haben Sie immer noch Probleme damit oder haben Sie es behoben? Ich habe buchstäblich genau das gleiche Problem. Ich habe ein Support-Ticket mit Auth0 geöffnet - ich werde Sie wissen lassen, was ich höre.

Ich glaube nicht, Theres nichts falsch mit dem Code, sondern die Suchfunktion - die Lucene-Abfrage, die sollte zurückgibt: app_metadata.company:"RED“

Wenn Sie versuchen, und dass innerhalb des delegierten laufen Admin ohne Haken angewendet, funktioniert die Abfrage nicht. Ich bin in der Lage, nach eigenständigen Benutzereigenschaften zu suchen, wie E-Mail: "[email protected]" oder Name: "John Doe" und das funktioniert, aber wenn ich versuche, eine Suche zusammen zu string, app_metadata.company:"test "oder user_metadata.company:"test“, es funktioniert nicht:/

+0

Dies sollte als Kommentar zu der Frage geschrieben werden und als solche ist keine Antwort Gillerton. – Neil

+0

@Gillerton. Ja. Ich habe immer noch dieses Problem. Bitte aktualisieren Sie mich, wenn Sie eine Antwort von Auth0 erhalten. – Bishan

+0

@Bishan - dauerte eine Weile, aber das Auth0-Support-Team kam heute zu mir zurück. Sie haben die Suche nach Benutzer-/App-Metadaten eingeschränkt und von Fall zu Fall aufgrund von "einigen Ausfällen" aktiviert. Nachdem sie die Metadatensuche auf unseren Mandanten aktiviert haben, funktioniert der Filter-Hook genau so, wie er sollte. Ich würde vorschlagen, sie zu kontaktieren. – Gillertron

1

Dies könnte zu einem kleinen Warnhinweis auf dem sie User Search documentation page

Grundsätzlich bezogen werden Sie Immobilien im app_metadata Feld suchen lassen Sie sich nicht mehr. Leider war dieser Wechsel unbeständig und unangemeldet.

Wir mussten Änderungen an unserer API vornehmen, damit wir eine Kopie der app_metadata s in einer separaten Datenbank speichern und die Lucene-Syntax in MongoDB-Abfragen konvertieren, so dass wir eine Kette von user_id:"<>" OR user_id:"<>" OR ... abfragen können.

Ein Vorbehalt jedoch, können Sie nicht eine Abfrage übergeben, die länger als 72 user_id s lang ist. Diese Zahl ist bisher undokumentiert und empirisch erhalten.

Sie können sich auch nicht darauf verlassen, dass die Hoops von Auth0 neue Benutzer zu Ihrer Datenbank hinzufügen, da diese nicht für soziale Logins ausgelöst werden, sondern nur für Username-Password-Authentication-Verbindungen.

Ich hoffe, dies gab Ihnen eine Erklärung, warum es nicht so gut funktionierte wie eine mögliche Lösung.
Wenn ich Sie wäre, würde ich nach einer Alternative für Aut0 suchen, was wir gerade tun.

+0

Danke für Ihre Antwort. Das hat mir sehr geholfen. – Bishan

Verwandte Themen