PDA

Zobacz pełną wersję : Uprawnienia i rejestracja użytkowników



kingu80
26-11-2013, 22:03
Witajcie.
Chciałbym Was zapytać, czy joomla oferuje możliwość rejestracji konkretnych użytkowników z konkretnymi uprawnieniami. Mam stroną na której będzie dostępna treść publiczna (dla wszystkich użytkowników) ale będzie też treść ukryta. I teraz tą treść ukrytą chciałbym podzielić na dwie grupy, powiedzmy będzie grupa A i gruba B. I od razu zapytam, czy jest taka możliwość? Nie chcę im dawać uprawnień do edytowania strony. Chodzi tylko i wyłącznie aby każda z tych grup miała dostęp do pewnych informacji które będą dostępne po zalogowaniu. I teraz druga kwestia, czy da radę rozdzielić rejestrację użytkowników na: Zarejestruj użytkownika należącego do grupy A, Zarejestruj użytkownika należącego do grupy B. I każdy z tych użytkowników będzie widział inne treści. Z góry dziękuję za pomoc.
Pozdrawiam.

moje
26-11-2013, 22:29
Odpowiadając na Twoje pytania:
1. Tak jest taka możliwość.
2. Tak, da się tak zrobić.
Musisz zapoznać się z Joomla i dostępnymi rozszerzeniami.

xKP
09-12-2013, 19:42
1.
W "Joomla! 3.2.0" jest prawdopodobnie błąd, który to utrudni.


2.
Gdyby nie było tego błędu, to robi się to tak:

a.
W [menu | Użytkownicy | Grupy użytkowników] tworzymy nowe grupy użytkowników, np. o nazwach "Grupa A" i "Grupa B" (bez cudzysłowów).
Oczywiście każdą trzeba zapisać przez [Zapisz i zamknij].

b.
W [memnu | Użytkownicy | Poziomy dostępu] tworzymy nowe poziomy, np. "Poziom A" i "Poziom B".
Każdy trzeba zapisać przez [Zapisz i zamknij].

c.
Klikamy jeden z nich i wiążemy go z odpowiednią dla niego grupą. Potem tak samo drugi.
[Zapisz i zamknij].

d.
W artykułach zmieniamy im parametr [Dostęp] z "Public" na "Poziom A" albo "Poziom B".
[Zapisz i zamknij].

e.
Wtajemniczonych użytkowników przyporządkowujemy do naszych nowych grup "Grupa A" albo "Grupa B".
[Zapisz i zamknij].
Mogą oni należeć równocześnie też i do wielu innych grup.
W każdej grupie może być wielu użytkowników.
Wtajemniczony użytkownik loguje się normalnie swoim loginem i hasłem i nawet nie musi wiedzieć, że widzi więcej artykułów niż inni.


3.
Powinno działać, ale u mnie w Joomli 3.2.0 nie działa.
Chyba to jest błąd Joomli albo popuł mi ją któryś z dodatkowych komponentów.
Błąd polega na tym, że od strony zaplecza (back-end) artykuły mają dostęp "Poziom A" albo "Poziom B" (= OK.),
natomiast od strony witryny (front-end) mają dostęp "Public", co nie jest prawdą. Skutek jest taki, że wszyscy je widzą !!!
Ci, którzy mają uprawnienia do edycję artykułów od strony witryny (front-end),
widzą, że w tych utajnionych artykułach parametr Dostęp = "Public". Joomla ich okłamuje!
Podpatrzyłem, że bazie MySQL jest dobrze: artykuły mają dobrze zapisany dostęp.
Błąd jest w mechanizmie filtrowania artykułów dla witryny.
Nie wiem, jak to naprawić.
Jeśli u innych użytkowników też tak jest, to jest to błąd Joomli 3.2.0 i miejmy nadzieję, że Autorzy to naprawią.
Jeśli u innych działa OK., to znaczy, że u mnie się coś popsuło.


Proszę spróbować i odpisać, czy działa.

xKP

- - - Updated - - -

Jeszcze dopisek:
Nie trzeba żadnych dodatkowych rozszerzeń.

xKP

zwiastun
09-12-2013, 19:51
Zrób tak: zainstaluj Joomla 3.2 z przykładowymi danymi, a następnie przetestuj jeszcze raz swoją procedurę. Najprawdopodobniej zadziała. Dlaczego? Instalacja przykładowych danych nadpisze, niestety "pomieszane" w 3.2 standardowe poziomy dostępu i grupy użytkowników takimi, jakie były we wcześniejszych wersjach J.

xKP
09-12-2013, 20:09
A cała dotychczasowa zawartość przepadnie?
xKP

zwiastun
09-12-2013, 20:50
Przecież proponuję ci to przetestować na świeżej instalacji Joomla, a nie na dzialającej

xKP
09-12-2013, 23:53
Na świeżej instalacji Joomla 3.2.0 bez języka polskiego i bez żadnych dodatkowych komponentów działa w porządku.
Czyli sposób, który powyżej opisałem, jest dobry.
A na mojej działającej stronie coś jest popsute.

Nie są winne definicje grup, poziomów dostępu, kategorie ani artykuły,
bo tworzyłem nowe i nadal w Witrynie widać jako publiczne te artykuły, które mają inny poziom dostępu.

Jak znaleźć błąd i naprawić?
Czy istnieje jakaś możliwość prze-instalowania Joomli bez utraty danych?

xKP

