These are chat archives for mosbth/oophp

11th
May 2018
chokolotte
@chokolotte
May 11 08:31
@ercadev, jag har samma Exception, hittade du en lösning?
Mikael Roos
@mosbth
May 11 09:05
Det borde fungera att använda den som redan finns installerad, man behöver alltså inte göra en composer requirepå michelf/markdown.
chokolotte
@chokolotte
May 11 09:26
ok, osäker på ifall jag gjort composer require på michelf/markdown tidigare, hur kan jag kolla alt göra det ogjort isf?
Mikael Roos
@mosbth
May 11 09:27
Redigera filen composer.json, ta bort den raden som säger mihelf/php-mardown: 1.8 och gör sen composer install
chokolotte
@chokolotte
May 11 10:39
ok, men det finns ingen sådan rad i min composer.json. Några andra tips?
Mikael Roos
@mosbth
May 11 10:49
Bara gör en composer update borde funka.
annd16 annd16
@annd16__twitter
May 11 11:38
oophp-v3 kmom03: Känner mig väldigt osäker på hur implementera de olika kraven som finns i de två uppgifterna, främst admin-delen men tycker att de två uppgifterna flyter ihop (extrauppgiften i login-delen ingår inte den i admin-delen t ex?) .
Har skapat en användartabell som innehåller användarnamn, lösenord, e-mailadress och lite mer info, tänkte att vissa fält ska vara obligatorisk andra inte. En användare kan registrera sig på hemsidan, logga in, byta lösenord allt enligt login-exemplet som finns.
Men hur implementera admin-gränssnittet? Behövs det skapas en ny tabell? Eller kan/ska admin/admin och doe/doe användaren läggas till i tabellen för vanliga användare och man skapar en rättighets-/rollkolumn? (Vad är en doe-användare egentligen? En anonym användare med begränsade rättigheter?) I exempelkoden så skapas initialt EN användare som kan koppla upp sig mot databasen. Är det tänkt att man ska skapa flera sådana och sätta olika rättigheter med MySQL grants statement? Eller ska man med hjälp av php-kod särskilja olika användartyper.
Hur är det tänkt att rättigheterna för en nyregistrerad användare ska sättas? Ska användaren själv få avgöra det??
Ja, jag behöver helt enkelt lite hjälp för att komma vidare!
chokolotte
@chokolotte
May 11 12:16
Hej, hjälpte inte med composer update heller tyvärr, men har döpt om min klass till TextFilter2, då funkar det igen. Så kommer jag vidare iaf.
Viktor Bengtsson
@Zero2k
May 11 12:18

@annd16__twitter Är det uppgift 1 och 2 som du tycker är lika med till exempel: "Skapa den/de tabeller som behövs i MySQL. Spara all SQL-kod i ett eget skript anax-lite/sql/setup-user.sql." och "Spara din SQL-kod som sätter upp tabell och initialt innehåll i anax-lite/sql/setup-user-admin.sql."

Jag tror du kan tänka så här, i första uppgiften så skapar du ett User table som innehåller fälten id, användarnamn, lössenord, email och när användaren skapades.

Sen försöker du lösa uppgiften så att man kan skapa en användare och logga in. När du loggar in så spara du användarens ID och användarnamn i en session, på så sätt kan du ha koll om användaren har loggat in eller ej.

I andra uppgiften ska du skapa ett gränssnitt som bara en admin kan nå. Men hur ska du kolla om användaren är en admin? Ett sätt hade varit och kolla om användarnamnet är admin, men det är inte speciellt säkert. Så istället hade jag uppdaterat mitt User table så där hade varit ett fält admin som kan va true or false. (Alltså kan du uppdatera koden från setup-user.sql och lägga till fältet admin i user-admin.sql. Så du behöver inte skapa någon nytt User table med bara admins) sen när du loggar in så kan du spara värde admin i en session och sen i dina routes kan du kolla om användaren är en admin och i så fall vissa sidan annars gör du en redirect till sidan login

annd16 annd16
@annd16__twitter
May 11 12:50
Tack för svaret!
En användare kan (utan att vara inloggad) registrera sig på hemsidan dvs initiera att en ny användare skapas/läggs till. En sådan skapad användare borde (inser jag nu) automatiskt få behörigheten 'vanlig användare' - vad nu det innebär. Men i krav 5 i admin-delen så står det att det skall gå att lägga till en ny användare, redigera detaljer om användaren, inklusive sätta nytt lösenord för användaren, samt radera användaren.' (och att ev. spärra en användare från att logga in). De funktioner som även en vanlig användare kan utföra (såsom lägga till ny användare och redigera detaljer om användaren) borde kunna återsanvändas till administratören med den skillnad att dessa funktioner utförs via admin-sidan (och att att admin kan se och ändra alla användares uppgifter inte bara sina egna). Det som tillkommer specifikt för admin är möjligheten att 1) ändra rättigheter för en specifik användare, 2) ta bort en användare och att 3) spärra en användare från att logga in.
Man ska alltså inte blanda in create user/grant-statements i mysql (eller?) utan detta ska implementeras via php-kod och genom att lägga till ytterligare kolumner i den befintliga tabellen?
Vet du om det jag skrev om en doe-användare stämmer?
Viktor Bengtsson
@Zero2k
May 11 13:12

Så till exempel när en användare skapas så vill du inte att den ska va en admin, så i din sql-kod kan du göra så att värde på fältet admin får ett default värde: (admin BOOLEAN DEFAULT 0). Sen för att du ska få admin rättigheter så får du logga in på http://www.student.bth.se/phpmyadmin/ och manuellt ändra värdet på den användaren du vill. På detta sätt garanterar du att alla nya användere är 'vanliga användare'

När du loggar in som admin kan du ha en sida som vissar alla användare i en lista och om du klickar på någon av användarna så får du möjlighet att uppdatera användaren, sen behöver ha möjlighet att ta bort en specifik användare och lägga till en ny.

Vad jag kan se så behöver du inte ha möjlighet att spärra en användare, utan det räcker om du tar bort den.

Angående doe användare så ska där bara finnas en användare med användarnamn doe och lösenord doe. Sen tror jag det ska finnas en användare som heter admin och lösenord admin och denna ska ha admin rättigheter
annd16 annd16
@annd16__twitter
May 11 13:58
Har för mig att jag har läst någonstans i något av de dokument som är kopplade till denna kurs (v3) att det inte finns något krav på att man skapar en databas på studentservern och jobbar mot denna. Stämmer det? I så fall hur gör man då? Jag har tidigare aktiverat mitt databas konto på studentservern och har inloggningsuppgifter som ännu verkar fungera, men har inte skapat några tabeller där eftersom jag än så länge har jobbat lokalt med Workbench och MySQL-server.
Viktor Bengtsson
@Zero2k
May 11 14:12

Så just nu jobbar du mot MySQL Workbench? Men när du kör dbwebb publish så måste du ändra din databas anslutning.

I din kod så bör du ha en array likt denna:

$databaseConfig = [
    $dsn        = "mysql:host=blu-ray.student.bth.se;dbname=namn_på_db;",
    $login      = "användarnamn",
    $password   = "lösenord",
    $options    = [PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES UTF8"],
];
dbname ska vara samma som ditt användarnamn
annd16 annd16
@annd16__twitter
May 11 14:17
OK, men då måste jag alltså skapa en likadan tabell på blu-ray.student.bth.se (studentdatabasen) som jag nu endast har lokalt?
Viktor Bengtsson
@Zero2k
May 11 14:20
ja, men detta kan du göra med hjälp av .sql filerna som du har i projektet. Men jag hade börjat med att se till så allt fungerar mot din lokala databas, sen är det inte så svårt att byta till blu-ray.student.bth.se
annd16 annd16
@annd16__twitter
May 11 14:25
OK stort tack för hjälpen @Zero2k! Nu ska jag ta en paus och försöka smälta all denna information :smile: ! Ha det så bra!
Viktor Bengtsson
@Zero2k
May 11 14:27
:+1: Gör så och lycka till