Suporte » Temas » Criar um Custom Role sem plugins

  • Olá, es tou com um probleminha aqui, preciso criar um nível de usuário personalizado(Custom Role), com as mesmas permissões de Administrador.

    Estou usando um código no functions.php para criação desse nivel de usuario e setar as permissões.

    O Role até aparece lá na hora de criar o usuário só que não estou conseguindo logar no site, após preencher o formulário de login ele diz q o usuário não tem privilégios suficiente para acessar a página.

    Preciso de privilégios de administrador, ou de setar todas as permissões.

    Estou usando o seguinte codigo no meu functions.php :

    add_action( 'admin_init', 'add_role_tecnico' );
    	function add_role_tecnico() {
    	  add_role( 'tecnico', 'Tecnico', array(
    	     'activate_plugins',
    		 'add_users',
    		 'create_users',
    		 'delete_others_pages',
    		 'delete_others_posts',
    		 'delete_pages',
    		 'delete_plugins',
    		 'delete_posts',
    		 'delete_private_pages',
    		 'delete_private_posts',
    		 'delete_published_pages',
    		 'delete_published_posts',
    		 'delete_users',
    		 'edit_dashboard',
    		 'edit_files',
    		 'edit_others_pages',
    		 'edit_others_posts',
    		 'edit_pages',
    		 'edit_posts',
    		 'edit_private_pages',
    		 'edit_private_posts',
    		 'edit_published_pages',
    		 'edit_published_posts',
    		 'edit_theme_options',
    		 'edit_users',
    		 'export',
    		 'import',
    		 'list_users',
    		 'manage_categories',
    		 'manage_links',
    		 'manage_options',
    		 'moderate_comments',
    		 'promote_users',
    		 'publish_pages',
    		 'publish_posts',
    		 'read_private_pages',
    		 'read_private_posts',
    		 'read',
    		 'remove_users',
    		 'switch_themes',
    		 'unfiltered_upload',
    		 'upload_files',
    		 'update_core',
    		 'update_plugins',
    		 'update_themes',
    		 'install_plugins',
    		 'install_themes',
    		 'delete_themes',
    		 'edit_plugins',
    		 'edit_themes',
    		 'unfiltered_html'
    	    ));
    	}
