| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | <?php/** * @file * Definition of views_plugin_access_perm. *//** * Access plugin that provides permission-based access control. * * @ingroup views_access_plugins */class views_plugin_access_perm extends views_plugin_access {  /**   * {@inheritdoc}   */  public function access($account) {    return views_check_perm($this->options['perm'], $account);  }  /**   * {@inheritdoc}   */  public function get_access_callback() {    return array('views_check_perm', array($this->options['perm']));  }  /**   * {@inheritdoc}   */  public function summary_title() {    $permissions = module_invoke_all('permission');    if (isset($permissions[$this->options['perm']])) {      return $permissions[$this->options['perm']]['title'];    }    return t($this->options['perm']);  }  /**   * {@inheritdoc}   */  public function option_definition() {    $options = parent::option_definition();    $options['perm'] = array('default' => 'access content');    return $options;  }  /**   * {@inheritdoc}   */  public function options_form(&$form, &$form_state) {    parent::options_form($form, $form_state);    $perms = array();    $module_info = system_get_info('module');    // Get list of permissions.    foreach (module_implements('permission') as $module) {      $permissions = module_invoke($module, 'permission');      foreach ($permissions as $name => $perm) {        $perms[$module_info[$module]['name']][$name] = strip_tags($perm['title']);      }    }    ksort($perms);    $form['perm'] = array(      '#type' => 'select',      '#options' => $perms,      '#title' => t('Permission'),      '#default_value' => $this->options['perm'],      '#description' => t('Only users with the selected permission flag will be able to access this display. Note that users with "access all views" can see any view, regardless of other permissions.'),    );  }}
 |