Avatar billede goose Nybegynder
04. marts 2004 - 12:48 Der er 15 kommentarer og
2 løsninger

Brugerrettigheder m.v. i CMS system

Jeg har et CMS system som jeg gerne vil videreudvikle lidt på, men er løbet ind i nogle overvejelser som jeg håber der er nogle der vil være behjælpelige med at kaste lys over.

1.
Som systemet er i øjeblikket, så er det kun muligt for administratoren at være på administrationssiderne. Jeg vil gerne have lavet det således, at man kunne oprette flere brugere som hver især har adgang til at rette/redigerer/slette sider. Det skal være muligt for administratoren at tildele disse rettigheder for hver enkelt bruger til hver enkelt side, men da der hele tiden bliver tilføjet nye sider kan jeg ikke rigtig overskue hvordan jeg skal bygge databasen op ?

2.
Når nu punkt 1 er på plads, så skal det være sådan, at når en bruger redigerer en side, så skal der være lukket af så andre ikke kan redigerer samtidigt. lige netop dette kan jeg godt selv overskue, databasen skal blot opdateres når en bruger redigerer en side, men hvordan sikrer jeg mig, at denne bruger nu også logger rigtigt af således at databasen opdateres igen og andre kan redigerer ?
Et eksempel kunne være, at en redaktør pludselig mister strømmen eller netforbindelsen og så vil den pågældende side jo være låst for andre ....

Jeg sætter 200 point på højkant, ikke for komplette løsninger, men mere for en dialog/ideér til hvordan ovenstående kan løses.

Håber ikke spørgsmålene er alt for forvirrende ellers er i velkommen til at spørge løs.

/Goose
Avatar billede christian Nybegynder
04. marts 2004 - 13:21 #1
svar på 2:
Du kan ikke være sikker på at "siden" bliver logget rigtigt af...

Sådan som jeg plejer at lave det er ved hjælp af en redigeringslog
logID | sideID | datoklokkeslet | status | brugerID
Så hvis en side har status åben men det er en time siden den blev sat til åben, så ved jeg at det må være en bruger som ikke har "lukket/gemt" siden ordentligt
Avatar billede christian Nybegynder
04. marts 2004 - 13:28 #2
Ved hjælp af brugerID kan du også se om det er den samme bruger som prøver at redigere.
Hvis det er den samme bruger kan du være sikker på at siden ikke er åben/låst
Hvis det ikke er samme bruger kan du også sige "siden er låst af bruger: Søren klokken 12:45" etc

Når en bruger redigere en side skal du gøre ham opmærksom på at han skal trykke gem eller fortryd så du kan sætte status til "lukket"

En ting du kan kigge på er onbeforeunload (javascript)
Den bruger jeg med stor succes :-)
Avatar billede fennec Nybegynder
04. marts 2004 - 13:29 #3
1.
Jeg ville lave to tabeller til. UserEditPage og UserDelPage. heri sætter man et userid og pageid hvis man har tilledelse til at ændre/slette en side. Så skal du ikke ændre på allerede eksisterende tabeller.

En administrator skal selvfølgelig altid have rettighederne så han behøver ikke så i tabellerne.
Avatar billede goose Nybegynder
05. marts 2004 - 17:39 #4
Undskyld mit sene svar, men eksperten har desværre ikke oplyst mig om at der var kommet nogle besvarelser:

Christian >> ja det kan du have ret i, det var en måde at gøre det på, kan du ikke uddybe lidt mere hvad det javascript (onbeforeunload) gør og evt. hvordan det bruges, javascript er mere eller mindre sort snak for mig ?


fennec >> Det vil være helt optimalt hvis jeg ikke skal ændre i eksisterende tabeller, men jeg tror ikke jeg er helt med hvordan jeg skal bygge de nye tabeller op, der bliver jo hele tiden tilføjet nye sider og så disse skal vel også lægges ind i brugertabellerne, men hvordan ?


/Goose
Avatar billede fennec Nybegynder
08. marts 2004 - 08:21 #5
På den side hvor du opretter/rediger sider skal man også administrere brugerrettigheder. F.eks. to select bokse, hvor man kan klikke brugere fra/til. For at undgå at man glemmer at give nogen rettigheder, skal alle have fuld tilgang nå en side oprettes, også fjerner man dem som ikke skal have adgang.

Hvis der er mange brugere kunne man inddele dem i grupper, også tildele rettigheder på grupperne i stedet for brugere. Da det sikkert ofte er de samme personer, der har rettighederne til siderne, kunne det være smart at kunne oprette en default indstilling i stedet for at alle har fuld rettighed ved oprettelse af nye sider.
Avatar billede goose Nybegynder
09. marts 2004 - 08:50 #6
Hmmm, jeg tror måske vi taler lidt forbi hinanden, eller også forstår jeg ikke helt det du skriver :-/
Jeg prøver lige at ridse det op.

Jeg har en sidetabel der indeholder følgende:
sideid
titel
keywords
content

Jeg skal så have lavet en brugertabel og jeg har forestillet mig at den skulle se nogenlunde sådan her ud:

brugerid
brugernavn
adgangskode
retadgang
sletadgang
opretadgang

Det jeg så har lidt i tankerne er, at hvis en bruger har adgang til at rette i f.eks. side med sideid nr. 1,5,8,13 så smides disse tal i retadgang og det samme med sletadgang og opretadgang.

Jeg ved så ikke om det er den rigtige måde at gøre det på og om det i det hele taget kan lade sig gøre og slet ikke hvordan man gør det, det er sikkert noget med noget arrays eller lign.

Når adminministratoren så vælger egenskaber for en bruger, så får han listet en checkboks for side der er i sideid og hvis dette sideid nr. indgår i retadgang for den enkelte bruger, så skal checkboksen være vinget af. Administratoren skal så kunne vinge yderligere bokse af og gemme igen.

Jeg ved ikke om det lyder helt hen i skoven, men hvis det ikke gør, så er det nok det med hvordan jeg får lavet disse arrays og gemt dem igen der er problemet :o)

/Goose
Avatar billede fennec Nybegynder
09. marts 2004 - 09:01 #7
På den måde løber du i problemer når en side oprettes, fordi der ikke bliver knyttet rettigheder til. Ellers kan brugere kun rette/slette sider når admin har været brugerdatabasen igennem, hvilket han så skal gøre hver gange der bliver oprettet en ny side.

Giv et par brugere rettighed til at oprette og slette sider. Dette kunne sagtens sættes som en checkbox under brugeradmin. Når de oprette en side, kan de så vælge hvem der skal kunne ændre indholdet på siden.
Avatar billede goose Nybegynder
09. marts 2004 - 09:14 #8
Ja det kan jeg godt se .....
Hvad nu hvis man siger, at f.eks. sideid 3 er en "hovedside" og hvis en bruger har adgang til at redigerer denne side, så får vedkommende automatisk  rettigheder til at slette/redigerer/oprette sider som tilhører denne hovedside, altså undersider ?
Det kan godt være jeg er ude hvor jeg ikke rigtig kan "bunde", men jeg vil meget gerne have tilknyttet noget "rettighedshalløj" til mit CMS system, så alternativer og løsningsforslag er velkomne :o)

/Goose
Avatar billede fennec Nybegynder
09. marts 2004 - 09:22 #9
Det er faktisk ikke en helt dårlig ide at arve rettigheder. Man skal bare kunne give rettigheder på hele sitet, ellers kan man jo ikke oprette nye hovedsider.
Avatar billede goose Nybegynder
09. marts 2004 - 09:27 #10
Det vil heller ikke blive aktuelt i mit system idet hovedsider er en del af designet, derfor vil der "kun" blive tale om oprettelse af undersider.
Spørgsmålet er så, ..... hvordan ? :o)

/Goose
Avatar billede fennec Nybegynder
09. marts 2004 - 10:30 #11
du laver bare de 3 tabeller (UserCreatePage, UserEditPage, UserDelPage). Når en side bliver oprette overfører du bare parent-sidens instillinger til den nye.
Avatar billede goose Nybegynder
10. marts 2004 - 22:03 #12
okay, jeg tror lige jeg skal have det tænkt lidt mere igennem inden jeg kaster mig ud i det, men jeg har ihvertfald fået lidt at tænke over ....

Ligger i lige nogle svar og skiv hvad i ønsker af point for jeres input ?

/Goose
Avatar billede fennec Nybegynder
11. marts 2004 - 08:10 #13
giv hvad du synes.....
Avatar billede goose Nybegynder
11. marts 2004 - 09:17 #14
fennec>> er 60 ok ?

Jeg giver lige christian 1 dag mere inden jeg lukker.

/Goose
Avatar billede fennec Nybegynder
11. marts 2004 - 09:21 #15
Jeg kunne ikke være mere ligeglad. Det var en interessant diskussion, og det er det der tæller :o)
Avatar billede goose Nybegynder
11. marts 2004 - 09:33 #16
Interessant ja, men jeg må nok indrømme at den gav mig lidt hovedbrud :o)

/Goose
Avatar billede goose Nybegynder
12. marts 2004 - 10:53 #17
lukker og slukker, men vender helt sikkert tilbage ....

/Goose
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester