Prezados colegas, boa tarde.
Eu criei uma página com um repetidor que mostra a lista de membros do site. Porém, somente eu como proprietário de uma conta WIX, tenho acesso à lista completa apresentada no repetidor com todos os membros do site. Mesmo que que credencie alguém (como já o fiz) como administrador do backoffice ele não consegue ver todos os membros. Minha pergunta é: Como poderia conceder este direito a um usuário sem que ele entre via Painel de Controle?
Obrigado a todos.
Olá, @Anderson Brazao
Você precisa listar todo usuários do seu site sem está logado como autor do membro do site, certo?
Visto que você não pode alterar as permissões de coleção PrivateMembersData, a melhor opção é criar um modúlo de backend para fazer a consulta a PrivateMembersData e retorna os dados para o cliente.
Siga os seguintes passos:
1 - No editor procure a secção backend
2 - Clique no icone de adicionar
3 - Selecione Web Module, use o nome getUsers para o modúlo.
4 - Adicione o seguinte código ao seu modúlo:
import wixData from 'wix-data'; export function getUsers() { let options = { "suppressAuth": true, }; return wixData.query("Members/PrivateMembersData") .find(options) .then(result => { return result }) }
Com isso você tem uma função que retorna seus usuários. Veja que eu não faço nenhuma autenticação e desativo a do autenticação do wix com as opção suppressAuth. Você pode fazer sua própria autenticação usando wixUsers de acordo com sua nescessidade.
Exemplo de uso da função no cliente:
import {getUsers} from 'backend/getUsers'; $w.onReady(function () { getUsers().then(resultado => { console.log(resultado.items); }) .catch(error => { console.log(error); }); });
No exemplo acima eu mostrei apenas como usar a função que criamos no backend usando um console.log para mostrar o resultado da função. Mas você pode mostrar esses dados no repetidor.
import {getUsers} from 'backend/getUsers'; $w.onReady(function () { // Vinculando os dados aos campos de repetidor $w("#meuRepetidor").onItemReady( ($item, itemData, index) => { $item("#nome").text = itemData.name $item("#email").text = itemData.loginEmail //... }); //Chamando a função getUsers do backend getUsers().then(resultado => { //Adicionando os usuários ao repetidor $w("#meuRepetidor").data resultado.items }) .catch(error => { console.log(error); }); });
Espero ter ajudado!