[PHP] Błąd: Call-time pass-by-reference has been deprecated.
Od pewnego czasu korzystam z pewnej bardzo ciekawej aplikacji pomagającego w zarządzaniu projektami. Redmine, bo tak jej “na imię” spełnia praktycznie wszystkie moje wymagania w tym zakresie, poza faktem, że jej wydajność jest “mocno średnia” [jest napisana w Ruby on Rails]. Dzisiaj jednak siadając przy komputerze stwierdziłem, że spróbuję czegoś nowego. Ze względu na to, że miałem przez chwilę styczność z polecanym przez jednego z kolegów OpenGoo zaprosiłem “na warsztat” właśnie ten “kawałek kodu”.
[PHP, (My)SQL] Systemy uprawnień na stronach internetowych, część 0×02: Poziomy użytkowników.

Przyznaję bez bicia, że od ostatniego wpisu w tej serii upłynęło [zbyt] wiele czasu, za co ponoszę winę jedynie ja, ponieważ dopisywałem po jedno - dwa zdania co jakiś czas, ale ogólnie post “wisiał” na liście szkiców i “grzał ławkę”, nie mogąc się doprosić o solidne dokończenie i wejście na “boisko” strony głównej niniejszego bloga. W związku z tym postaram się dzisiaj i za tydzień zamieścić ostatnie części, tak, aby można było zamknąć temat. Przy tworzeniu kolejnej tego typu serii będę musiał chyba od razu napisać wszystkie części i po prostu publikować je w pewnych odstępach czasu, bo w tym tempie to kolejny wpis ukazałby się pewnie w listopadzie. ;] Ale do rzeczy: w jednym z poprzednich wpisów omówiliśmy najprostszy system zarządzania uprawnieniami, czyli autoryzację na podstawie flagi dostępu do danej sekcji strony. Dzisiaj rozszerzymy to rozwiązanie pozwalając na większą kontrolę i możliwość konfiguracji miejsc, do których ma dostęp nasz użytkownik.

Na czym to polega?

Opisany wcześniej sposób autoryzacji nie jest optymalny, ponieważ w podstawowej wersji pozwala na podzielenie użytkowników na jedynie dwa typy - tych którzy mają dostęp do treści “ukrytych” i tych, którzy muszą się “obejść smakiem”. Wprowadzanie kolejnych kolumn opisanych jako obszary dostępu także nie zdaje egzaminu - przy rozrastającym się systemie musielibyśmy stworzyć tabelę posiadającą kilkadziesiąt, jeśli nie kilkaset kolumn w stylu “allow_[nazwa obszaru]“. Tutaj z pomocą przychodzi nowy pomysł - poziomy użytkowników.