With the current code only uid 1 (first user) can access the module settings at "www.mysite.com/settings/phpfreechat".

'access' => user_access('admin phpfreechat'); is set in hook menu twice:

/**
 * Implementation of hook_menu().
 */
function phpfreechat_menu($may_cache) {
  $items = array();
  if ($may_cache) {
    $items[] = array(
      'path' => 'phpfreechat/nuke',
      'title' => t('Clear chats!'),
      'callback' => 'phpfreechat_nuke',
      'callback arguments' => array(arg(2)),
      'access' => user_access('admin phpfreechat'),
      'type' => MENU_CALLBACK);
    $items[] = array(
      'path' => 'admin/settings/phpfreechat',
      'title' => t('phpFreeChat'),
      'description' => t('Settings to configure phpFreeChat.'),
      'callback' => 'drupal_get_form',
      'callback arguments' => array('phpfreechat_settings'),
      'access' => user_access('admin phpfreechat'),
      'type' => MENU_NORMAL_ITEM);
  }
  return $items;
}

but there is no such item as 'admin phpfreechat' in the access-array of hook_perm():

/**
 * Implementation of hook_perm().
 */
function phpfreechat_perm() {
  return array('talk on chat channels', 'create nodes with chatrooms', 'moderate chat channels');
}

So, please fix it by adding "admin phpfreechat" added to the array, like this:

return array('talk on chat channels', 'create nodes with chatrooms', 'admin phpfreechat');

After this possible "admin"-users that are not uid 1 can access the settings.

Im not making a patch for this, but I have to wonder how this can go unnoticed in such a good module. I'm using the http://permutations.com/drupal/phpfreechat.php - version which I understand is soon going to be fused with the official module.. but this bug exists in both current versions.

Comments

bibo’s picture

Wow, I managed to fail on that one-line-fix. The correct line would be:

return array('talk on chat channels', 'create nodes with chatrooms', 'moderate chat channels', 'admin phpfreechat');
coming’s picture

thanks to bibo

permutations’s picture

Thanks. I just uploaded the latest version of the code to the Drupal site as release version 1.2. I'll take a look at this and fold it in later in the week.

permutations’s picture

Version: 5.x-1.0-rc4 » 5.x-1.2
Assigned: Unassigned » permutations
permutations’s picture

Version: 5.x-1.2 » 5.x-1.3
Category: task » feature
Priority: Critical » Minor