Cela suppose d'ajouter une ligne dans les permission d'OpenGoo : "Peut modifier le wiki"
1 ) Dans language/administration.php en_us et fr_fr, ajouter respectivement :
'can manage wikiss' => 'can manage wiki',
'can manage wikiss' => 'Peut gérer le wiki',
2 ) Dans la base de données, il faut ajouter le champ can_manage_wikiss dans la table og_users : (un tinyint(1) est un Bool)
`can_manage_wikiss` tinyint(1) unsigned NOT NULL DEFAULT '0',
3 ) Ajouter dans application/views/account/update_permissions.php
<div>
<?php echo checkbox_field('user[can_manage_wikiss]', array_var($user_data,'can_manage_wikiss'), array('id' => 'user[can_manage_wikiss]' )) ?>
<label for="<?php echo 'user[can_manage_wikiss]' ?>" class="checkbox"><?php echo lang('can manage wikiss') ?></label>
</div>
4 ) Pareil dans application/views/group/add_group.php
5 )
Ajouter dans application/models/groups/base/BaseGroup.class.php
en ligne 30
'can_manage_wikiss'=>DATA_TYPE_BOOLEAN,
et plus loin,
/**
* Return value of 'can_manage_wikiss' field
*
* @access public
* @param void
* @return boolean
*/
function getCanManageWikiss() {
return $this->getColumnValue('can_manage_wikiss');
} // getCanManageWikiss()
/**
* Set value of 'can_manage_wikiss' field
*
* @access public
* @param void
* @return boolean
*/
function setCanManageWikiss($value) {
return $this->setColumnValue('can_manage_wikiss', $value);
} // setCanManageWikiss()
/**
* Return manager instance
*
* @access protected
* @param void
* @return Groups
*/
6 ) La même chose dans application/models/users/base/BaseUser.class.php
en ligne 45 :
'can_manage_wikiss'=>DATA_TYPE_BOOLEAN,
7 ) Ajouter dans application/helpers/permissions.php
function can_manage_wikiss(User $user, $include_groups = true) {
if ($user->getCanManageWikiss()) {
return true;
}
if ($include_groups) {
$user_ids = $user->getId();
$group_ids = GroupUsers::getGroupsCSVsByUser($user_ids);
if($group_ids!=''){
$gr = Groups::findOne(array('conditions' => array('id in ('.$group_ids.') AND can_manage_wikiss = true ')));
return $gr instanceof Group ;
}
}
return false;
}
8 ) En ligne 268 application/controllers/AccountController.class.php
ajouter :
'can_manage_wikiss' => $user->getCanManageWikiss(),
9 ) En ligne 322, ajouter
$user->setCanManageWikiss(false);
10) En ligne 125 application/controllers/GroupController.class.php
'can_manage_wikiss' => $group->getCanManageWikiss(),
Ajouter en ligne 145 :
if(array_var($group_data, "can_manage_wikiss") != 'checked') $group->setCanManageWikiss(false);
Bonne nuit.