Users kai dikaiomata...

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
p_pan
Δημοσιεύσεις: 1248
Εγγραφή: 11 Φεβ 2007 20:45
Τοποθεσία: Άστεγος!

Users kai dikaiomata...

Δημοσίευση από p_pan » 18 Νοέμ 2007 06:29

hello 8a h8ela na ma8o gia ta dikaiomata pou kai pos mporeis na ta pros8etis se ka8e xristi...
dld...
mesa stin basi exete mia akoma eggrafi kai ka8orizete an einai admin h an einai user.????????
kai mesa stin selida me mia if otan einai admin emfanizonte perisotera kai otan den einai ligotera??? e??? h uparxi kapoios allos tropos..?
Αγράματος...

Άβαταρ μέλους
alexandr0s
Δημοσιεύσεις: 1064
Εγγραφή: 25 Απρ 2006 17:16
Τοποθεσία: localhost
Επικοινωνία:

Users kai dikaiomata...

Δημοσίευση από alexandr0s » 18 Νοέμ 2007 10:01

Είναι πολλοί οι τρόποι που μπορείς να υλοποιήσεις το συγκεκριμένο θέμα. Μια λύση είναι έχεις 2 κατηγορίες χρηστών (χρήστες και διαχειριστές, όπου τους ξεχωρίζεις με ένα πεδίο boolean πχ στη βάση) και ο άλλος τρόπος είναι να χρησιμοποιήσεις κάποιο MVC framework που να χρησιμοποιεί Access Control Lists. Τον δεύτερο τρόπο αν τον χρησιμοποιήσεις σωστά μπορείς να έχεις πλήρη έλεγχο και διαβάθμιση δικαιωμάτων.

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Users kai dikaiomata...

Δημοσίευση από cherouvim » 18 Νοέμ 2007 13:23

Αν είναι απλό το σύστημα σου ίσως σου φτάνει ένα bit/boolean που να δηλώνει οτι ο χρήστης είναι admin:

Κώδικας: Επιλογή όλων

mysql> select * from users;
+----+----------+----------------------------------+------+---------+--------------+---------+
| id | username | password                         | name | surname | email        | isAdmin |
+----+----------+----------------------------------+------+---------+--------------+---------+
|  1 | js       | b2adde8a9eec8ce92b5ee0507ce054a4 | John | Smith   | js@mail.com  |       1 |
|  2 | tom      | 029a4f30aabde4d235bf7f3fb7c1c29d | Tom  | Black   | tom@mail.com |       0 |
+----+----------+----------------------------------+------+---------+--------------+---------+
Σε ένα πιο πολύπλοκο σύστημα, με πολλούς ρόλους και workflow, ίσως θέλεις να τα βγάλεις έξω αυτά, σε άλλο table. Οπότε έχεις τους users χωρίς το isAdmin πεδίο:

Κώδικας: Επιλογή όλων

mysql> select * from users;
+----+----------+----------------------------------+------+---------+--------------+
| id | username | password                         | name | surname | email        |
+----+----------+----------------------------------+------+---------+--------------+
|  1 | js       | b2adde8a9eec8ce92b5ee0507ce054a4 | John | Smith   | js@mail.com  |
|  2 | tom      | 029a4f30aabde4d235bf7f3fb7c1c29d | Tom  | Black   | tom@mail.com |
+----+----------+----------------------------------+------+---------+--------------+
και ένα table με τους ρόλους:

Κώδικας: Επιλογή όλων

mysql> select * from user_roles;
+---------+-----------+
| user_id | role      |
+---------+-----------+
|       1 | ADMIN     |
|       1 | EDITOR    |
|       1 | PUBLISHER |
|       1 | CM        |
|       2 | CM        |
+---------+-----------+
Εδώ, αν είσαι πολύ τακτικός με τη βάση σου, το role field μπορεί να είναι τύπου enum.

Τώρα ο John Smith είναι admin, editor, publisher και content manager του site, ενώ ο Tom είναι μόνο content manager.

Αν θέλουμε όχι μόνο να δώσουμε ρόλους στους χρήστες, αλλά και δικαιώματα πάνω στα δεδομένα του συστήματος, θα πρέπει να έχουμε σύνδεση μεταξύ των δύο.

Ας υποθέσουμε οτι στο σύστημα διαχειριζόμαστε πολλά websites:

Κώδικας: Επιλογή όλων

mysql> select * from website_content_managements;
+---------+------------+-----------------------+
| user_id | website_id | receivesNotifications |
+---------+------------+-----------------------+
|       1 |          1 |                     1 |
|       1 |          2 |                     1 |
|       1 |          3 |                     0 |
|       1 |          4 |                     0 |
|       1 |          5 |                     0 |
|       1 |          6 |                     0 |
|       2 |          1 |                     0 |
|       2 |          2 |                     0 |
|       2 |          3 |                     1 |
+---------+------------+-----------------------+
Ο John Smith παίζει με 6 websites και ο Tom με τα 3 πρώτα. Επιπλέον έχουμε τη δυνατότητα για παραπάνω πληροφορίες σχετικά με αυτές τις διαχειρίσεις των websites. Πχ ο John πρέπει να λάβει ειδοποίηση αν κάτι αλλάξει στο website 1 και 2.

Άβαταρ μέλους
p_pan
Δημοσιεύσεις: 1248
Εγγραφή: 11 Φεβ 2007 20:45
Τοποθεσία: Άστεγος!

Users kai dikaiomata...

Δημοσίευση από p_pan » 18 Νοέμ 2007 19:33

euxaristo... malon 8a ho8etiso tin deuteri periptosi.... gt exo 3 katigories xriston...... opote h proti den 8a me kalipti... kai tora oso afora ton kodika... uparxi kapoios tropos gia to ti 8a emfanizete ston ka8ena h apla mia if.. pou na leei an einai admin emfanise auta kai an den einai min ta emfanizeis....

dld opos 8a kano to login me tin session etsi 8a balo mesa kai mia metabliti me to ti einai autos pou ekane login... kai apla 8a to trabao stin mainselida gia na douleuei h if??
Αγράματος...

Άβαταρ μέλους
Alice_Cooper
Δημοσιεύσεις: 1947
Εγγραφή: 11 Μάιος 2007 00:33
Τοποθεσία: Ioannina
Επικοινωνία:

Users kai dikaiomata...

Δημοσίευση από Alice_Cooper » 19 Νοέμ 2007 00:49

mporeis episeis na kaneis syndiasmo ton dio periptoseon ....
diladi na dineis mono mia timh sthn proth db ....
apla to 1 na eina admin
to 2 na exei ligotera perm... to 3 akoma poio liga ktl ....
h anapoda ... 5.4.3.2.1 apla na mhn einai bit/boolean
alla ena int diaraki gia na exeis pano apo 10 modes....
perisotera apo 99 apoklietai :p

oso gia to login tha kratas se session to username kai to mode...
kai tha emfanizeis h tha epitrepeis/apagoreveis alages sthn db
analoga me to mode

Άβαταρ μέλους
p_pan
Δημοσιεύσεις: 1248
Εγγραφή: 11 Φεβ 2007 20:45
Τοποθεσία: Άστεγος!

Users kai dikaiomata...

Δημοσίευση από p_pan » 19 Νοέμ 2007 03:28

ok katalaba ti paizei..... ego eftiaja ena kainourgio pinaka gt mazi me ta roles 8elo na apo8ikeuo kai akoma kati gia ton ka8e xristi... euxaristo.. an bro kapoia duskolia 8a stilo...
Αγράματος...

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες