gp Prune Inactive Users - usuwanie zbędnych użytkowników :)
Wyniki 1 do 8 z 8

Temat: gp Prune Inactive Users - usuwanie zbędnych użytkowników :)

Hybrid View

Poprzednia wiadomość Poprzednia wiadomość   Następna wiadomość Następna wiadomość
  1. #1
    Bywalec GrzesiekP awatar
    Dołączył
    27-09-2010
    Wpisy
    124
    Punkty
    11

    Domyślny gp Prune Inactive Users - usuwanie zbędnych użytkowników :)

    Do napisania pluginu natchnął mnie ten wątek:
    blokada-konta-po-czasie

    Mam w bazie ponad 19k użytkowników, i wielu z nich to martwe duszyczki. Troszkę materiałów zebrałem, trochę problemów miałem, niemniej jednak starałem się profesjonalnie podejść do tematu i przedstawiam swoje pierwsze, oficjalne dzieło dla społeczności J!

    gp Prune Inactive Users

    Funkcje:

    1. Określenie częstotliwości sprawdzania i usuwania użytkowników.
    Oznacza to, że skrypt sprawdza użytkowników nie za każdym wywołaniem, ale np.:
    - codziennie (raz dziennie)
    - co 3 dni;
    - raz w tygodniu;
    - raz na dwa tygodnie;
    - raz w miesiącu.

    2. Tryb usuwania - mamy dwa tryby - podstawowy i rozszerzony.
    Tryb podstawowy pobiera listę użytkowników, którzy nie należą do grup od #ID=23,24 lub 25.
    Tryb rozszerzony - pobiera listę wszystkich użytkowników, a następnie każdego sprawdza czy należy do grupy 'super administrator', 'administrator', 'manager' (operator). Jeśli należy, to użytkownik jest pomijany. Tryb ten wykonuje więcej zapytań do bazy!

    3. Usuń nieaktywowanych - usuwa użytkowników, którzy zarejestrowali się w serwisie, ale nie aktywowali swojego konta.
    Okres czasu dla powyższej opcji oznacza liczbę dni od daty rejestracji, po której nieaktywowane konto użytkownika zostanie usunięte.

    4. Usuń martwe dusze - usuwa użytkowników, którzy zarejestrowali się i bywali w serwisie, ale od jakiegoś czasu już nie logują się.
    Okres czasu dla powyższej opcji oznacza liczbę dni od daty ostatniej wizyty, po której konto użytkownika zostanie usunięte.

    5. Usuń nigdy zalogowanych - usuwa użytkowników, którzy zarejestrowali się w serwisie, aktywowali konto, ale nigdy się nie zalogowali.
    Okres czasu dla powyższej opcji oznacza liczbę dni od daty rejestracji, po której konto użytkownika zostanie usunięte.

    6. Usuwaj zablokowanych - opcja, która pozwala również na usuwanie zablokowanych użytkowników.

    7. Pomiń użytkowników - lista #ID użytkowników, które należy pominąć przy sprawdzaniu.


    Skrypt ponadto zapisuje log w bazie po każdym wykonaniu sprawdzenia z liczbą skasowanych użytkowników oraz datą usunięcia.


    Przyszłe plany, które chciałbym zrealizować w niedługim czasie:
    1. Wyeliminować błędy - liczę na to, że pomożecie.
    2. Usprawnić działanie pluginu.
    3. Wprowadzić opcję powiadamiania użytkownika e-mailem o tym, iż jego konto zostanie usunięte, jeśli nie aktywuje/zaloguje się w najbliższym czasie.

    ...

    Chciałbym jeszcze dodać, że skrypt testowałem u siebie - zalecam przetestować na jakiejś roboczej witrynie zanim zainstalujecie go na oficjalnej stronie.

    Plugin usuwa użytkowników w "joomla'owski" sposób, czyli zwykłe $user->delete także żadne niepotrzebne śmieci wpisy po nim nie zostają

    Pozdrawiam i czekam na uwagi/sugestie/propozycje
    GP



    Zmiany:

    25.02.2011 - wersja 1.0.1
    #1 Poprawiono bug z usuwaniem użytkowników zablokowanych (podziękowania dla alex51).
    Attached Images Attached Images
    Załączone pliki Załączone pliki
    Ostanio edytowane przez GrzesiekP : 25-02-2011 11:37

  2. #2
    Wyga alex51 awatar
    Dołączył
    16-01-2007
    Skąd
    Kamień Pomorski
    Wpisy
    3 369
    Punkty
    485

    Domyślny

    Fajna sprawa, że zebrałeś "do kupy" funkcje 3 oddzielnych dodatków. Możesz sprawdzić działanie funkcji kasowania kont użytkowników, którzy nie aktywowali swoich kont? Obawiam się, że nie działa ta opcja, a w "starym" pluginie miała taki warunek:
    block = 1.
    W Twoim skrypcie nie ma takiej możliwości, chyba wszystkie block są = 0.

  3. #3
    Bywalec GrzesiekP awatar
    Dołączył
    27-09-2010
    Wpisy
    124
    Punkty
    11

    Domyślny

    @alex51

    Serdeczne dzięki - faktycznie moje niedopatrzenie.

    Wersja 1.0.1:
    - usuwa nieaktywowanych użytkowników (activation != '', block=1);
    - w przypadku pozostałych dwóch opcji mamy możliwość zdefiniowania czy "martwa dusza", która została zablokowana przez administratora ma zostać usunięta czy też nie.

  4. #4
    Wyga alex51 awatar
    Dołączył
    16-01-2007
    Skąd
    Kamień Pomorski
    Wpisy
    3 369
    Punkty
    485

    Domyślny

    Odwaliłeś kawał dobrej roboty i wielu powinno Ci podziękować. Przydałoby się wstawić Twój dodatek do naszej plikowni.
    Zastanawiam się też nad taką możliwością - czy nie dałoby się połączyc działania Twojego dodatku z komponentem Community Builder, w którym konieczne jest przeprowadzenie synchronizacji użytkowników po każdej zmianie "stanu posiadania".

  5. #5
    Wyga alex51 awatar
    Dołączył
    16-01-2007
    Skąd
    Kamień Pomorski
    Wpisy
    3 369
    Punkty
    485

    Domyślny

    Testuję i nie wychodzi mi to do końca. Na testowej stronie ze standardową rejestracją (bez CB) założyłem testowe konto użytkownika, które pozostawiłem bez aktywowania. Cofnąłem datę rejestracji na 25 stycznia 2011 roku i według bazy danych użytkownik test_test ma takie dane:
    usertype - Registered, block - 1, registerDate - 2011-01-25 07:05:16, lastvisitDate - 0000-00-00 00:00:00
    i mimo to nie obejmuje go działanie dodatku, mimo ustawienia w nim opcji kasowania Usuń "nieaktywowanych - po 2 dniach".
    Czy coś źle zrobiłem?
    Zainstalowanie dodatku opisanego we wcześniejszym poście (plg_killunapprovedusers_pl) powoduje zgodne z oczekiwaniami kasowanie wspomnianego wyżej konta.
    Ostanio edytowane przez alex51 : 25-02-2011 12:37

  6. #6
    Bywalec GrzesiekP awatar
    Dołączył
    27-09-2010
    Wpisy
    124
    Punkty
    11

    Domyślny

    Sprawa wygląda tak, że skrypt wykonuje się tylko raz dziennie, tak aby ograniczyć do minimum obciążenie.

    Przy bazie o wielkości 19 tys. użytkowników wykonywanie kodu za każdym wywołaniem jest wg mnie ... nierozsądne.

    Dlatego ograniczyłem sprawdzanie do jednego dziennie. Jeśli chcesz przetestować działanie, usuń najnowszy wpis w tabeli "#__gpplugin_PruneInactiveUsers" i odśwież stronę


    Kolejna aktualizacja będzie zawierać opcję dotyczącą ilości wywołań dziennie (chociaż muszę się zastanowić, jak to później rozegrać z rozsyłaniem maili, aby dwu/trzykrotnie dziennie nie przychodziły.

    ---------- Post dodany o 13:52 ---------- Poprzedni post był o 12:57 ----------

    Odnośnie synchronizacji z CB - czemu nie
    Po emailach będzie to kolejna opcja planowana do wdrożenia - muszę tylko zdobyć CB i popatrzeć co i jak tam, bo tego komponentu nie znam (jedynie JS używam póki co).

  7. #7
    Wiarus mjmartino awatar
    Dołączył
    03-12-2007
    Skąd
    Będzin /k Katowic
    Wpisy
    2 751
    Punkty
    212

    Domyślny

    @GrzesiekP dodatek bardzo przydatny od razu nasunęła mi się myśl z waszej dyskusji którą przeczytałem ;)

    Przy bazie o wielkości 19 tys. użytkowników wykonywanie kodu za każdym wywołaniem jest wg mnie ... nierozsądne.
    Możesz dorobić przecież funkcji którą na żądanie będzie sprawdzać z dopisaniem że nie zaleca się i to zapytanie bardzo obciąża serwer itp dla przestrogi ;)

    Ja na razie nie mam jak po testować.. ale może przywrócę kopie jakiegoś old serwisu i po testuje ;)

    Pozdrawiam <piwo>
    ================================
    Administracja Joomla, Nowości, Artykuły Pomocne Administratorom, Usługi
    >>> https://joomlaguru.pl <<<
    Szkoła Joomla Guru (Kursy Online)
    >>> https://szkola.joomlaguru.pl <<<
    ================================

  8. #8
    Bywalec GrzesiekP awatar
    Dołączył
    27-09-2010
    Wpisy
    124
    Punkty
    11

    Domyślny

    Przemyślałem trochę i jednak zastosuję opcję z 3 możliwościami sprawdzania (raz, dwa i trzy razy dziennie).

    Wykonywania pętli za każdym wywołaniem strony mija się z celem.
    Przecież liczą się dni nieaktywności - minuty/sekundy można pominąć

Podobne tematy

  1. Usuwanie zbędnego kodu - w którym pliku szukać?
    przez bizon na forum Szablony, wygląd, formatowanie
    Odpowiedzi: 9
    Ostatni post/autor: 09-01-2011, 21:14
  2. Odpowiedzi: 0
    Ostatni post/autor: 16-08-2010, 19:25
  3. Usuwanie zbędych rzeczy
    przez McMoney na forum Szablony, wygląd, formatowanie
    Odpowiedzi: 2
    Ostatni post/autor: 25-04-2010, 14:59
  4. Usuwanie zbędnych kategorii
    przez mardag na forum Administracja Joomla!
    Odpowiedzi: 3
    Ostatni post/autor: 26-01-2009, 00:47
  5. Usuwanie nieaktywowanych kont użytkowników
    przez fotomagik na forum Programowanie pod Joomla!
    Odpowiedzi: 2
    Ostatni post/autor: 10-07-2008, 11:06

Reguły pisania

  • Nie możesz zakładać nowych tematów
  • Nie możesz dodawać wypowiedzi
  • Nie możesz dodawać załączników
  • Nie możesz poprawiać swoich postów
  •