Wie setze ich Rechte um?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Kannst du mir bei meinem Board helfen?

    Was mir momentan fehlt ist die einteilung in die User-Recht.
    *winks*
    Gilbert
    ------------------------------------------------
    Hilfe für eine Vielzahl von Problemen!!!
    http://www.1st-rootserver.de/

    Kommentar


    • #17
      mach mehrere Gruppen:

      Admin
      Mod
      User
      Gast
      ...


      und dafür mehrere Rechte

      Forum lesen
      im Forum Thread eröffnen
      auf Thread antworten
      im Forum suchen
      ...

      damit haste:
      Gruppen, die an irgendwelchen Orten (Foren) irgenwelche Rechte haben

      und das Ganze jetzt noch in eine DB:


      Tabelle
      =======
      Ort => zu welchem Forum gehört der Satz
      Gruppe => zu welcher Gruppe gehört der Satz
      forum_lesen => darf lesen
      forum_starten => darf Thread starten
      ...

      und die Tabelle schön ausfüllen

      für jede Gruppe in jedem Forum

      ( 4 Gruppen * 10 Foren = 40 Einträge !!! )
      TBT

      Die zwei wichtigsten Regeln für eine berufliche Karriere:
      1. Verrate niemals alles was du weißt!


      PHP 2 AllPatrizier II Browsergame

      Kommentar


      • #18
        Hier mal die drei Tabellen die ich dafür habe.

        Die Tabelle soll nur genutzt werden wenn eine Usergruppe bestimmte Rechte zum Forum bekommt.
        Bespiel:
        Moderatoren-Forum
        Code:
        # phpMyAdmin MySQL-Dump
        # version 2.2.6-rc1
        # [url]http://phpwizard.net/phpMyAdmin/[/url]
        # [url]http://phpmyadmin.sourceforge.net/[/url] (download page)
        #
        # Host: localhost
        # Erstellungszeit: 01. Oktober 2002 um 15:05
        # Server Version: 3.23.38
        # PHP-Version: 4.2.1
        # Datenbank : `phorumtest`
        # --------------------------------------------------------
        
        #
        # Tabellenstruktur für Tabelle `forum_permission`
        #
        
        CREATE TABLE forum_permission (
          forum_id tinyint(4) NOT NULL default '0',
          group_id tinyint(4) NOT NULL default '0',
          cat_erstellen tinyint(4) NOT NULL default '0',
          cat_aendern tinyint(4) NOT NULL default '0',
          cat_loeschen tinyint(4) NOT NULL default '0',
          forum_erstellen tinyint(4) NOT NULL default '0',
          forum_aendern tinyint(4) NOT NULL default '0',
          forum_loeschen tinyint(4) NOT NULL default '0',
          user_erstellen tinyint(4) NOT NULL default '0',
          user_aendern tinyint(4) NOT NULL default '0',
          user_loeschen tinyint(4) NOT NULL default '0',
          user_freischalten tinyint(4) NOT NULL default '0',
          user_sperren tinyint(4) NOT NULL default '0',
          user_profil_alle tinyint(4) NOT NULL default '0',
          user_profil tinyint(4) NOT NULL default '0',
          post_erstellen tinyint(4) NOT NULL default '0',
          post_aendern tinyint(4) NOT NULL default '0',
          post_loeschen tinyint(4) NOT NULL default '0',
          post_lesen tinyint(4) NOT NULL default '0',
          post_verschieben tinyint(4) NOT NULL default '0',
          post_schliessen tinyint(4) NOT NULL default '0',
          post_aendern_alle tinyint(4) NOT NULL default '0',
          ankuendigung_erstellen tinyint(4) NOT NULL default '0',
          ankuendigung_aendern tinyint(4) NOT NULL default '0',
          ankuendigung_loeschen tinyint(4) NOT NULL default '0',
          ankuendigung_lesen tinyint(4) NOT NULL default '0',
          post_wichtig tinyint(4) NOT NULL default '0',
          forum_suchen tinyint(4) NOT NULL default '0',
          profil_lesen tinyint(4) NOT NULL default '0',
          mail_user tinyint(4) NOT NULL default '0',
          pm_user tinyint(4) NOT NULL default '0'
        ) TYPE=MyISAM;
        
        #
        # Daten für Tabelle `forum_permission`
        #
        Die Tabelle gibt die Default Recht der User
        Code:
        # phpMyAdmin MySQL-Dump
        # version 2.2.6-rc1
        # [url]http://phpwizard.net/phpMyAdmin/[/url]
        # [url]http://phpmyadmin.sourceforge.net/[/url] (download page)
        #
        # Host: localhost
        # Erstellungszeit: 01. Oktober 2002 um 15:08
        # Server Version: 3.23.38
        # PHP-Version: 4.2.1
        # Datenbank : `phorumtest`
        # --------------------------------------------------------
        
        #
        # Tabellenstruktur für Tabelle `forum_usergroup`
        #
        
        CREATE TABLE forum_usergroup (
          user_group tinyint(4) NOT NULL default '0',
          group_id varchar(255) NOT NULL default '',
          group_name varchar(255) NOT NULL default '',
          cat_erstellen tinyint(4) NOT NULL default '0',
          cat_aendern tinyint(4) NOT NULL default '0',
          cat_loeschen tinyint(4) NOT NULL default '0',
          forum_erstellen tinyint(4) NOT NULL default '0',
          forum_aendern tinyint(4) NOT NULL default '0',
          forum_loeschen tinyint(4) NOT NULL default '0',
          user_erstellen tinyint(4) NOT NULL default '0',
          user_aendern tinyint(4) NOT NULL default '0',
          user_loeschen tinyint(4) NOT NULL default '0',
          user_freischalten tinyint(4) NOT NULL default '0',
          user_sperren tinyint(4) NOT NULL default '0',
          user_profil_alle tinyint(4) NOT NULL default '0',
          user_profil tinyint(4) NOT NULL default '0',
          post_erstellen tinyint(4) NOT NULL default '0',
          post_aendern tinyint(4) NOT NULL default '0',
          post_loeschen tinyint(4) NOT NULL default '0',
          post_lesen tinyint(4) NOT NULL default '0',
          post_verschieben tinyint(4) NOT NULL default '0',
          post_schliessen tinyint(4) NOT NULL default '0',
          post_aendern_alle tinyint(4) NOT NULL default '0',
          ankuendigung_erstellen tinyint(4) NOT NULL default '0',
          ankuendigung_aendern tinyint(4) NOT NULL default '0',
          ankuendigung_loeschen tinyint(4) NOT NULL default '0',
          ankuendigung_lesen tinyint(4) NOT NULL default '0',
          post_wichtig tinyint(4) NOT NULL default '0',
          forum_suchen tinyint(4) NOT NULL default '0',
          profil_lesen tinyint(4) NOT NULL default '0',
          mail_user tinyint(4) NOT NULL default '0',
          pm_user tinyint(4) NOT NULL default '0'
        ) TYPE=MyISAM;
        
        #
        # Daten für Tabelle `forum_usergroup`
        #
        
        INSERT INTO forum_usergroup VALUES (1, 'gast', 'Gast', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0);
        INSERT INTO forum_usergroup VALUES (2, 'user_un', 'User nocht nicht aktiviert', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0);
        INSERT INTO forum_usergroup VALUES (3, 'user_reg', 'User registriert und frei geschaltet', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1);
        INSERT INTO forum_usergroup VALUES (4, 'mod', 'Moderator', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1);
        INSERT INTO forum_usergroup VALUES (5, 'admin', 'Administrator', 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
        Und das ist die Tabelle mit den User
        Code:
        # phpMyAdmin MySQL-Dump
        # version 2.2.6-rc1
        # [url]http://phpwizard.net/phpMyAdmin/[/url]
        # [url]http://phpmyadmin.sourceforge.net/[/url] (download page)
        #
        # Host: localhost
        # Erstellungszeit: 01. Oktober 2002 um 15:09
        # Server Version: 3.23.38
        # PHP-Version: 4.2.1
        # Datenbank : `phorumtest`
        # --------------------------------------------------------
        
        #
        # Tabellenstruktur für Tabelle `forum_user`
        #
        
        CREATE TABLE forum_user (
          id int(4) NOT NULL auto_increment,
          user_name varchar(255) NOT NULL default '',
          user_pass varchar(255) NOT NULL default '',
          user_email varchar(255) NOT NULL default '',
          user_brith date NOT NULL default '0000-00-00',
          user_city varchar(255) NOT NULL default '',
          user_signatur text NOT NULL,
          user_job text NOT NULL,
          user_hobby text NOT NULL,
          user_last datetime NOT NULL default '0000-00-00 00:00:00',
          user_first datetime NOT NULL default '0000-00-00 00:00:00',
          user_activ enum('0','1') NOT NULL default '0',
          user_hits tinyint(5) NOT NULL default '0',
          user_title varchar(255) NOT NULL default '',
          user_avatar varchar(255) NOT NULL default '',
          user_group enum('gast','user_un','user_reg','mod','admin') NOT NULL default 'user_un',
          user_www varchar(255) NOT NULL default '',
          user_icq varchar(255) NOT NULL default '',
          user_aol varchar(255) NOT NULL default '',
          user_yahoo varchar(255) NOT NULL default '',
          PRIMARY KEY  (id,user_email)
        ) TYPE=MyISAM;
        
        #
        # Daten für Tabelle `forum_user`
        #
        
        INSERT INTO forum_user VALUES (1, 'wotan', 'pebbles', 'Webmaster@domain.com', '0000-00-00', '', '', '', '', '2002-09-30 20:27:26', '2002-09-01 09:24:29', '1', 0, '', '', 'admin', '', '', '', '');
        INSERT INTO forum_user VALUES (176, 'tabata', 'pebbles', 'gibt@es.nicht', '0000-00-00', '', '', '', '', '2002-09-30 20:46:48', '2002-09-30 20:30:29', '0', 0, '', '', '', '', '', '', '');
        Doch nun weiß ich nicht mehr weiter.
        *winks*
        Gilbert
        ------------------------------------------------
        Hilfe für eine Vielzahl von Problemen!!!
        http://www.1st-rootserver.de/

        Kommentar


        • #19
          Ich benutze folgendes Script für die Login-Auth:
          PHP-Code:
          <?
          session_start();
          if (session_is_registered("myuser") && session_is_registered("mypass"))
              {
              $user = $myuser;
              $passwort = $mypass;
              }
          include("../inc/db_data.inc.php");
          $res = mysql_query("select *,DATE_FORMAT(user_last,'%d.%m.%y um %H:%i') AS last from forum_user where (user_name='$user') and (user_pass='$passwort')");
          $num = mysql_num_rows($res);

          if ($num == 0)
              {
              // kein User, zurück zum Login
              $login_flag = false;
              $gruppe = gast;
              }
          else
              {
              // Anmeldung war erfolgreich, jetzt den Krempel als Session speichern, falls noch nicht passiert
              if (!session_is_registered("myuser") && !session_is_registered("mypass"))
                  {
                  session_register("myuser","mypass");
                  $myuser = $user;
                  $mypass = $passwort;
                  }
              $datum = date("Y-m-d H:i:s");
              $ret = mysql_query("UPDATE forum_user SET user_last='$datum' WHERE user_name='$user'");
              $i=0;
              $gruppe = mysql_result($res, 0, "user_group"); // welche Gruppe ist der User
              $last_log = mysql_result($res, 0, "last"); // wann das lette Mal angemeldet
              $login_flag = true;
              }
          ?>
          Das einloggen und ausloggen geht ja. Nur bekomme ich es nicht hin die Foren so abzusichern das nur das Recht zieht welches auch gebraucht wird.

          Soll heissen:
          User 1 ist user_reg
          Er darf also nicht in ein Moderatoren-Forum.

          Hingegen
          User 2(mod) und User 3(Admin) in diese Forum rein dürfen.
          *winks*
          Gilbert
          ------------------------------------------------
          Hilfe für eine Vielzahl von Problemen!!!
          http://www.1st-rootserver.de/

          Kommentar


          • #20
            wo holst du denn das Recht, welches der User hat?

            Bei mir passiert das so:

            - User kommt aufs Board => wird kontrolliert ob er mindestens 1 Forum sehen darf
            - wenn ja wird ihm die Übersicht angezeigt, mit allen die er sehen darf

            - wenn er ein Forum betritt, wird das Recht in diesem Forum ermittelt, und danach entscheided sich was er in diesem Forum machen darf
            TBT

            Die zwei wichtigsten Regeln für eine berufliche Karriere:
            1. Verrate niemals alles was du weißt!


            PHP 2 AllPatrizier II Browsergame

            Kommentar


            • #21
              hab mir jetzt nicht die ganzen beiträge durchgelesen, aber da fällt mir so spontan ein:

              kanns du die ränge nicht einfach als integer speichern ?
              1=ottonormaluser
              2=mod
              3=supermod
              4=admin...

              if ($status>1) {
              //mod forum
              }
              else {
              //normal

              }

              if($status>3){
              //admin einstellung
              }

              meine Projekte bestaunen: http://www.kleiza.de

              Kommentar


              • #22
                Hast du die Mail schon bekommen?
                *winks*
                Gilbert
                ------------------------------------------------
                Hilfe für eine Vielzahl von Problemen!!!
                http://www.1st-rootserver.de/

                Kommentar


                • #23
                  Wie jetzt? Bahnhof???
                  *winks*
                  Gilbert
                  ------------------------------------------------
                  Hilfe für eine Vielzahl von Problemen!!!
                  http://www.1st-rootserver.de/

                  Kommentar


                  • #24
                    Original geschrieben von Wotan
                    Wie jetzt? Bahnhof???
                    meinste mich damit ?
                    meine Projekte bestaunen: http://www.kleiza.de

                    Kommentar


                    • #25
                      Ja, Campus
                      *winks*
                      Gilbert
                      ------------------------------------------------
                      Hilfe für eine Vielzahl von Problemen!!!
                      http://www.1st-rootserver.de/

                      Kommentar


                      • #26
                        was verstehst denn daran nicht ?
                        $status=0 // gast
                        $status=1 //ottonormaluser
                        $status=2 //mod
                        $status=3 //supermod
                        $status=4 //admin...

                        if ($status<1) {
                        //nur lesen, und vielleicht fake forums
                        }
                        elseif ($status>0 and $status<4){
                        //normal
                        }
                        elseif($status>3){
                        //admin einstellung
                        }

                        irgendwie so

                        keine ahnung, hab auch noch nie mit rechte gearbeitet
                        meine Projekte bestaunen: http://www.kleiza.de

                        Kommentar


                        • #27
                          Mail habe ich bekommen.
                          TBT

                          Die zwei wichtigsten Regeln für eine berufliche Karriere:
                          1. Verrate niemals alles was du weißt!


                          PHP 2 AllPatrizier II Browsergame

                          Kommentar


                          • #28
                            @Campus

                            Und da liegt der Hund begraben. Diese Art ist nicht dynamisch und lässt sich nur sehr schwer anpassen wenn eine Neue USer-Gruppe hinzukommt. Und darum geht es mir ja.

                            Wenn du das Posting an anfang gelesen hast, hättest du auch gelesen das ich genau deinen Vorschlag vermeiden will. Aber nichts für ungut. Danke dir noch mal für deinen Tip.
                            *winks*
                            Gilbert
                            ------------------------------------------------
                            Hilfe für eine Vielzahl von Problemen!!!
                            http://www.1st-rootserver.de/

                            Kommentar


                            • #29
                              Und was sagt einer der schon ein Forum geproggt hat dazu?
                              *winks*
                              Gilbert
                              ------------------------------------------------
                              Hilfe für eine Vielzahl von Problemen!!!
                              http://www.1st-rootserver.de/

                              Kommentar


                              • #30
                                noch schön schnell, mal sehen wie es aussieht, wenn alle Funktionen drin sind.

                                Wo hostest du denn ? Ich brauch auch so einen schnellen Server
                                TBT

                                Die zwei wichtigsten Regeln für eine berufliche Karriere:
                                1. Verrate niemals alles was du weißt!


                                PHP 2 AllPatrizier II Browsergame

                                Kommentar

                                Lädt...
                                X