Visualizando 10 respostas - 1 até 10 (de um total de 10)
  • Parece que vc só está listando as permissões, mas não está liberando elas para o usuário.

    Veja mais sobre isso aqui
    http://codex.wordpress.org/Function_Reference/add_role

    Acabei testando por curiosidade e o código deve ficar assim

    add_action( 'admin_init', 'add_role_tecnico' );
    	function add_role_tecnico() {
    	  add_role( 'tecnico', 'Tecnico', array(
    	     'activate_plugins' => true,
    		 'add_users' => true,
    		 'create_users' => true,
    		 'delete_others_pages' => true,
    		 'delete_others_posts' => true,
    		 'delete_pages' => true,
    		 'delete_plugins' => true,
    		 'delete_posts' => true,
    		 'delete_private_pages' => true,
    		 'delete_private_posts' => true,
    		 'delete_published_pages' => true,
    		 'delete_published_posts' => true,
    		 'delete_users' => true,
    		 'edit_dashboard' => true,
    		 'edit_files' => true,
    		 'edit_others_pages' => true,
    		 'edit_others_posts' => true,
    		 'edit_pages' => true,
    		 'edit_posts' => true,
    		 'edit_private_pages' => true,
    		 'edit_private_posts' => true,
    		 'edit_published_pages' => true,
    		 'edit_published_posts' => true,
    		 'edit_theme_options' => true,
    		 'edit_users' => true,
    		 'export' => true,
    		 'import' => true,
    		 'list_users' => true,
    		 'manage_categories' => true,
    		 'manage_links' => true,
    		 'manage_options' => true,
    		 'moderate_comments' => true,
    		 'promote_users' => true,
    		 'publish_pages' => true,
    		 'publish_posts' => true,
    		 'read_private_pages' => true,
    		 'read_private_posts' => true,
    		 'read' => true,
    		 'remove_users' => true,
    		 'switch_themes' => true,
    		 'unfiltered_upload' => true,
    		 'upload_files' => true,
    		 'update_core' => true,
    		 'update_plugins' => true,
    		 'update_themes' => true,
    		 'install_plugins' => true,
    		 'install_themes' => true,
    		 'delete_themes' => true,
    		 'edit_plugins' => true,
    		 'edit_themes' => true,
    		 'unfiltered_html' => true
    	    ));
    	}

    Pelo menos aqui funcionou perfeitamente.

    Criador do tópico weffenson

    (@weffenson)

    Olá Myst1010, obrigado pelo apoio.. Com o seu código o problema continua. Quando se cria o usuário aparece o Role lá e o usuário é criado normal, só que na hora de logar no Admin é que dá o problema. Aparece o seguinte erro: “Sem permissões suficientes para acessar esta página.”

    É como se não fossem aplicadas as permissões.

    Estou usando o WordPress 3.3.1

    Aqui funcionou normalmente e entrei com o novo usuário no admin em áreas que só o administrador pode entrar.

    Não seria o problema na página que vc está sendo redirecionado?
    Aqui pelo menos com ou sem redirecionamento está funcionando.

    Troque para o tema padrão e coloque o código no functions.php dele e teste.

    Caso dê errado desative os plugins também para ver se é um deles impedindo a funcionalidade.

    Criador do tópico weffenson

    (@weffenson)

    Mesmo desativando todos os plugins não funcionou, nem no tema Twenty Eleven. Então acho q resolveria de outra forma… Como dou permissões de administrador para um “Editor”?

    Pra ser sincero nunca mexi com isso, então não sei nada a respeito.

    Mas existem plugins para manusear as capacidades.
    http://wordpress.org/extend/plugins/search.php?q=role+manager&sort=

    Mas não seria mais apropriado dar logo o cargo de administrador ao usuário que vc deseja, se é para criar um novo tipo ou mudar um cargo com as mesmas permissões que o admin, dá logo o cargo de admin pra o usuário, o efeito seria o mesmo não?

    Criador do tópico weffenson

    (@weffenson)

    Nessa lógica sim, quero criar o tipo de usuario com todas as permissões e usar o Plugin Adminimize para limitar algumas das permissões. Por exemplo, o Administrador pode editar os menus e o editor não, então neste exemplo preciso de um editor que edite menus.

    Se eu usasse o Tipo Administrador, ele iria aplicar as limitações a todos os administradores.

    Infelizmente o código anterior não está funcionando pra vc, mas se estivesse bastaria vc no lugar de true colocar false que vc libera ou não as permissões para o usuário que vc está criando.

    Sugiro vc verificar melhor o porque do código lhe dar mensagem de erro, pois se vc conseguir fazer ele funcionar, nem de plugin vc iria precisar.

    Verifique melhora as demais funções no rodapé da página, pois acho que essas funções podem lhe ajudar.

    http://codex.wordpress.org/Function_Reference/add_role

    Criador do tópico weffenson

    (@weffenson)

    Resolvido!!

    Ele tinha executado aquele codigo errado e ficou gravado, mas após tentar com um nome diferente de “Tecnico” ele resolveu funcionar!

    é isso.

    Obrigado pela atenção Myst1010!!
    Tenha uma boa tarde.

    blz então, para remover o antigo vc pode usar isso

    function remove_role_tecnico() {
    	remove_role( 'tecnico' );
    }
    add_action( 'admin_init', 'remove_role_tecnico' );

    Depois que for removido apague o código.

    Criador do tópico weffenson

    (@weffenson)

    OK, valeu!

Visualizando 10 respostas - 1 até 10 (de um total de 10)
  • O tópico ‘Criar um Custom Role sem plugins’ está fechado para novas respostas.