Aufbau eines Content managment systems

Status
Nicht offen für weitere Antworten.

fluxy

Mitglied
Hallo,

ich will in Java ein Content Managment System (CMS) implementieren. Ich frage mich jetzt natürlich, wie man sowas anfängt und wie es dann weitergeht. Ein Kollege hat eins im PHP programmiert, dort hat er so Vorlagen verwendet. Aber mehr weiss ich darüber bis jetzt noch nicht.


Wenn mir jemand sagen könnte, wie man an sowas ran geht, würde das sehr helfen.


Gruß Sebastian
 

fluxy

Mitglied
Hmm ich habe mir überlegt, dass ich in meiner Datenbank eine Tabelle Contents erzeugen sollte, in der alle Contents eingefügt werden. Eine Spalte sollte dann ein Flag sein, ob das Content ein HTML Baustein ist oder nicht, mit welchem ich dann meine Webseiten bauen kann. Allerdings überlege ich mir grade wie ich das mit den Rechten mache. Auf der Arbeit haben wir so ein Rollensystem, welches Benutzerrechte verwaltet. Weiss jemand wie sowas funktioniert?!
 
G

Guest

Gast
Erstelle ein kleines HTML-Projekt und überlege Dir, was dort alles austauschbar ist
bzw. verwaltet werden könnte.

- Welche Informationene werden über einzelne Seiten benötigt?
- Wie kann man die Informationenen über die Seitenübergänge verwalten?
- Wohin mit dem Inhalt?
- Wohin mit dem Layout? (CSS, Grafik etc.)
- Wie könnten die typischen Abläufe aus Sicht des Anwenders aussehen?
(Je detailierter dest besser, den darauf kommt's an.)
- Wie spielt das ganze zusammen, wenn es mal läuft?

Beschreibe das ganze zuerst mal bevor Du Dich auf die Tastatur stürzst,
um zu programmieren. Jede noch so verrückte Idee aufschreiben, ohne viel
zu überlegen. Danach kannst Du Dir Gedanken über die Kernaufgaben eines
CMS machen und das ganze in paar kleine Teilprojekte aufteilen.
 
G

Guest

Gast
Sollte Informationen heissen :) Ich tippe zu schnell, leider nicht fehlerfrei...
 

akira

Bekanntes Mitglied
Auf der Arbeit haben wir so ein Rollensystem, welches Benutzerrechte verwaltet. Weiss jemand wie sowas funktioniert?!

Ein Ansatz wäre folgender:

Du definierst Rollen und die damit verbundenen Rechte. Dabei könnten z.B. Rollen voneinander erben, wenn sie die Rechte einer anderen Rolle erweitern.

Dann ordnest Du jedem Benutzer eine (oder mehrere) Rollen zu und prüfst im Code bei bestimmten Aktionen, ober der Benutzer eine bestimmte Rolle und somit deren Rechte besitzt und eine bestimmte Aktion ausführen darf. Oder Du stellst im Menü z.B. nur die Menüpunkte zur Verfügung, die der spezielle Nutzer mit seinen Rollen sehen darf.

Bei vielen Benutzern machen wahrscheinlich auch Benutzergruppen mit bestimmten Rollen Sinn. Du kannst dann z.B. bestimmten Gruppen nur bestimmte Contentteile zur Verwaltung überlassen oder ähnliches.
 

fluxy

Mitglied
naja so ähnlich habe ich mir das schon vorgestellt.


Das Problem dabei, das ich habe ist folgendes: Ich muss es ja quasi schaffen, dass ich für jeden Baustein, also jeden Content, welcher vom System verwaltet wird, für jeden User über ein Recht verfügt, damit das variabel genug anwendbar ist. Ich muss also sagen können, dass user x auf der baustein a volles recht hat, während user y nur lesezugriff und user z nur Schreib-/Leserecht, aber kein Ausführrecht hat.

Und das muss mein Rollensystem nachher können. Bisher bin ich ja nur bei der Datenbank. Ich brauche ja dann jetzt entsprechend eine Datenbanktabelle (oder mehrere) für mein Rollensystem. Allerdings habe ich keine Ahnung, wie ich das aufziehen soll. Eine Rolle muss ja die Rechte verwalten. Muss ich dann für jedes Content eine eigene Rolle definieren und den usern dann die Rollen zuweisen, wenn sie die rechten haben sollten?! Oder wie soll das vonstattengehen?!
 

akira

Bekanntes Mitglied
Also ich würde da so rangehen:

Eine Tabelle für alle Berechtigungen die es gibt, also id und Name. Die Bedeutung dieser id mußt Du dann im Code definieren, z.B:

Code:
public class Rechte {
   
    public final static int LESERECHT = 1;
    public final static int SCHREIBRECHT = 2;
    // usw.

    private int id;
    private int name;

    //...
}

Eine weiter Tabelle anlegen mit allen Rollen, die es geben soll, z.B. Leser, Author, Lektor, Redakteur, Admin usw. wieder mit id und Name und vielleicht noch Beschreibung.

Dritte Tabelle alle Benutzer reinstecken mit id und sonstiges.

Nun eine Verknüpfungstabelle aufbauen, die die Rollen zu Berechtigungen mappt (rechtId, rolleId) und eine weitere, die Benutzer zu Rollen zuordnet (userId, roleId).

Eventuell führst Du noch eine Gruppentabelle ein und eine weitere Verküpfungstabelle (groupId, roleId) um gleichzeitig mehreren Leuten die gleichen Rechte zu geben.

Bezuglich des Contents würde ich Dir eine Art Verzeichnissystem empfehlen, welches jeden Content einem bestimmten (Unter-)verzeichnis zuweist, dem Du wiederum einer bestimmten Gruppe mit ihren Rechen Zugriff gewähren lassen kannst. Ich meine übrigens keine Verzeichnisse auf der Platte, sondern "virtuelle" in der DB.
 

fluxy

Mitglied
Also als meine Usertabelle nehme ich einfach mein Seitenlogin, das sollte ich dafür Problemlos nehmen können. Es wird auch eine Tabelle directory oder so ähnlich geben, wobei das content dann die id des Parentverzeichnisses übergeben bekommt. Damit sollte klar sein, wo sich das content befindet.

Im Moment sieht es so aus (bitte nicht an RELATION stören, dass ist die Syntax die wir auf der Arbeit verwenden, hat mit mySQL nix am Hut :)


// RELATION content EXPLAIN "Baustein"
content (baustein)
- cnt_nr // Content ID
- cnt_bez // Dateiname
- cnt_htmlTmpl // Ist HTML Template
- cnt_dnr // Elternverzeichnis
- cnt_drpos // Position in Verzeichnis
- cnt_mineTpNr // Mine-Type ID
- cnt_isVisible // Content sichtbar für alle Benutzer
- cnt_rolle // Rolle für Sicherheitsrichtlinien



// RELATION direcoty EXPLAIN "Verzeichnis"
directory (verzeichnis)
- dnr_id // Verzeichnis ID
- dnr_bez // Name des Verzeichnises
- dnr_ebene // Verzeichnisebene, 0 für root
- dnr_numcnt // Anzahl entschaltender Bausteine
- dnr_role // Rolle für Sicherheitsrichtlinien



// RELATION rolle EXPLAIN "Rollenverwaltung"
role (Rollenverwaltung)
- rol_id // Rollen-ID
-



// RELATION auth EXPLAIN "Userrechte"
auth
- auth_nr // Rechte ID
-


so in Etwa bin ich im Moment mit der Planung. Da müsste ich jetzt also quasi noch die Verknüpfungstabellen einbauen oder?!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
WetWer Aufbau eines JSP EE Projekts Allgemeines EE 4
R Aufbau zum Java EE Entwickler - Schulungen Allgemeines EE 0
B Online Status eines Benutzers abrufen Allgemeines EE 27
O JSF Login mit Hilfe eines Sharepoint 2013 Users Allgemeines EE 4
R Mehrere Bilder gleichzeitig bzw. dynamisch eines Objektes speichern Allgemeines EE 2
R JPA Problem beim Speichern eines Users Allgemeines EE 2
S Aufruf eines EJBs aus einer nativen Java-Applikation Allgemeines EE 1
O JBoss und die Einbindung eines externen JAR Allgemeines EE 10
DStrohma Innerhalb eines Webservices die reine SOAP Nachricht ausgaben Allgemeines EE 2
A Probleme bei der Einbindung eines Liferay Portalserver (Glassfish) Allgemeines EE 7
S Validierung eines Datums Allgemeines EE 3
TheDarkRose Überlegungen zur Modularität eines Projekts und Pluginartige Programmierung Allgemeines EE 2
M Frage zum Einsatz eines loggers Allgemeines EE 2
G Rollen eines Benutzers ermitteln Allgemeines EE 16
M Wie zeige ich Attribute eines Objekts innerhalb einer JSP an Allgemeines EE 2
isowiz Positionierung innerhalb eines <h:commandLink> Allgemeines EE 7
D Controller-Klassen eines Servlets testen mit JUnit Allgemeines EE 3
S Struts - Direktaufruf eines URL verhindern Allgemeines EE 11
J init-Methode eines Servlet ausführen ohne vorherigen request Allgemeines EE 2
G Servlet beim Absenden eines Formulars aufrufen Allgemeines EE 11
M Builden eines Web Service Projekts scheitert Allgemeines EE 6
B Ursprung eines Requests Allgemeines EE 5
M Pfad eines Bildes angeben? Allgemeines EE 1
L JSP: Dynamischer Content mit Beans für einen Konfigurator? Allgemeines EE 0
W JSF PrimeFaces center content of layoutUnit Center Allgemeines EE 19
M in JSP Content von fremder Domain einbinden? Allgemeines EE 6
G JSF und Content Management. Allgemeines EE 9
S Downloadbox auch ohne Daten erzwingen // Content-Disposition Allgemeines EE 6
C Portlet: content-type Allgemeines EE 7

Ähnliche Java Themen


Oben