2017-05-09 1 views
0

Ich benutze Alanning: Rollen und habe meine Benutzer erfolgreich in Admin-Gruppen in meinem Server - Hauptdatei. Aber jetzt versuche ich Meteor.users.allow() zu meinem Admin hinzuzufügen, damit sie andere Benutzer löschen können. Ich habe Probleme, ein Beispiel für den richtigen Ort in meinem Code zu finden, um dies zu verdeutlichen. Lege ich es in den Server Haupt unter Start? oder in einer separaten Benutzersammlung (ich verwende React)?Wo in meinem Code sollte ich meine Meteor user Methoden und allow() Berechtigungen setzen?

Ich denke, das ist ein Blindspot in meinem Verständnis von Meteor oder reagieren, wenn Sie lehrreich fühlen, bitte hilf mir :) Danke!

Antwort

1

Wenn Sie mit Meteor jünger als 1.3.0 arbeiten, können Sie Ihre hooks/allows/methods Dateien irgendwo unter einem server Unterverzeichnis platzieren, solange Sie import (wie im ES6 Modul importieren) sie. Es ist hilfreich, sie logisch zu trennen. Hier ist eine Beispiel für eine Verzeichnisstruktur in unserem Projekt verwenden:

public/ (static files, assets) 
settings/ (to be loaded as command-line args for different environments) 
test/ 
imports/ 
    client/ 
    startup/ 
    components/ 
    views/ 
    server/ 
    startup/ 
    allows/ 
    hooks/ 
    methods/ 
    publications/ 
    both/ 
    utils/ 
    collections/ (collections are here, because they're shared) 

Nun, um ehrlich zu sein, ist dies ein älteres Projekt, so wurde React hier nicht betrachtet, aber dies noch nützlich sein könnte für Sie, wenn Sie organisieren Ihre Importe. Offensichtlich werden Sie einige Eintragsdateien für Ihren Client und Server benötigen, die alle notwendigen Abhängigkeiten importieren. Fortan zum Beispiel in Ihrer imports/server/allows/<collection_name>.js Datei, legen Sie wie erlaubt:

import { SomeCollection } from '/imports/both/collections/someCollection.js'; 

SomeCollection.allow({ 
    insert: function() { 
    return true; 
    }, 
    update: function() { 
    return true; 
    }, 
    remove: function() { 
    return true; 
    } 
}); 

Ich ziehe absoluten Dateipfad Importe in Meteor Projekte verwenden, da die Wurzel Pfad zur Wurzel des Projekts aufgelöst wird. Erleichtert das Kopieren und Einfügen.

Hoffe, dass hilft.

+0

Vielen Dank, das ist sehr hilfreich. Ich denke, ich bin ein wenig unklar, ob ich die Meteor.users-Sammlung wie jede Sammlung (SomeCollection in Ihrem Beispiel) verwenden kann. Wenn ich eine Sammlung benenne, referenziert sie automatisch auf Meteor.users, damit ich users.allow ({remove ...}) machen kann? – John

+0

Ich bin mir fast sicher, dass Sie Meteor.users.allow ({etc ...}) verwenden können. Sie sollten in der Lage sein, auch eine Sammlung "Benutzer" zu benennen. Bitte markieren Sie die Antwort als beantwortet, wenn Ihr anfängliches Problem behoben wurde. –

Verwandte Themen