PDA

Zobacz pełną wersję : [Rozwiązane] Zresetowanie uprawnień - pomocy



heavysounds85
22-07-2022, 12:46
Witam

Namieszałem w uprawnieniach i nie mam możliwości zapisywania ustawień bo zniknął cały panel administratora. Wiem że jest możliwość zresetowania ustawień grupy użytkowników jednak kiedy próbuje to zrobić przez bazę danych dostaje komunikat primary key error 1062. Powtórzone wystąpienie "1" dla klucza primary. Może ktoś ma jakiś pomysł ? Próbowałem w ten sposób - https://joomlaguru.pl/joomla/kody-snippets/570/jak-zresetowac-uprawnienia-i-poziomy-dostepu-w-joomla

siristru
23-07-2022, 00:08
Bo próbujesz dodać insertem rekordy z id które już istnieją.
Zrób kopię bazy danych.
Potem w bazie usuń rekordy w tabelach viewlevels i usergroups.
A dopiero potem wykonaj sqlki z poradnika.

heavysounds85
23-07-2022, 07:03
Dziękuję za pomoc. Faktycznie nawet kest napisane w tym poradniku ze trzeba usunąć wpisy ale chyba tego nie zrozumiałem prawidłowo:) dopytam jeszcze na przyszłość... w każdym użytkowniku osobno musze wykasować parametry w tych tabelach? W ogóle to zaskoczyło mnie to trochę ze mozna doprowadzic do takiej sytuacji, sądziłem że konto "super user" ma zawsze wartość nadrzędną i że nie da się pozbawić go uprawnień przez przypadek:))) na to wygląda że będę miał ciekawe wyzwanie logiczne bo muszę mieć dwa niezależne "menu" zeby dwie grupy nie widziały się nawzajem ale przy tym wspólnie mają dostęp do jednego z rozszerzeń a na to wszystko jest super user który widzi wszystko i wszystkich:) może masz na to jakiś pomysł?:) bo nie chce znowu przywracać kopii zapasowej jak znowu coś spierdziele:)

siristru
23-07-2022, 12:57
w każdym użytkowniku osobno

Nie, bo nie tam nie ma rekordów per user. W czystej Joomli usergroups ma 9 rekordów a viewlevels ma 5. Ot i wszystko.


W ogóle to zaskoczyło mnie to trochę ze mozna doprowadzic do takiej sytuacji, sądziłem że konto "super user" ma zawsze wartość nadrzędną i że nie da się pozbawić go uprawnień przez przypadek

Jak się przekonałeś empirycznie - nie :)


może masz na to jakiś pomysł?

Tworzysz nowe menu zaplecza. Tworzysz nowy Access level. Dodajesz do niego odpowiednie User groups. Jeśli to tego samego komponentu maja mieć dostęp dwie grupy to przypisujesz je obie. Jeśli tylko jedna ma go widzieć - tylko jedna.

heavysounds85
23-07-2022, 14:26
Zaplecze to sprawa mniej istotna chodzi o widok od frontu. Ta jedna grupa bedzie dodawała wydarzenia w kalendarzu a ta druga grupa ma te wydarzenia widziec (kilkunastu użytkowników) mają mieć dwa różne menu a super user ma dostęp do wszystkiego na raz.

siristru
23-07-2022, 19:13
Czekaj, czekaj... Grupa A ma mieć możliwość dodawania (ale NIE widzenia??). A Grupa B ma mieć jedynie możliwość widzenia.
Skoro dodawać to i widzieć... chociaż... możesz wydzielić to przez menu.
Dwa moduły menu dla dwóch różnych grup (dwa rożne access level).
Dwa menu do tych modułów z różnym access level.

SU musi być w grupie nadrzędnej.

heavysounds85
23-07-2022, 20:23
Tam się właśnie pojawił problem z samym rozszerzeniem bo dopoki te dwie grupy miały poziom registered lub do niego przynależny to wszystko działało a jak zrobilem im osobną grupę po to żeby mieli osobne menu to się wszystko zaczęło komplikować i w efekcie utworzyłem nowy poziom dostępu i wtedy wszystko się wykrzaczyło:))) grupa A dodaje spotkania do kalendarza grupie B (grupa B nie widzi grupy A, maja osobne menu itd.) ale rozszerzenie musi mieć określony poziom dostępu do którego należy A i B a super user widzi totalnie wszystko. Myślę że polegnę na tym:)))

siristru
24-07-2022, 12:52
Dobra, zatem Grupa B musi być PODgrupą A.
Eh, to trzeba w systemie skonfigurować a nie tak na kartce :D
Musiałbym mieć konkretny przypadek, komponent by to wypróbować.

heavysounds85
27-07-2022, 20:18
napisałem prywatną wiadomość do Ciebie ale już w między czasie rozwiązałem problem :) nikt nie zginął. Mam ciekawą zagadkę - https://extensions.joomla.org/extension/names-online/
To rozszerzenie pokazuje który z użytkowników jest obecnie zalogowany i teraz pytanie:) jak to zrobić żeby pokazywał tylko jedną grupę użytkowników a nie wszystkie, w opcjach modułu można wybrać albo wszystkich albo tych ze swojej grupy a ja bym chciał wybrać jedną konkretną. Tu są trzy pliki na krzyż ale przyznam się szczerze że zgłupiałem. Wielka prośba o pomoc bo myślę że dla Was to dosłownie chwila moment żeby rzucić na to okiem. Z góry wielkie dzięki.

siristru
27-07-2022, 22:07
Wyślij mnie to ustrojstwo, zobaczę :D
Joomla 3, tak?

heavysounds85
27-07-2022, 23:12
tam jest link w mojej wypowiedzi powyżej:) w miedzy czasie znalazłem już moduł ale oczywiście płatny :) ale oświeć mnie gdzie to cholerstwo zmodyfikować bo patrzyłem się na to dobrą godzinę i nic:) aczkolwiek nic nie zepsułem tym razem :)))))

siristru
28-07-2022, 15:33
Tutaj masz kod z helper.php


if (!$user->authorise('core.admin') && $params->get('filter_groups', 0) == 1)
{
$groups = $user->getAuthorisedGroups();

if (empty($groups))
{
return array();
}

$query->join('LEFT', '#__user_usergroup_map AS m ON m.user_id = a.userid')
->join('LEFT', '#__usergroups AS ug ON ug.id = m.group_id')
->where('ug.id in (' . implode(',', $groups) . ')')
->where('ug.id <> 1');
}

No i teraz możesz ręcznie dopisać ID grupy... jeśli kilka do zdefiniuj zmienną $groups jako array z idkami tych grup.
Albo - jeśli jedna grupa na sztywno dla wszystkich zmieniasz:


->where('ug.id in (' . implode(',', $groups) . ')')

na


->where('ug.id = 12')

Gdzie 12 to ID grupy.

heavysounds85
29-07-2022, 10:14
i tak wlasnie myslalem ze to w tym pliku :)))) dzieki wielkie za pomoc !!!!