Προς το περιεχόμενο
  • 0

Μαζική επεξεργασία με μία φόρμα


L34x88iT

Ερώτηση

Καλησπέρα. Έχω φτιάξει ένα πίνακα στην βάση για να παίρνω κάποιες τιμες (σαν settings) δικαιωμάτων. Μετά με μία function που δίνω σαν παράραμετρο το id του permission, παίρνω απάντηση των ρόλο, οπού 1 είναι διαχειριστής, 2 Αρχισυντάκτης, 3 Συντάκτης. Μέσα στην function συγκρίνω τον ρόλο του χρήστη με αυτό του permission και αν έχει δικαιώματα παίρνω true, αλλιώς false.

===================

πχ
 

permissionId | PermissionTitle | PermissionMinRole
1 | Write_article | 3
2 | Edit_article | 3
3 | Publish_article | 2
4 | Add_author | 1

Όλα τα παραπάνω δουλεύουν μια χαρά, απλά τα έγραψα για να έχετε μια εικόνα στο πρόβλημα που θα γράψω παρακάτω.

Στον πίνακα αυτόν έχω βάλει γύρω στα 80 permissions. Μετά έχω βάλει την function σε όλα τα σημεία που θέλω να ελέγξω. Σε πολλες σελίδες. Το πρόβλημα που αντιμετώπισα τώρα και δεν το είχα σκεφθεί, είναι που θέλω να φτιάξω μία φόρμα html για να αλλάζω τα δικαιώματα αυτά. Όμως το κάθε permission είναι και ένα διαφορετικό row.

====================

Αν το είχα κάνει εξαρχής σε ένα row, δηλαδή
 

id | Write_article | Edit_article | Publish_article | Add_aythor
1 | 3 | 3 | 2 | 1 

Δεν θα είχα πρόβλημα γιατί θα έπερνα τα post από την φόρμα και θα τα έβαζα με

$data = array('
"Write_article" => 3,
"Edit_article" => 3,
"Publish_article" => 2,
"Add_author" => 1
')

......where('id',1);
......insert('permissions',$data);

====================

Τώρα όμως; υπάρχει λύση, ωστε να μην τα φτιάξω από την αρχή και φυσικά να μην χρειαστεί να φτιάξω 80 φόρμες;

====================

Υ.Γ. Μια άλλη λύση σκέφτηκα να παίρνω όλα τα ποστ από την φόρμα στο κοντρολερ και μετα να κανω 80 φορές το βήμα:
 

$data = array('"Write_article" => 3')
......where('id',1);
......insert('permissions',$data);

$data = array('"Edit_article" => 3')
......where('id',2);
......insert('permissions',$data);

$data = array('"Publish_article" => 3')
......where('id',3);
......insert('permissions',$data);

κλπ κλπ

Αλλά δεν μου φαίνεται και αυτός καλός τρόπος. Έχετε να προτείνετε κάτι άλλο;

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Προτεινόμενες αναρτήσεις

  • 0

Δε καταλαβαίνω γιατί χρειάζεσαι 80 (!!!!) διαφορετικά permissions - anyway, εγώ θα έπαιζα με Bitwise Operators. Δηλαδή:

permissionId | PermissionTitle | PermissionMinRole | weight
1    | READ            | 1 | 1
2    | WRITE          | 1 | 2
3    | DELETE        | 1 | 4
4    | EDIT             | 1 | 8
...

όπου το weight είναι σε δύναμη του 2, μοναδικό για κάθε γραμμή. Οπότε, σε κάθε χρήστη έχεις ένα μόνο πεδίο permissions, όπου η τιμή του είναι το αποτέλεσμα του (permission1.weight + permission2.weight + permission3.weight & ...)

πχ, για δικαιώματα read + write + delete, στη γραμμή του χρήστη θα έβαζες 1 + 2 + 4 = 7, το οποίο σε δυαδικό είναι το 00001011. Σε αυτή τη περίπτωση, κάθε '1' στο δυαδικό είναι και ένα permission. Έτσι, για να δεις αν μπορεί να διαβάσει, πρέπει να βρεις το αποτέλεσμα του (00001011 & 00000001) - εδώ σου δίνει αποτέλεσμα '1', οπότε έχει άδεια για READ. Για DELETE από την άλλη, έχεις: (00001011 & 00000100) = 0, οπότε ΔΕΝ έχει δικαίωμα για DELETE

Για να δεις αν ο χρήστης μπορεί πχ να διαβάσει, κάνεις τον έλεγχο:

<?php 
if (($user_permissions & $weight['READ']) == $weight['READ'])
	return true;
else
	return false;

?>

 

  • Thanks 1
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Αν και ψιλομπερδευτηκα, θα το κοιταξω ομως εκτενεστερα να συλλαβω τον τροπο σκεψης.

Μην ξεχνας ομως οτι θελω να βαλω δικαιωματα σε ομαδες μελων και οχι σε μεμονωμενα μελη. Αυτη την στιγμη εχω περιπου 250 μελη που θελω να τα χωρισω σε 3-4 κατηγοριες δικαιωματων. Επισης αν εχω γυρω στα ογδοντα διαφορετικα ειδη περμισιονς, δεν ξερω που θα φτασουν τα νουμερα με την δυναμη του 2

 

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Εγώ πάλι δεν καταλάβα την ερώτηση. Για να κάνεις update έναν πίνακα στην database πάντα μία φόρμα χρησιμοποιείς ανεξάρτητα των αριθμό των εγγραφών που έχει 1 ή 1000000. Όταν δηλαδή πχ καλείς το url /permission/update/3 η φόρμα φορτώνει και μπορείς να αλλάξεις την εγγραφή με  id 3.

 

 

  • Thanks 1
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0
Στις 31/3/2021 στις 8:50 ΜΜ, L34x88iT είπε

Στον πίνακα αυτόν έχω βάλει γύρω στα 80 permissions. Μετά έχω βάλει την function σε όλα τα σημεία που θέλω να ελέγξω. Σε πολλες σελίδες. Το πρόβλημα που αντιμετώπισα τώρα και δεν το είχα σκεφθεί, είναι που θέλω να φτιάξω μία φόρμα html για να αλλάζω τα δικαιώματα αυτά. Όμως το κάθε permission είναι και ένα διαφορετικό row.

 

Στις 31/3/2021 στις 8:50 ΜΜ, L34x88iT είπε

Έχω φτιάξει ένα πίνακα στην βάση για να παίρνω κάποιες τιμες (σαν settings) δικαιωμάτων. Μετά με μία function που δίνω σαν παράραμετρο το id του permission, παίρνω απάντηση των ρόλο, οπού 1 είναι διαχειριστής, 2 Αρχισυντάκτης, 3 Συντάκτης.

Δηλαδή θέλεις πχ το 1 - διαχειριστής να το κάνεις update και να γίνει 1 - apache helicopter ?

Στη φόρμα html τι ακριβώς θα εισάγεις;

  • Thanks 1
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0
Δημοσ. (επεξεργασμένο)
17 ώρες πριν, k33theod είπε

Εγώ πάλι δεν καταλάβα την ερώτηση. Για να κάνεις update έναν πίνακα στην database πάντα μία φόρμα χρησιμοποιείς ανεξάρτητα των αριθμό των εγγραφών που έχει 1 ή 1000000. Όταν δηλαδή πχ καλείς το url /permission/update/3 η φόρμα φορτώνει και μπορείς να αλλάξεις την εγγραφή με  id 3.

Καλησπέρα. 

Εστω οτι έχω ένα πίνακα permissions 

image.png.f5af24ed74a5bb3c894fefcb58972a68.png

Ας μην ασχοληθούμε με το πως δουλεύει γιατί δουλεύει όπως θέλω ακριβώς. Ας εστιάσουμε στο edit του πίνακα από την φόρμα μου. Εννοείται οτι θέλει μία φόρμα αν πρόκειται να γίνει Edit 1 row. Εγώ μιλάω για όλο τον πίνακα αν μπορεί να γίνει με μία φόρμα. Για παράδειγμα θέλω να αλλάζω το PermissionMinRole μου στο παραπάνω πίνακα με την παρακάτω φόρμα.

image.png.e7f326ce3aff9c1c673ce00d1c2bb0bf.png 

==========================================

Το ξέρω οτι αν είχα κάνει τον πινακά μου έτσι

image.png.b3d9ec4e331f57397bc8d467ce3eb9f3.png

Δεν θα είχα πρόβλημα γιατί με την μία φόρμα μου θα άλλαζα πάντα τις τιμές του row #1

===========================================

Πείτε μου αν έγινα πιο κατανοητός...

Επεξ/σία από L34x88iT
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Δυστηχώς όχι

Γενικά παντώς ισχύει ότι κάθε model πχ  Post (αν καταλαβαίνω καλά τι είναι το Post) έχει 4 permission read write update delete (μπορεί να τα δεις και αλλιώς view create klp) που αντιστοιχούν στο select, insert,  update, kai delete της sql και αυτά ορίζόνται για κάθε role.

Tα models και τα roles  (συντάκτης px) σε επίπεδο permission είναι μια σχέση many to many. 

Οπότε στή φόρμα όταν κάνεις insert επιλέγεις το model το role και τα 4 permissions. Οταν κάνει update παίρνεις από τη βάση το authorization για Article kai sintakti px το αλλάζεις και το σωζεις.

Αυτή είναι μια εικόνα από το admin panel του django για authorization. Επιλέγω πάνω τον role px Markler και κάτω για κάθε model του ορίζω το καθένα από read write update delete 

 

authorization.PNG

  • Like 1
  • Thanks 1
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0
Δημοσ. (επεξεργασμένο)
18 ώρες πριν, L34x88iT είπε

Ας μην ασχοληθούμε με το πως δουλεύει γιατί δουλεύει όπως θέλω ακριβώς.

Με την υπάρχουσα δομή του πίνακα permissions, κάθε Permission μπορεί να ανήκει μόνο σε ένα Role. Αυτό είναι που θέλεις; Τι θα κάνεις αν δυο Roles θα χρειαστεί να διαθέτουν το ίδιο Permission; θα επαναλάβεις το PermissionTitle σε μια νέα εγγραφή με άλλο PermissionId;

Κανονικά, χρειάζεσαι έξτρα πίνακα συνένωσης των permissions και των roles με σχέση many-to-many, όπως ακριβώς τα λέει ο k33theod παραπάνω.

Τέλος πάντων, έτσι  όπως το έχεις, σε SQL, θα μπορούσες να πεις:

UPDATE permissions

SET PermissionMinRole=2

WHERE PermissionId IN(2, 3, 5, 6)

 

18 ώρες πριν, L34x88iT είπε

Το ξέρω οτι αν είχα κάνει τον πινακά μου έτσι

 

Αυτό δεν είναι πίνακας. Αυτό είναι spreadsheet.

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

 

Επεξ/σία από MastroGiannis
  • Thanks 1
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0
3 ώρες πριν, MastroGiannis είπε

Με την υπάρχουσα δομή του πίνακα permissions, κάθε Permission μπορεί να ανήκει μόνο σε ένα Role. Αυτό είναι που θέλεις; Τι θα κάνεις αν δυο Roles θα χρειαστεί να διαθέτουν το ίδιο Permission; θα επαναλάβεις το PermissionTitle σε μια νέα εγγραφή με άλλο PermissionId;

Δεν βάζω permissions σε roles. Στην ουσία δηλώνω από ποιο role και πάνω θα έχει δικαιώματα κάποιος. Δηλαδή αν στο Edit title έχω το 2 σημαίνει οτί έχουν δικαιώματα όσοι ο ρόλος τους είναι ισο ή κάτω από 2. Δηλαδή οι διαχειριστές(1) και οι αρχισυντάκτες(2) ενώ οι συντάκτες(3) και οι συνδρομητές(4) δεν έχουν. Δηλαδή δίνω permission οταν (UserRole <= PermissionMinRole). Ξέρω οτι ίσως δεν είναι ο καλύτερος τρόπος αλλά μου δουλεύει μια χαρά.  

3 ώρες πριν, MastroGiannis είπε

Κανονικά, χρειάζεσαι έξτρα πίνακα συνένωσης των permissions και των roles με σχέση many-to-many, όπως ακριβώς τα λέει ο k33theod παραπάνω.

Τέλος πάντων, έτσι  όπως το έχεις, σε SQL, θα μπορούσες να πεις:

UPDATE permissions

SET PermissionMinRole=2

WHERE PermissionId IN(2, 3, 5, 6)

Ευχαριστώ φίλε θα το προσαρμόσω και θα το δοκιμάσω έτσι 

3 ώρες πριν, MastroGiannis είπε

Αυτό δεν είναι πίνακας. Αυτό είναι spreadsheet.

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

 

Ναι για να εμφανίσω κάπως τι έννοω το έφτιαξα αυτό στο excel. Για παράδειγμα

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0
7 ώρες πριν, L34x88iT είπε

Ναι για να εμφανίσω κάπως τι έννοω το έφτιαξα αυτό στο excel. Για παράδειγμα

Συγγνώμη, δεν ήμουν εγώ σαφής. Εννοούσα δομή δεδομένων τύπου "spreadsheet", κάτι το οποίο θα πρέπει να αποφύγεις οπωσδήποτε. Αν έχεις τα δεδομένα σε μορφή πεδίων (fields) αντί εγγραφών (records), σε κάθε προσθαφαίρεση permissions θα αναγκάζεσαι σε τροποποίηση της δομής του πίνακα (ALTER TABLE) με ό,τι αυτό συνεπάγεται.

7 ώρες πριν, L34x88iT είπε

Δεν βάζω permissions σε roles. Στην ουσία δηλώνω από ποιο role και πάνω θα έχει δικαιώματα κάποιος.

Χμ… Είναι λοιπόν ιεραρχική η προσέγγισή σου, γι’ αυτό δεν σ’ "έπιασα" από την αρχή. Ενδιαφέρουσα φαίνεται και ίσως απλοποιεί τις περαιτέρω διαδικασίες, δεν ξέρω όμως τι παγίδες πιθανόν να κρύβει στην πράξη. Για παράδειγμα, πόσο δύσκολη θα είναι η διασφάλιση της ιεραρχίας των ρόλων, αφού το κριτήριο είναι απλά αριθμητικό. Ένας ρόλος με id (ή rank) 0 για παράδειγμα, διαθέτει όλα τα δικαιώματα. Ίσως τα πιο έμπειρα μέλη να έχουν κάποια γνώμη επί τούτου.

7 ώρες πριν, L34x88iT είπε

Ευχαριστώ φίλε θα το προσαρμόσω και θα το δοκιμάσω έτσι 

Να ‘σαι καλά!

Θεωρώ πάντως πως η φόρμα σου θέλει άλλο στήσιμο για να εκμεταλλευτείς το UPDATE που πρότεινα, διότι επενεργεί σε πολλά permissions για ένα συγκεκριμένο role κάθε φορά (κάθε POST). Εφόσον, λογικά, οι ρόλοι είναι πολύ λιγότεροι από τα δικαιώματα, ένα dropdown για τον ρόλο και μια λίστα για τα δικαιώματα θα ήταν πιο «λογική» και λειτουργική υλοποίηση, όπως αυτή που παραθέτει ο k33theod παραπάνω.

 

Καλή συνέχεια!

  • Thanks 1
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0
Στις 3/4/2021 στις 9:43 ΜΜ, MastroGiannis είπε

Χμ… Είναι λοιπόν ιεραρχική η προσέγγισή σου, γι’ αυτό δεν σ’ "έπιασα" από την αρχή. Ενδιαφέρουσα φαίνεται και ίσως απλοποιεί τις περαιτέρω διαδικασίες, δεν ξέρω όμως τι παγίδες πιθανόν να κρύβει στην πράξη. Για παράδειγμα, πόσο δύσκολη θα είναι η διασφάλιση της ιεραρχίας των ρόλων, αφού το κριτήριο είναι απλά αριθμητικό. Ένας ρόλος με id (ή rank) 0 για παράδειγμα, διαθέτει όλα τα δικαιώματα. Ίσως τα πιο έμπειρα μέλη να έχουν κάποια γνώμη επί τούτου.

Θα προσπαθήσω να αλλάξω την διαδικασία. Απλά μέχρι τότε επειδη με τρόμαξε αυτό που λες, μάλλον εννοείς αν ο ρόλος δεν είναι σεταρισμένος ή αν είναι NULL(0) εννοείς μάλλον ε? Απλά στην function που ελέγχει τα permissions δεν έχω βάλει μόνο την σύγκριση του role με τοπ permissionMinRole αλλά με ένα AND έχω βάλει και το role να είναι πάνω από 1. 

Επαναλαμβάνω οτι θα το αλλάξω το τρόπο όπως μου είπατε, απλά μέχρι τότε αν με καλύπτει αυτό που λέω παραπάνω

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0
4 ώρες πριν, L34x88iT είπε

Επαναλαμβάνω οτι θα το αλλάξω το τρόπο όπως μου είπατε, απλά μέχρι τότε αν με καλύπτει αυτό που λέω παραπάνω

Αν η συγκεκριμένη Function είναι το μοναδικό σημείο άντλησης της πληροφορίας, τότε ναι, ίσως μπορείς να διασφαλίσεις το τι θα βγαίνει προς τα έξω. Όπως βλέπεις όμως, ο τρόπος αυτός είναι "λογικός" και απαιτεί πολλαπλούς λογικούς ελέγχους στα αιτήματα, ενώ, ο προτεινόμενος τρόπος είναι "ρεαλιστικός", με την έννοια ότι, ανεξάρτητα από τον τρόπο (Function ή Query), παίρνεις μόνο ό,τι είναι αποθηκευμένο.

Να σημειώσω ότι δεν έχω καμία εμπειρία σε θέματα ασφάλειας και ότι απλά καταθέτω τις σκέψεις μου.

  • Thanks 1
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0
Στις 2/4/2021 στις 4:12 ΜΜ, L34x88iT είπε

Καλησπέρα. 

Εστω οτι έχω ένα πίνακα permissions 

image.png.f5af24ed74a5bb3c894fefcb58972a68.png

Ας μην ασχοληθούμε με το πως δουλεύει γιατί δουλεύει όπως θέλω ακριβώς. Ας εστιάσουμε στο edit του πίνακα από την φόρμα μου. Εννοείται οτι θέλει μία φόρμα αν πρόκειται να γίνει Edit 1 row. Εγώ μιλάω για όλο τον πίνακα αν μπορεί να γίνει με μία φόρμα. Για παράδειγμα θέλω να αλλάζω το PermissionMinRole μου στο παραπάνω πίνακα με την παρακάτω φόρμα.

image.png.e7f326ce3aff9c1c673ce00d1c2bb0bf.png 

==========================================

Το ξέρω οτι αν είχα κάνει τον πινακά μου έτσι

image.png.b3d9ec4e331f57397bc8d467ce3eb9f3.png

Δεν θα είχα πρόβλημα γιατί με την μία φόρμα μου θα άλλαζα πάντα τις τιμές του row #1

===========================================

Πείτε μου αν έγινα πιο κατανοητός...

Ξέρω ότι είπες ότι δεν θές να αλλάξεις πολύ την δομή που έχεις φτιάξει αλλά θεωρώ ότι θα ήταν καλύτερος τρόπος:

1)Να φτιάξεις ένα πίνακα με ρόλους (Αρχισυντάκτης , Συντάκτης , Διαχειριτής , Απλός χρήστης )

2) Να φτιάξεις έναν πίνακα που να έχει απλά τον κουβά με όλα τα δικαιώματα που έχεις

3) Να έχεις έναν πίνακα με τους χρήστες και τον ρόλο που έχει ο κάθε χρήστης

4) Να φτιάξεις έναν πίνακα που να περιέχει τα δικαιώματα που έχει ο κάθε ρόλος

Με την παραπάνω δομή θα μπορείς να αλλάζεις τα δικαιώματα μόνο στους ρόλους και θα τα κληρονομούν οι υπόλοιποι. Επίσης θα μπορείς να έχεις έναν χρήστη που δεν ανήκει σε κάποιο ρόλο και του έχεις δώσει απλά κάποια συγκεκριμένα δικαιώματα

Ξέρω ότι δεν θέλεις να κάνεις τέτοιες αλλαγές απλά είπα να στο γράψω να το έχεις σαν πιθανή δομή σε επόμενο project

  • Thanks 1
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0
Δημοσ. (επεξεργασμένο)
17 ώρες πριν, tsofras είπε

Ξέρω ότι είπες ότι δεν θές να αλλάξεις πολύ την δομή που έχεις φτιάξει αλλά θεωρώ ότι θα ήταν καλύτερος τρόπος:

1)Να φτιάξεις ένα πίνακα με ρόλους (Αρχισυντάκτης , Συντάκτης , Διαχειριτής , Απλός χρήστης )

2) Να φτιάξεις έναν πίνακα που να έχει απλά τον κουβά με όλα τα δικαιώματα που έχεις

3) Να έχεις έναν πίνακα με τους χρήστες και τον ρόλο που έχει ο κάθε χρήστης

4) Να φτιάξεις έναν πίνακα που να περιέχει τα δικαιώματα που έχει ο κάθε ρόλος

Με την παραπάνω δομή θα μπορείς να αλλάζεις τα δικαιώματα μόνο στους ρόλους και θα τα κληρονομούν οι υπόλοιποι. Επίσης θα μπορείς να έχεις έναν χρήστη που δεν ανήκει σε κάποιο ρόλο και του έχεις δώσει απλά κάποια συγκεκριμένα δικαιώματα

Ξέρω ότι δεν θέλεις να κάνεις τέτοιες αλλαγές απλά είπα να στο γράψω να το έχεις σαν πιθανή δομή σε επόμενο project

Χωρίς να θέλω να προσβάλλω τους προηγούμενους που σιγουρα έχουν 100% δίκιο (Στο μυαλό μου δεν μπορώ να συλλάβω ακόμα τον τρόπο που λέτε (οπως δεν μπορεσα ποτέ να αντιληφθώ καλά τους αναδρομικούς αλγόριθμους που κάναμε στη σχολή 😄)), στο μυαλό μου μου έρχεται πιο καλά αυτή η *λύση!

*Μπορεί να είναι σχεδόν το ίδιο με αυτό που λένε οι προηγούμενοι, τώρα το κατάλαβα λίγο καλύτερα...

Επεξ/σία από L34x88iT
  • Thanks 1
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Το 1ο νομίζω που κάνεις λάθος και ξεκίνησε το θέμα και δεν ξέρω αν ακόμη είναι ξεκάθαρο, είναι ότι με λάθος φορμα προσπαθείς να αλλάξεις κάποιον πίνακα στην database

Η φόρμα με τον πίνακα πρέπει να είναι σε αντιστοιχεία. Αν Θέλω να αλλάξω πίνακα που έχει permission_id, permission_title, permission_role, κάνω μια φόρμα που έχει όλα ή κάποια από αυτά τα στοιχεία και τα αλλάζω. Η φόρμα μου δηλαδή πρέπει απλά να έχει επιλογές για permission_title και permission_role. 

Εφόσον λοιπόν όπως λες το σύστημα authorization που έχεις λειτουργεί, και το πρόβλημα είναι να κάνεις edit τον πίνακα με φόρμα, κάνεις την σωστή φόρμα και τέλος.

Αυτά που λέει ο tsofras είναι σωστά  και είναι ένα τυπικό σύστημα. Μόνο αυτό με το κληρονομεί δεν κατάλαβα 😃

 

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0
1 ώρα πριν, k33theod είπε

Το 1ο νομίζω που κάνεις λάθος και ξεκίνησε το θέμα και δεν ξέρω αν ακόμη είναι ξεκάθαρο, είναι ότι με λάθος φορμα προσπαθείς να αλλάξεις κάποιον πίνακα στην database

Η φόρμα με τον πίνακα πρέπει να είναι σε αντιστοιχεία. Αν Θέλω να αλλάξω πίνακα που έχει permission_id, permission_title, permission_role, κάνω μια φόρμα που έχει όλα ή κάποια από αυτά τα στοιχεία και τα αλλάζω. Η φόρμα μου δηλαδή πρέπει απλά να έχει επιλογές για permission_title και permission_role. 

Εφόσον λοιπόν όπως λες το σύστημα authorization που έχεις λειτουργεί, και το πρόβλημα είναι να κάνεις edit τον πίνακα με φόρμα, κάνεις την σωστή φόρμα και τέλος.

Αυτά που λέει ο tsofras είναι σωστά  και είναι ένα τυπικό σύστημα. Μόνο αυτό με το κληρονομεί δεν κατάλαβα 😃

 

Η γενική έννοια περί κληρονομικότητας

Έχω τον διαχειριστή που έχει δικαίωμα read , write , delete

Έχω τον χρήστη admin που έχει ρόλο διαχειριστή οπότε "κληρονομεί" τα δικαιώματα read , write , delete.

Απλά με τον τρόπο που λέω εγώ θα μπορούσες να φτιάξεις τον χρήστη superAdmin που θα έχει τον ρόλο του admin (read,write,delete) και να του δώσεις και ένα ξεχωριστό δικαίωμα που δεν το έχει κανένας άλλος ρόλος.

Ελπίζω να έγινα κατανοητός :D

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.