De sidste skridt i vores indsats for at få webstedet for "FC Bigfeet" op at køre er at kigge på distribueret vedligeholdelse - et centralt krav til et CMS.
Vi har allerede diskuteret forskellen mellem frontend- og backend-brugere og hvordan backend-brugere er placeret i roden af sidetræet:
Der er allerede lavet tre brugere. Lad os se hvad de kan. Den bedste måde at finde ud af det på er logge ud som admin og logge ind som en af disse brugere, en ad gangen. Alle adgangskoder er "football" endnu.
"christine"
Når du logger ind som "christine" får du vist dette når du aktiverer Sidemodulet for at redigere:
Kun en side! Ja, "christine" har kun adgang til at redigere en eneste side, "This week"-siden. Det er hendes ansvar. Vi vil ikke have hende til at rode med noget andet - kun den side.
Det er ret smart - hun kommer kun til at se den side hun har brug for at se. Det afspejler altså ikke blot tilladelseshåndteringen - det gør også systemet mere intuitivt og brugervenligt. Som du kan se får Christine heller ikke vist ret mange af backend-modulerne. Menuen til venstre indeholder kun "Side" og "Vis"-modulerne udover "Hjælp"-hovedmodulet som ikke kræver særlige tilladelser.
"jonathan"
Log nu ind som "jonathan":
Jonathan er træner i klubbens ungdomsafdeling. Han er altså sat til at være ansvarlig for de sider der har med det at gøre! Ligesom Christine kan han kun se de ting han har brug for.
I modsætning til Christine har han også fået adgang til Filliste-modulet: Hvis du ser hvad der findes der vil du se at det er forskelligt fra det du ser som "admin"-bruger:
Rod-mappen er ikke "fileadmin/" men Billedarkiv-mappen direkte!
Nu vil vi vide hvordan brugerne "jonathan" og "christine" er blevet sat op! Hvordan gjorde han det, ham fyren bag alt det her. Jo, log ind som "admin" igen og lad os undersøge det!
Prøv at vælge "Rediger" for de to brugere, "jonathan" og "christine". Du kan se at deres profiler er "identiske" to steder: De er medlemmer af samme gruppe (#1) og de har begge et "DB mount" (#2, startsiden for deres individuelle sidetræer). Men jonathan har også adgang til "file" og "file_list"-modulerne (#3) og derudover har han fået tilknyttet fil-mountet "Image Archive" (#4). Det giver jo mening hvis du tænker over det da det var de faciliteter vi så da vi loggede ind som ham!
File Mounts
"File mount"'et tilknyttet til "jonathan" er en forbindelse til en simpel post som også er oprettet i roden af sidetræet:
Når du redigerer den kan du se hvor logisk det er konfigureret:
Mappen "Image_Archive/" (#1) er simpelthen indtastet som PATH (stien) og "BASE"-feltet er konfigureret til at fortolke stien som relativ til "fileadmin/"-mappen (#2). Så enkelt er det. Når Jonathan har fået sat en relation til denne post vil han have denne mappe monteret i hans Filliste-modul!
DB mounts
DB mounts (database mounts) er lette at forstå - de peger på den side i det komplette sidetræ som du vil have skal være rodsiden i det sidetræ som brugeren skal se! Som du kan se kan det ikke være lettere at give en bestemt bruger adgang til en bestemt del af sidetræet - sæt blot værdien i feltet til siden. Eller endda to sider! Du kan tilføje alle de "DB mounts" du vil!
Sidetilladelser
Nå ja. En lille sidebemærkning om "DB mounts" - hvis brugeren ikke har læseadgang til siden og undersiderne fra DB mount'et så er det egentlig ligegyldigt hvad du har konfigureret - det kommer ikke til at virke! Og hvad er så læseadgang? Jo, hver side har en tilladelsessindstilling ligesom filsystemet på en UNIX-server - der er en ejer-bruger, en ejer-gruppe og så tilladelsesindstillinger for hver i fem forskellige kategorier: Vis side, rediger indhold, rediger side, slet side og ny side. Normalt er standardindstillingerne fine nok og den nemmeste fremgangsmåde er nok at bruge DB mounts til at give adgang. Hvis du render ind i problemer kan du blot sætte alle tilladelser til "on" - det vil give grønne stjerner over hele linien (se billedet nedenunder). Hvis du virkelig vil have styr på op og ned i alt det her kan du selvfølgelig gå i gang med Inside TYPO3-dokumentet - der får du den langhårede forklaring.
Den bedste måde at vise dig hvordan sidetilladelser skal sættes er formentlig at se på de nuværende tilladelser i sidetræet. Dette gør vi med "Adgang"-modulet.
Når du ser på ejerskabet for siderne kan du se at "jonathan" faktisk ejer nogle sider. Det kan være han har oprettet de sider. Når du opretter en ny side bliver du automatisk ejer af den.
Hovedpointen er at gruppen "GENERAL" er ejer-gruppen for de sider som Jonathan og Christine har adgang til - og da de begge er medlemmer af denne gruppe kan de tilgå siderne (de er dog stadig begrænset til at arbejde indenfor deres DB mounts!). Det eneste de ikke kan - i det mindste "christine" da hun ikke ejer "This week"-siden - med medlemskab af GENERAL-gruppen er at slette sider. Det kan du se ved at klikke på en af blyanterne:
Som du kan er tilladelsen "Slet side" ikke sat for ejer-gruppen for siderne. Du kan sætte den, hvis Christine skal have adgang til at slette den - men det skal hun sandsynligvis ikke have mulighed for. Det kan faktisk være at du endda ville begrænse hendes adgang mere ved ikke at tillade hende at lave undersider eller redigere sidetitlen:
Resultatet bliver dette i overblikket over tilladelser:
Validering af indstillinger
Med modulet "Brugere" kan du faktisk validere at "christine" nu har de rigtige tilladelser til siden:
Det vil med det samme fortælle dig hvad de kombinerede tilladelser vil være for hende:
De to første grønne stjerner betyder "Vis side" og "Rediger indhold" - de røde krydser betyder "Kan ikke redigere, slette og oprette nye sider"
Det kunne være en ide at se den samme visning for jonathan:
Det viser det vi kunne forvente - file-mount'et og web-mounts'ene som vi så dem tidligere. Jonathan kan dog ikke slette hovedsiden "Youth Section".
Brugere-modulet er et rigtig godt værktøj til at få overblik over brugerindstillinger, sammenligne brugere osv. Det er uundværligt hvis du har mange brugere og gerne vil sikre dig at du har kontrol over deres rettigheder og tilladelser!
Lad os kigge på gruppen GENERAL som "jonathan" og "christine" begge er medlemmer af - hvad indeholder den?
"Include Access Lists" er det vigtigste punkt at bemærke her da det er grunden til at vi har så mange muligheder listet! Bortset fra disse kan gruppen også indeholde DB mounts og file-mounts, som så vil gælde for alle brugere der er medlemmer.
Modules
Når du ser på adgangslisterne kan du se at (#1) medlemsskab af denne gruppe vil give adgang til Web-, Side- og Liste-modulerne (desværre skal skal man vide at disse koder er ækvivalente med de navne vi kender fra menuen...).
Tables (modify)
For det andet er de tabeller som "jonathan" og "christine" har tilladelse til at redigere listet (#2). Kan det nu passe? Kan de kun se "pages"- og "page content"-tabellerne? Lad os prøve at logge ind som "jonathan" og prøve at lave et nyt element:
Det var interessant - vi kan kun lave sider og sideindholdselementer. Ingen brugere, ingen gæstebogselemer, ingen nyhedselementer. Kun sider og indholdselementer.
Hvorfor det? Jo, fordi Jonathan ikke skal bekymre sig om andet! Han er jo ikke ansvarlig for nyhederne, vel!
Page types
Dette felt (#3) bestemmer hvilke sidetyper Jonathan og Christine - eller "medlemmer af gruppen GENERAL" - skal have mulighed for at vælge. Lad os lave "Jonathan-testen" igen og redigere en sideoverskrift:
Med Jonathans login prøver at lave en sysFolder. Har vi held med det?
Niks. Beklager, Jonathan. Den gik ikke.
Allowed Excludefields
Dette er en meeeegeet laaaang liste. Men vigtig. Og stærk! Den kræver dog en smule forklaring:
Når tabeller og felter konfigureres i TYPO3 (i det interne globale PHP array, $TCA) bliver nogle felter markeret som "excludeFields". Det betyder at felterne ikke kan redigeres, bortset fra tilfælde hvor der er givet særlige rettigheder - det er det som listen "Allowed Excludefields" gør!
Det er let at forstå hvis du ser på hvad "jonathan" ser, når han redigerer en sideoverskrift:
Ikke en imponerende liste med felter. Specielt ikke hvis du sammenligner med det du ser - "admin"-brugeren:
Årsagen til denne forskel er at
a) de fleste af felterne i pages-tabellen er markeret som "excludeFields" - og kan som standard altså ikke redigeres - og
b) gruppen GENERAL giver kun adgang til nogle af disse "excludeFields" - ifølge listen inkluderer dette "Type"-, "Skjul side"-, "Start"- og "Stop"-felterne!
Vi skal altså være glade for at Jonathan faktisk kan redigere felterne "Type", "Skjul side", "Start" og "Stop" da han ikke ville have kunnet det hvis ikke gruppen GENERAL have givet de særlige rettigheder!
Låsning af poster?
Måske har du bemærket at mens du har logget ud og ind som forskellige brugere kan et ikon som dette dukke op:
Det er blot en advarsel om at en anden arbejder på den side i øjeblikket - posterne bliver ikke låst i TYPO3 da en post skal kunne tilgås hvis folk har adgang til den. Denne advarsel er dog en rar lille ting, da den hjælper brugerne til at undgå konflikter.
Nå, med al vores fantastiske viden kan vi nu lave en bruger som skal være ansvarlig for det andet websted i vores database - Fan Club-stedet.
Trin 1: Lav brugeren
Brugere er blot poster - lav en "Opdaterings bruger"-post:
Indtast brugernavnet, adgangskoden (football), gruppemedlemsskab og DB-mountet:
Gem "phil".
Trin 2: Tjek den nye bruger
I Brugere-modulet, tjek at "phil" har fået rigtig adgang til "Fan Club"-stedet:
Ups - typisk fejl. Vi fik ikke sidetilladelserne med! Det er heldigvis enkelt at ændre - gå til Adgang-modulet:
Trin 3: Sæt de korrekte sidetilladelser
Rediger tilladelserne for webstedets rodside:
Sæt så ejer og gruppe og sørg for at rekursivt-indstillingen er valgt - det vil aktivere ændringerne for rodsiden og undersiderne 1 niveau under:
Fint:
Trin 4: Sidste tjek
I "Brugere"-modulet ser brugere "phil" rigtig ud nu:
Trin 5: Test den nye bruger
Til sidst logger vi ind som "phil". Et lille trick er blot at trykke på "SU" (Switch User)-knappen i Brugere-modulet - det logger ind som brugeren uden at der er brug for en adgangskode (gælder naturligvis kun "admin"-brugere...):
Og "phil" ser rigtig godt ud - han har adgang til siderne på det nye websted!
Så let.