Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 15. Nov 2018 2:44

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 18. Aug 2006 14:46 
Hallo zusammen!

Seit einiger Zeit programmiere ich in Perl (mehr aus purer Lust am coden als aus praktischen Gründen) eine einfache, MySQL basierte und mit Curses::UI "aufgepeppte" Forensoftware. Die Idee kam mir, nachdem ich eine Zeit lang mit dem "dialog" Tool ein kleines Menü mit diversen Shell Apps (z.B. mutt, tin usw.) geskriptet hatte und hier nun ganz im Stile klassischer BBS Systeme einen Forenbereich schaffen wollte. Sicher, ich hätte einfach ein webbasiertes Forum (z.B. phpBB) einrichten und dann in der Shell via Links / Lynx darauf zugreifen können, aber eine "echte" Perl/Curses Applikation ohne zusätzliches Webgeraffel fand ich irgendwie passender.

Nun zu meinem Problem:

Das Programm beherrscht alle Basisfunktionen wie Post erstellen, Post anzeigen, Post in Textdatei dumpen. Nun möchte ich noch Funktionen zum Editieren und Löschen von Beiträgen hinzufügen. Und dafür benötige ich in irgendeiner Weise DB-Session Support, um zu verhindern das ein User Postings ändern oder löschen kann, die nicht von ihm erstellt wurden.

Haken: bislang habe ich nur Lösungen gefunden, die sich auf webbasierte Problemstellungen beziehen, das heißt das diese Lösungen einen Apache Webserver, diverse Perl CGI Module und andere benötigen.

Frage: gibt es ein Perl Modul oder andere, quelloffene Lösungsansätze, mit denen sich DB-Sessions auch für Shell Applikationen realisieren lassen? Hat jemand einen Tip, wie ich evtl. zu meinem Sessionmanagement kommen kann, ohne zusätzliche Daemons, Tools etc. zu installieren?


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 19. Aug 2006 1:44 
Offline
prolinux-forum-admin

Registriert: 26. Jun 2004 21:18
Beiträge: 1444
Kannst du das näher beschreiben? Zum Beispiel warum du die Nutzerauthentifizierung zwischen den Interpreter und die DB haben möchtest. Gibt es gar keine Interaktion außerhalb? Und wenn das so ist, wie authentifiziert sich ein Nutzer gegenüber dem Interpreter (Shell, Perlinterpreter ...)
ps. Ich frag weil es interessant klingt, eine fertige Lösung ala nimm dies oder das hab ich leider nicht.


MfG, Klopskuchen

_________________
When all else fails, read the instructions .


Nach oben
   
 Betreff des Beitrags: Hallo nochmal ...
BeitragVerfasst: 19. Aug 2006 16:44 
Nun, ich würde - wie es ja auch in einem cgi der fall wäre - die benutzerdaten gerne über eine mysql session nachhalten. ist ein user eingeloggt und ist der user der ersteller eines bestimmten posts, so hat er die möglichkeit sein posting zu editieren oder zu löschen. ist der eingeloggte user nicht der ersteller des posts, so sind diese optionen beim ansehen der nachricht nicht verfügbar. eine curses-gui fragt den usernamen und das passwort bei programstart ab. wie gesagt, mag sein das es sich für so was "old schooliges" nicht lohnt, großen aufwand zu treiben, aber ich finde die idee nach wie vor sehr reizvoll, sowas zzu implementieren.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 19. Aug 2006 19:26 
Offline
prolinux-forum-admin

Registriert: 26. Jun 2004 21:18
Beiträge: 1444
Code:
wenn Login == 1 dann
	lege temporäre Datei an
	schreibe passworthash in Datei
	starte separaten Countdown-Prozeß mit Namen der temporären Datei als Argument
	DB-Abfragen:
		Countdown zurücksetzen oder killen und neustarten
		pw-hash aus Datei an Abfrage anhängen
			A: user-ID mittels pw-hash aus Benutzertabelle ermitteln
			B: Ersteller-ID aus Spalte des Beitrages auslesen (bei Beitragserstellung wird diese dort eingetragen)
			vergleiche A und B ...

Zum Logout einfach temporäre Datei löschen.
Logout vergessen? Countdown-Prozeß löscht nach n Zeit temporäre Datei. Session Ende.
So hat sich das im Kopf zusammengebraut. Angaben ohne Gewähr. ;)


MfG, Klopskuchen

_________________
When all else fails, read the instructions .


Nach oben
   
 Betreff des Beitrags: Dankeschön!
BeitragVerfasst: 20. Aug 2006 21:22 
Zitat:
Code:
wenn Login == 1 dann
	lege temporäre Datei an
	schreibe passworthash in Datei
	starte separaten Countdown-Prozeß mit Namen der temporären Datei als Argument
	DB-Abfragen:
		Countdown zurücksetzen oder killen und neustarten
		pw-hash aus Datei an Abfrage anhängen
			A: user-ID mittels pw-hash aus Benutzertabelle ermitteln
			B: Ersteller-ID aus Spalte des Beitrages auslesen (bei Beitragserstellung wird diese dort eingetragen)
			vergleiche A und B ...

Zum Logout einfach temporäre Datei löschen.
Logout vergessen? Countdown-Prozeß löscht nach n Zeit temporäre Datei. Session Ende.
So hat sich das im Kopf zusammengebraut. Angaben ohne Gewähr. ;)


MfG, Klopskuchen
Erst mal vielen Dank, so in etwa könnte das klappen. Eventuell kann ich statt der Datei eine Session Tabelle nutzen. Der Countdown würde dann durch einen Timestamp in dieser Tabelle ersetzt, welches abgefragt wird. Aber von Konzept erstmal ein guter ansatz. Dankeschön! :)


Nach oben
   
 Betreff des Beitrags: Nochmals Dankeschön! :)
BeitragVerfasst: 22. Aug 2006 16:42 
Lieber Klopskuchen,

Dank Deiner Anregung ist das Programm ein gutes Stück "fertiger" geworden (erstellen und löschen der Posts läuft bereits mittels einfachem Session Handling). Sobald ich die letzten Feinarbeiten abgeschlossen habe, werde ich mein "RetroBBS" unter GPL v2 veröffentlichen und somit dem geneigten Leser zur Verfügung stellen.

Gruß vom lodger


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de