Titre du sujet : Re: SQL et Droits des forums Xoops - Module CBB 1.15 par Tinyturtle sur 15/12/2005 11:52:31
J'apporte moi-même de l'eau à mon moulin, car je viens d'avoir une idée pour savoir ce qui se passe lorsqu'on utilise l'interface Xoops pour la gestion des permissions.
J'ai donc mis Xoops en Mode Debug SQL afin d'observer les requêtes SQL exécutées lorsque je mets moi-même les permissions à la main d'un forum pris au hasard parmi mes 69.
Voici ce que j'obtiens:
SELECT * FROM ltt_modules WHERE dirname = 'newbb'
SELECT * FROM ltt_config WHERE (conf_modid = '2') ORDER BY conf_order ASC
SELECT * FROM ltt_group_permission WHERE (gperm_name = 'module_admin' AND gperm_modid = '1' AND (gperm_groupid = '1'))
SELECT * FROM ltt_bb_forums WHERE forum_id = 30
SELECT * FROM ltt_config WHERE (conf_modid = '0' AND conf_catid = '4') ORDER BY conf_order ASC
UPDATE ltt_bb_forums SET forum_name='La Santé au Naturel et les médecines alternatives', forum_desc='Ici tous vos posts sur les médecines alternatives (homéopathie, phytothérapie, naturopathie...) et les produits naturels pour améliorer et conserver notre santé.', forum_moderator='2 3', cat_id=7, forum_type=0, allow_html=1, allow_sig=1,allow_subject_prefix=1, hot_threshold=10, forum_order=0, allow_attachments=1, attach_maxkb=1000, attach_ext='', allow_polls=1 WHERE forum_id=30
DELETE FROM ltt_group_permission WHERE (gperm_modid = '2' AND gperm_name = 'global_forum_access' AND gperm_itemid = '30')
INSERT INTO ltt_group_permission (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (0, 1, 30, 2, 'global_forum_access')
INSERT INTO ltt_group_permission (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (0, 2, 30, 2, 'global_forum_access')
INSERT INTO ltt_group_permission (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (0, 3, 30, 2, 'global_forum_access')
DELETE FROM ltt_group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_can_post' AND gperm_itemid = '30')
INSERT INTO ltt_group_permission (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (0, 1, 30, 2, 'forum_can_post')
INSERT INTO ltt_group_permission (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (0, 2, 30, 2, 'forum_can_post')
DELETE FROM ltt_group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_can_view' AND gperm_itemid = '30')
INSERT INTO ltt_group_permission (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (0, 1, 30, 2, 'forum_can_view')
INSERT INTO ltt_group_permission (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (0, 2, 30, 2, 'forum_can_view')
INSERT INTO ltt_group_permission (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (0, 3, 30, 2, 'forum_can_view')
DELETE FROM ltt_group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_can_reply' AND gperm_itemid = '30')
INSERT INTO ltt_group_permission (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (0, 1, 30, 2, 'forum_can_reply')
INSERT INTO ltt_group_permission (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (0, 2, 30, 2, 'forum_can_reply')
DELETE FROM ltt_group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_can_edit' AND gperm_itemid = '30')
INSERT INTO ltt_group_permission (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (0, 1, 30, 2, 'forum_can_edit')
INSERT INTO ltt_group_permission (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (0, 2, 30, 2, 'forum_can_edit')
DELETE FROM ltt_group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_can_delete' AND gperm_itemid = '30')
INSERT INTO ltt_group_permission (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (0, 1, 30, 2, 'forum_can_delete')
INSERT INTO ltt_group_permission (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (0, 2, 30, 2, 'forum_can_delete')
DELETE FROM ltt_group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_can_addpoll' AND gperm_itemid = '30')
INSERT INTO ltt_group_permission (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (0, 1, 30, 2, 'forum_can_addpoll')
INSERT INTO ltt_group_permission (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (0, 2, 30, 2, 'forum_can_addpoll')
DELETE FROM ltt_group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_can_vote' AND gperm_itemid = '30')
INSERT INTO ltt_group_permission (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (0, 1, 30, 2, 'forum_can_vote')
INSERT INTO ltt_group_permission (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (0, 2, 30, 2, 'forum_can_vote')
DELETE FROM ltt_group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_can_attach' AND gperm_itemid = '30')
INSERT INTO ltt_group_permission (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (0, 1, 30, 2, 'forum_can_attach')
INSERT INTO ltt_group_permission (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (0, 2, 30, 2, 'forum_can_attach')
DELETE FROM ltt_group_permission WHERE (gperm_modid = '2' AND gperm_name = 'forum_can_noapprove' AND gperm_itemid = '30')
INSERT INTO ltt_group_permission (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (0, 1, 30, 2, 'forum_can_noapprove')
INSERT INTO ltt_group_permission (gperm_id, gperm_groupid, gperm_itemid, gperm_modid, gperm_name) VALUES (0, 2, 30, 2, 'forum_can_noapprove')
Note: Toutes les tables sont préfixées par "ltt_" plutôt que par "xoops_" car j'ai utilisé le module protector pour changer de préfixe afin d'ajouter un peu de sécurité à ma base.
On observe donc que la mise à jour des permissions d'un seul et unique forum entraine non pas l'exécution d'une requête SQL mais de plusieurs. Reste à analyser le tout. Bon courage...
|