Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

In Quino ist es möglich, Klassen Teile einer Applikation “öffentlich” zur Verfügung zu stellen, um Teile der Applikation Usern ohne Authentifizierung benutzen Zugriff darauf zu können.

...

geben. Dazu existieren zwei Optionen:

Verwendung des Public Module

Um den öffentlichen Bereich verwenden zu können, muss im jeweiligen Projekt auf Client-Projekt ein Routing eingerichtet werden, welches alle “/public” Routes zu einer separaten Applikation umleitet. Beispiel:Seite statt des normalen QuinoApplicationRoot der QuinoPublicApplicationRoot verwendet werden. Dieser leitet automatisch alle /public URLs in den öffentlichen Applikationsteil.

Info

Wichtig: Im publicAppSetup muss PublicModule.use() aufgerufen werden, damit der öffentliche Bereich korrekt funktioniert.

Code Block
languagetypescript
export const RootPageApp: React.FC = () => {
  return (
    <BrowserRouter><QuinoPublicApplicationRoot
      <Routes>
        <Route path={`/${PublicModulePathIdentifier}`}>
          <Route index element={<AppPublic mainAppContent={<CommonUI />}
/>           <Route path={'*'} element={<AppPublic />} />
        </Route>
        <Route path={'/'}>
    mainAppSetup={(app) => {
     <Route index element={<App />} /> Your main app  setup
     <Route path={'*'} element={<App />} />
        </Route>
      </Routes>
    </BrowserRouter>
  );
};

Diese separate Applikation muss folgende Module benutzen:

Code Block
languagetypescript
export const AppPublic: React.FC = () => {
  return (
    <QuinoApplicationRoot
      setuppublicAppSetup={(app) => {
        QuinoCoreModule.use(app);
        UIModule.use(app);// Your public app module usages
        
  DevExpressModule.use(app);         PublicModule.use(app);

        // WeitereYour Registrierungenpublic undapp Usagessetup
    >   }}
   <PublicModuleRootView />
    </QuinoApplicationRoot>
  );
};

Berechtigungen

Die Berechtigungen für nicht authentifiziert authentifizierte User werden über die Rolle “anonymous” vergeben. Für jede Klasse, die im öffentlichen Bereich sichtbar sein soll, muss also eine Rollenberechtigung (mind. “lesen”) für die Anonymous-Rolle bestehen.

...

Listen- und

...

Objekt-Ansichten

Wird im Client ein öffentlicher Applikationsteil das Public Module wie oben beschrieben erstellt, funktionieren Listen- und Objektseiten per Default wie folgt:

...

verwendet, stehen per default folgende Ansichten zur Verfügung:

  • Listen:

    • Pfad-Beispiel: /public/Person/

    LayoutAObjekt
    • ListLayoutA

    • Abweichungen zur “normalen” Listen-Darstellung:

      • Kein Breadcrumb

      • Kein Layout-Selector

  • Objekte:

    • Pfad-Beispiel: /public/Person/

    LayoutX
    • DetailLayoutB/Id=ABC

Dabei ist der Typ vom angegebenen Layout ausschlaggebend. Wird ein Listen-Layout mit einer Id aufgerufen, wird diese Id nicht berücksichtigt.

Anpassungsmöglichkeiten

...

    • Abweichungen zur “normalen” Listen-Darstellung

      • Kein Breadcrumb

      • Kein Object Paging

      • Kein Layout-Selector

      • Keine Tags

      • Keine Sidebar

Anpassungsmöglichkeiten

Für die visuelle Anpassung von Listen- und Objekt-Layouts folgende Optionen stehen (zusätzlich zu den normalen Optionen) folgende Aspekte zur Verfügung:

  • WidthAspect: Breite bzw. Maximal-Breite des Inhalt-Blocks

  • MarginAspect: Margin um den Inhalt-Block herum

  • PaddingAspect: Padding innerhalb des Inhalt-Blocks

  • BackgroundColorAspect: Hintergrund des Inhalt-Blocks

...

Es ist zudem möglich, eigene “Widgets” mit komplett frei definierbarem Inhalt zu registrieren. Dazu muss im Client ein “PublicBookmark” mit einem fixen Namen (z.B. “Demo”) erstellt und registriert werden. Dieser Name erlaubt in der Url dann denn den Zugriff auf das Widget mittels url (z.B. /public/demo).

Registrierungs-Beispiel:

...