web-dev-qa-db-fra.com

Autoriser l'utilisateur à modifier

Info rapide

J'utilise le plugin Posts 2 Posts afin de créer une relation entre les enseignants et les cours qu'ils enseignent.

  • La page de l'enseignant est un type de message personnalisé de faculty dans lequel des enseignants sont ajoutés.
  • Un article faculty a un champ méta personnalisé intitulé email_address.

  • La page de classes est un type de message personnalisé de class dans lequel des classes sont ajoutées.

Le plugin Posts 2 Posts me permet de relier les deux types de post, class et faculty ensemble. Ce faisant, je peux récupérer les email_address et title d'un enseignant et l'afficher sur la page class, ainsi qu'un lien vers la page class de la page de l'enseignant.

En dehors de cela ... Les enseignants pourront créer des comptes en utilisant le courrier électronique de leur école. Cette même adresse e-mail doit correspondre au email_address saisi par un administrateur de la publication faculty.


Le but

Je souhaite autoriser les enseignants à se connecter et à ne pouvoir modifier que la page class associée à la page faculty comportant un méta-champ personnalisé email_address qui correspond à leur adresse de messagerie.

Je sais que cela est possible, car le plugin Role Scoper vous permet de le faire. La seule différence est que, dans le plug-in Role Scoper, vous devez accéder manuellement aux paramètres, afficher toutes les pages associées au type de message class, sélectionner un utilisateur par nom d'utilisateur (et non par courrier électronique), puis les ajouter à cette page. Il est fastidieux et pénible pour un utilisateur non technique d’agir de la sorte.

Mon chemin vous permettrait de créer une faculty avec un email_address spécifique et de la lier à une page class. Une fois qu'un utilisateur s'est connecté avec une adresse e-mail correspondante, il verrait cette page class à modifier.

J'espère que tout cela a du sens, je ne sais pas vraiment par où commencer et j'ai passé une demi-journée à chercher des réponses ... tout ce qui nous ramène à Role Scoper (ce que je ne veux pas faire).


La question

Comment autoriser un utilisateur à modifier une seule page, liée à une autre page, comportant un méta-champ personnalisé contenant une adresse électronique correspondant à la leur?

Mon garçon, ça a l'air compliqué ... Merci d'avance pour toute aide!


Procédure pas à pas

  1. L'utilisateur se connecte
  2. Saisir l'adresse email de l'utilisateur
  3. Match faculty post où le champ méta personnalisé email_address correspond au courrier électronique de l'utilisateur
  4. Obtenir cet identifiant faculty
  5. Trouver les articles class qui sont liés (par l’intermédiaire des messages 2 messages) à cet ID faculty.
  6. Donner à l'utilisateur la permission de modifier class post (s).

Bien que le processus semble assez simple, je ne sais pas comment donner à un utilisateur la permission de modifier une page de type publication personnalisée. Encore une fois, Role Scoper est capable de le faire, la question suivante est de savoir comment.

3
rebz

Je pense que le moyen le plus simple de le faire serait de donner aux utilisateurs un rôle Auteur personnalisé lors de leur inscription. Les fonctions du rôle Auteur par défaut sont qu'il ne peut créer et éditer que ses propres publications. Vous devrez le personnaliser pour activer les fonctionnalités de votre type de message personnalisé 'classe', pas seulement les messages Vanilla. Vous pouvez associer l'action user_register à une requête pour un message de professeur avec méta correspond au courrier électronique de l'utilisateur enregistré, puis le met à jour pour lui attribuer votre rôle spécial si un poste correspondant est trouvé dans la faculté. Pour les messages de classe, raccordez save_post à ajoutez une connexion entre ce message et la page faculté de l'utilisateur chaque fois qu'il crée un nouveau post de classe.

1
Milo

Au lieu de Faculty, pourquoi ne pas ajouter une méta utilisateur et utiliser Posts 2 Posts pour associer des publications à des utilisateurs. J'ai utilisé cette approche pour créer avec succès plusieurs sites à base d'adhésion. De cette façon, vous pourrez vous appuyer sur toutes les fonctions et tous les titres basés sur wp_user de Nice.

0
GhostToast