Php Laravel Grupy społecznościowe, tworzenie małego forum

0

Dzień dobry,

tworzę właśnie mini api do stronki która będzie małym notatnikiem dal usera + będzie miała grupy społecznościowe do których osoba która otworzy grupę będzie mogła dodawać innych użytkowników trupy. Mam wątpliwości co do uprawnień użytkowników tj. Tworzenie roli. Myślałem nad tym że mam tabelę łączącą użytkownika i grupy (ponieważ wielu użytkowników może należeć do wielu grup) i w tabeli grupy przechowuje po prostu jakie uprawnienia ma użytkownik- role będą potrzebne 3 czyli :
Zwykły użytkownik (dodaje posty,notatki,pliki- czyta je i usuwa (usuwa tylko swoje))
Administrator nadaje mu tą role tylko i wylacznie stworzyciel danej grupy i moze on edytować posty użytkowników i zmienic np.zdjecie profilowe grupy i zmieniac dane grupy.
Stworzyciel grupy może robić wszystko łącznie z usunięciem użytkowników.

i tutaj moje pytanie. czy jest do tego jakaś gotowa bilioteka? czy jest jakiś poradnik który pomoże mi taką mini grupę z facebook stworzyć? widziałem tylko 1 kurs płatny 300 zł a tak to pustki :/

Czy uważacie że jeżeli zrobię że przy tworzeniu użytkownik ma np. permission o id 1 czyli creator a potem on zaprasza uzytkownikow ktorzy po przyjeciu zaporszenia maja id=1 i potem moga dostać od creatora role admin? macie pomysl jak to zrobic z tymi zaproszeniami do grupy? aby zrobic ttak ze uzytkownik odrzuci zaproszenie do grupy?

Czy stworzenie takiego forum będzie ciężkie?

Dziękuję bardzo za rady :)

4

Jest mnóstwo tutoriali i paczek do Laravel realizujących ACL. Wpisz w znaną wyszukiwarkę np. Laravel ACL package, czy Laravel ACL tutorial.
Jak to 3 role to wystarczy że w bazie do usera dodasz kolumny np. isUser, isAdmin, isThirdUserType.

0

@jurek1980: Tylko problem jest właśnie w tym że są ale tylko dla przypadku gdzie user ma tylko jedną rolę, a co w przypadku gdzie może mieć ich wiele bo grup także może istnieć wiele :P w jednej może być zwykłym userem w innej adminem a w innej jeszcze właścicielem, no i problem z zapraszaniem? jak to się robi jak to się rozwiązuje? w jaki sposob daje sie zapytanie do innego uzytkownika czy chce nalezec do grupy ? :/

1

Zobacz tu, bo ładnie rozrysowane itd.:
https://laravel-news.com/two-best-roles-permissions-packages
Zwróć uwagę, że można zrobić
$user->assign(['writer', 'admin']
Z zaproszeniami pewnie będziesz musiał sam ogarnąć względem potrzeb. Bazuj na np. resecie hasła użytkownika w samym Laravel. Jest mail z tokenem wysyłany, token jest ważny jakiś czas. Użytkownik kliniknie w linku to u Ciebie zamiast resetu hasła może wystąpić zmiana roli.

0
jurek1980 napisał(a):

Jest mnóstwo tutoriali i paczek do Laravel realizujących ACL. Wpisz w znaną wyszukiwarkę np. Laravel ACL package, czy Laravel ACL tutorial.

Jak to 3 role to wystarczy że w bazie do usera dodasz kolumny np. isUser, isAdmin, isThirdUserType.

Nawet nie idź tą drogą, Jurek nie umie w ogóle programować i wprowadza cię w błąd. To znaczy że jak zrobisz jego sposobem, i będziesz chciał dodać kolejną role lub 3 kolejne to będziesz musiał modyfikować tabele w bazie xDDDDDDD Jurek nie programuj lepiej :)

Jak będziesz miał 1000 statusów do wyboru to musisz dodać 1000 pól do tabeli user hahahahaah

2

Przede wszystkim kartka i ołówek. Co potrzebujesz jako właściciel takiego konta ? Role o statusie GOD. Musisz mieć wgląd wszedzie i do wszystkiego. Musisz się całkowicie oduczyć używania cyferek. Żadne tam permission o id 1 czyli creator tylko i wylacznie symbole czyli samo creator, moderator, god, writer, user, lamer, itd

  1. Tworzymy role główne dla użytkowników czyli takie które nie mają pojęcia co będzie się działo w twojej aplikacji ok? Zatem kiedy użytkownik się zarejestruje do twojej aplikacji to ma domyślnie role: user a ty masz role god, każdy inny ma user. i to wszystko. Masz zatem dwie tabele

users, main_roles - w tych tabelach ustalasz nadrzędne role

  1. tutaj tworzysz tabele do grup i uprawnien

roles, groups, role_groups

roles w tej tabeli masz id, symbol, public name (1, 'owner', 'Wlasciciel') (7, 'admin', 'Administrator') (31, 'moderator', 'Moderator') (35, 'member', 'Członek') itd
w tabeli Grupy masz id uzytkownika ktory taka grupe zalozyl np id = 23 , masz pole name gdzie nazwa grupy, data utworzenia.
w tabeli role_groups masz id_group, id_user, role_symbol czyli (1, 23, 'owner')

Czyli, jesli uzyttkownik dodaje grupe do tabeli groups to automatycznie w tabeli role_groups tworzysz mu uprawnienie.
On moze dodac kolejne osoby
(1, 23, 'owner')
(2, 25, 'member')
(6, 28, 'admin')
(12, 33, 'member')
i kolejny ktory w jego grupie moze byc uzytkownikiem czy adminem. Ale np admin z grupy nie moze skasowac ani wywlic ownera.

I to wszystko. Natomiast przy wejsciu na strone grupy system sprawdza czy nadrzedna rola to USER czy GOD tak? jesli ty jestes GOD to system nie sprawdza juz zadnych uprawnieni bo mozesz wszystko. i tak powiino to wygladac. W laraverze masz fajna opcje GATE i tam tworzysz polityke uprawnien w pliku i dodajesz w controlerze GATE tylko i samo sie robi juz :)

Jezeli chodzi o zaproszenia to tabele group_invites i tam dajesz id, id_sender, id_receiver, id_group, status
i juz po wpisaniu tutaj id usera zapraszajacego, id odbiorcy i status oczekuje i id grupy uzytkownik widzi czy ma jakis status oczekujacy. Jesli zaakceptuje tak ? to dodasz go do tabeli
role_groups
(1, 23, 'member')
i juz, a jak odrzuci to wpis z tabeli group_invites zostanie zmieniony status na odrzucone i mozesz zrobic ze masz info ze uzytkoniwk odruzcil itd.

1

@chomikowski: Ratujesz moją naukę :) naprawdę jakbym Cię spotkał miał byś u mnie kratę Perełek chmielowych! Zdrówka i dziękuję świetnie wytłumaczone :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1