Jola
09-12-2013, 23:55
teoretycznie wystarczy zrobić kopię tabeli #__usergroups i nadpisać ją taką:

DROP TABLE IF EXISTS `jos_usergroups`;
CREATE TABLE `jos_usergroups` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary Key',
`parent_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Adjacency List Reference Id',
`lft` int(11) NOT NULL DEFAULT '0' COMMENT 'Nested set lft.',
`rgt` int(11) NOT NULL DEFAULT '0' COMMENT 'Nested set rgt.',
`title` varchar(100) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_usergroup_parent_title_lookup` (`parent_id`,`title`),
KEY `idx_usergroup_title_lookup` (`title`),
KEY `idx_usergroup_adjacency_lookup` (`parent_id`),
KEY `idx_usergroup_nested_set_lookup` (`lft`,`rgt`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `jos_usergroups` (`id`, `parent_id`, `lft`, `rgt`, `title`) VALUES
(1, 0, 1, 22, 'Public'),
(2, 1, 8, 19, 'Registered'),
(3, 2, 9, 16, 'Author'),
(4, 3, 10, 13, 'Editor'),
(5, 4, 11, 12, 'Publisher'),
(6, 1, 4, 7, 'Manager'),
(7, 6, 5, 6, 'Administrator'),
(8, 1, 20, 21, 'Super Users'),
(10, 3, 14, 15, 'Shop Suppliers (Example)'),
(12, 2, 17, 18, 'Customer Group (Example)'),
(13, 1, 2, 3, 'Guest');
Oczywiście wszystkie trzy razy użyte "jos" należy zastąpić właściwymi przyrostkami.
Tak zmodyfikowany sql wstawić do okienka zapytań SQL i "Wykonaj"

xKP
10-12-2013, 02:48
1.
Boję się, bo zniknięcie wielu moich grup spowoduje błędy u użytkowników, w poziomach dostępu i np. w kategoriach artykułów, w których maja jakieś uprawnienia.

2.
Wątpię, by błąd tkwił w tej tabeli.
Gdyby był w niej, to obsługa poziomów dostępu szwankowałaby zarówno w Witrynie, jak i w Zapleczu.
Tymczasem u mnie błąd polega na tym, że wszystkie artykuły widziane są w Witrynie jako "public", również podczas ich edycji w Witrynie mają w polu Dostęp wybrana opcje "public",
ale w tych samych artykułach w Zapleczu wszystko jest w porządku.

3. Raczej chyba uszkodzony jest (lub całkiem zniknął) któryś plik Joomli, w którym obsługiwane jest wybieranie spośród wielu artykułów (filtrowanie) tylko tych, które mają odpowiednie parametry.
Myślę, że Joomla wysyła do bazy jakieś zapytanie (Query), a błąd jest w pliku, który buduje to zapytanie.

4.
Zauważyłem też inny błąd. Chodzi o pokazanie lub ukrycie nawigacji pod artykułami.
U mnie nie działa włączenie/wyłączanie nawigacji poszczególnym artykułom, natomiast działa jej włączenie/wyłączanie globalne.
W świeżo zainstalowanej Joomli 3.2.0 angielskiej też jest ten błąd, więc chyba nie ma on nic wspólnego z błędem wyżej opisanym.

xKP

Jola
10-12-2013, 03:08
Jeśli dobrze się przyjrzysz to różnica pomiędzy starą i nową tabelą to:
- dodatkowo dwie grupy użytkowników: Shop Suppliers (Example) i Customer Group (Example)
- co najważniejsze zmiana id grupy Guest z 9 na 13
kod Joomla! 3.2 "uważa", że gość ma grupę id o numerze 13 - to nie pokrywa się z zawartością tabeli Joomla! 3.2 stworzonej bez wczytywania przykładowych danych.
Wynikają z tego kłopoty z przypisywaniem uprawnień dla grupy Public i Guest
Spotkałam się z tym w przypadku jcomments. Uprawnienia public nie były widziane.

xKP
10-12-2013, 10:58
1.
Spróbowałem zmienić w bazie MySQL temu Guest'owi id z 9 na 13, ale nie pomogło.
Może trzeba było coś jeszcze więcej pozmieniać.

2.
Mam do dyspozycji świeżo zainstalowaną Joomlę 3.2.0, bez języka polskiego i bez żadnych dodatkowych instalacji.
Przy instalacji wybrałem opcję "Domyślne dane przykładowe w języku angielskim (GB)".
W niej nie ma tego błędu.
W tej "czystej" Joomli Guest ma id=9 (a nie 13), zresztą wszystkie grupy w świeżej Joomli mają tam takie same id jak w mojej działającej Joomli,
tylko że w mojej jest ponadto wiele innych grup.

Nadal nic nie pojmuję.

xKP

zwiastun
10-12-2013, 11:41
NIe wystarczy samo ustawienie ID grup. Z ID grup powiązane są poziomy dostępu (tabela #__viewlevels)

xKP
10-12-2013, 17:12
W tabeli viewlevels wszystko jest tak samo jak w świeżo zainstalowanej Joomli 3.2.0, a ponadto jest parę innych moich poziomów.
W obu Joomlach w tej tabeli tylko Registered i Special mają niezerowy "ordering", ale skoro w jednej to nie szkodzi, to nie powinno szkodzić w drugiej.

Wciąż podejrzewam, że któryś plik jest popsuty albo zawiera błąd, ujawniający się tylko w niektórych sytuacjach, trudnych do przewidzenia.

Co dalej?

xKP