Bonjour !
J'ai un problème assez embêtant : g mis mes catégories litigieuses en privées et gérer les droits une première fois
Mais d'un coup, après l'ajout d'images autres que ces catégories, les droits des catégories mères ne se sont plus transmises au filles Les filles sont privées mais les groupes ne s'héritent plus ; c'est normal ou avant c'était normal ?
Dernière modification par flop25 (2009-02-18 16:33:04)
Hors ligne
Doits / Droits
Mais ré-explique nous ton problème par un exemple.
Catégorie CPa, CPb,... ou CVa, CVb,...
Groupe GUa, GUb, ...
Image I1...
Tu fais quoi?
Hors ligne
Hum oui droits lol
ben j'ai
+-1
+-1.1
+-1.2
+-1.2.1
+-1.2.2
+-1.3
La 1 est privée : les 1.x et 1.1.x le deviennent
Je mets pour 1 : "groupe 18 autorisé"
et là avant, j'avais "groupe 18 autorisé" pour les 1.x et 1.1.x Mais maintenant rien d'autorisé pour les 1.x et 1.1.x
d'où maintenant:
+-1-privé[groupe 18 autorisé]
+-1.1-privé[pour_tous_interdit]
+-1.2-privé[pour_tous_interdit]
+-1.2.1-privé[pour_tous_interdit]
+-1.2.2-privé[pour_tous_interdit]
+-1.3-privé[pour_tous_interdit]
avant:
+-1-privé[groupe 18 autorisé]
+-1.1-privé[groupe 18 autorisé]
+-1.2-privé[groupe 18 autorisé]
+-1.2.1-privé[groupe 18 autorisé]
+-1.2.2-privé[groupe 18 autorisé]
+-1.3-privé[groupe 18 autorisé]
Dernière modification par flop25 (2007-07-19 18:19:26)
Hors ligne
si il y a qqch à faire, à corriger.. dites-le car je n'ai pas envie de gérer manuellement plus de 100 catégories
ps : ce qu'il faudrait dans l'immédiat c'est un script php avec requête sql pour attribuer une autorisation automatiquement à touts les niveaux inférieurs d'une catégories précise Svp
Dernière modification par flop25 (2007-07-20 13:32:44)
Hors ligne
flop25 a écrit:
La 1 est privée : les 1.x et 1.1.x le deviennent
Je mets pour 1 : "groupe 18 autorisé"
et là avant, j'avais "groupe 18 autorisé" pour les 1.x et 1.1.x
Tu n'avais pas. Je viens de refaire le test en 1.6.2.
C'est d'autant plus certain que je te conseille de lire ceci:
http://forum.phpwebgallery.net/viewtopi … 109#p34109
marsue attend encore...
Ça sera peut-être en 1.8 va savoir.
8-)
Hors ligne
Je sens que je vais me tirer une balle !! Ouiins .....
J'ai ajouter une note au bug 352 qu'il avait ouvert, pour le réactualiser
Hors ligne
je reviens dessus !
Dans admin/cat_perm.php
il y a ceci :
else if (isset($_POST['grant_groups_submit'])
and isset($_POST['grant_groups'])
and count($_POST['grant_groups']) > 0)
{
$query = '
SELECT id
FROM '.CATEGORIES_TABLE.'
WHERE id IN ('.implode(',', get_uppercat_ids(array($page['cat']))).')
AND status = \'private\'
;';
$private_uppercats = array_from_query($query, 'id');
// We must not reinsert already existing lines in group_access table
$granteds = array();
foreach ($private_uppercats as $cat_id)
{
$granteds[$cat_id] = array();
}
$query = '
SELECT group_id, cat_id
FROM '.GROUP_ACCESS_TABLE.'
WHERE cat_id IN ('.implode(',', $private_uppercats).')
AND group_id IN ('.implode(',', $_POST['grant_groups']).')
;';
$result = pwg_query($query);
while ($row = mysql_fetch_array($result))
{
array_push($granteds[$row['cat_id']], $row['group_id']);
}
$inserts = array();
foreach ($private_uppercats as $cat_id)
{
$group_ids = array_diff($_POST['grant_groups'], $granteds[$cat_id]);
foreach ($group_ids as $group_id)
{
array_push($inserts, array('group_id' => $group_id,
'cat_id' => $cat_id));
}
}
mass_inserts(GROUP_ACCESS_TABLE, array('group_id','cat_id'), $inserts);
}
elle est censée ajouter des droits par groupe : c'est cela ?
Donc on pourrait faire la même chose mais en remplaçant "get_uppercat_ids" par "get_subcat_ids" : comme ça les droits se transmettent "vers le bas" J'ai juste ? [çà m'a l'air trop simple]
Hors ligne
Houahou ! ça marche !!! j'ai testé en local !!
j'ai donc mis :
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
$query = '
SELECT id
FROM '.CATEGORIES_TABLE.'
WHERE id IN ('.implode(',', get_subcat_ids(array($page['cat']))).')
AND status = \'private\'
;';
$private_uppercats = array_from_query($query, 'id');
// We must not reinsert already existing lines in group_access table
$granteds = array();
foreach ($private_uppercats as $cat_id)
{
$granteds[$cat_id] = array();
}
$query = '
SELECT group_id, cat_id
FROM '.GROUP_ACCESS_TABLE.'
WHERE cat_id IN ('.implode(',', $private_uppercats).')
AND group_id IN ('.implode(',', $_POST['grant_groups']).')
;';
$result = pwg_query($query);
while ($row = mysql_fetch_array($result))
{
array_push($granteds[$row['cat_id']], $row['group_id']);
}
$inserts = array();
foreach ($private_uppercats as $cat_id)
{
$group_ids = array_diff($_POST['grant_groups'], $granteds[$cat_id]);
foreach ($group_ids as $group_id)
{
array_push($inserts, array('group_id' => $group_id,
'cat_id' => $cat_id));
}
}
mass_inserts(GROUP_ACCESS_TABLE, array('group_id','cat_id'), $inserts);
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
après le code précédent ! génial !! Je rajoute une note dans le bug 352
Hors ligne
Bien... (Ça aide d'avoir le Bac.)
8-)
Hors ligne
hé attend : mention bien à plus de 15 de moyenne tu t'adresses pas à n'importe qui ! héhé :D
Hors ligne
flop25 a écrit:
hé attend : mention bien à plus de 15 de moyenne tu t'adresses pas à n'importe qui ! héhé :D
Ouais, mais aujourd'hui le bac est donné comparé à celui qu'on a passé à l'époque? mdr!
Je plaisante...
Hors ligne
franchement : l'année dernière oui il était donné (cpe ..)
Mais cette année, il était à la fois dur, facile, et original !
Hors ligne
flop25 a écrit:
franchement : l'année dernière oui il était donné (cpe ..)
8-)
Hors ligne
Je suis désolé mais c'est la vérité ! J'ai vu les sujets et ce qu'on faisait dans l'année était plus difficile que ça ! (rien qu'à voir la physique-chimie) Attention moi je parle des S (comme supérieur ^^), les autres j'en sais rien
Hors ligne