看懂OSSIM的WebUI菜单源码文件

      menu.inc是一段采用PHP编写的菜单文件,在OSSIM各个版本都会要用到,对于希望汉化OSSIM菜单的用户需要深入理解段代码的含义,为了便于代码维护和理解,作者对文件中关键代码进行了说明。阅读本文需要用户具备一定PHP和HTML知识。

一、版权信息

* @package    ossim-framework\Administration

* @autor      AlienVault INC

* @license    http://www.gnu.org/licenses/gpl-2.0.txt

* @copyright  2003-2006 ossim.net

* @copyright  2007-2013 AlienVault

* @link       AT&T Cybersecurity | Managed Security Services for Network, XDR & more

二、权限设置

         这一部分主要介绍定义菜单和模板的权限。下面这是一组调用文件,用来导入信誉类定义、模板文件和av配置参数,建议不要轻易修改否则引起“fatal error”致命错误。

require_once 'classes/Reputation.inc';

require_once 'classes/template.inc';

require_once 'av_config.php';

//这是一个类构造函数

 public function __construct($conn, $login = '')

    {

        Ossim_db::check_connection($conn);

        // 从数据库中获取用户信息

        $this->user = Session::get_user_info($conn, $login);



        if (empty($this->user))

        {

            $exp_msg = _('Error! Menu class not created.  Logged user not found in the System');



            Av_exception::throw_error(Av_exception::USER_ERROR, $exp_msg);

        }

//获取管理员admin的菜单权限

 // 初始化一个空数组,用于存储允许访问的菜单$this->allowed_menus = array();

// 如果用户不是管理员if (!$this->is_user_admin())

 // 重新初始化为空数组,以确保不会受到任何预先设置的影响

 $this->allowed_menus = array();

   // 实例化一个模板对象,并从数据库加载模板数据

    $template = new Template($conn, $this->user->get_template_id());

    $template->load_from_db($conn);

    // 获取模板的权限信息

    

$template_perms = $template->get_perms();

    // 如果权限信息是数组且不为空 

   if (is_array($template_perms) && !empty($template_perms))

    {
  

        // 遍历权限信息,将权限数据存入allowed_menus数组

        foreach($template_perms as $perm_data)

        {

            $perm_data = explode('###', $perm_data);

            $this->allowed_menus[$perm_data[0]][$perm_data[1]] = 1;

        }

    }

}

下面这是对安全相关的部分,定义菜单权限。

$perm_m_settings = TRUE;

// 检查权限,根据用户日志工具设置用户活动权限

$perm_user_activity = $this->check_perm("settings-menu", "ToolsUserLog");

$this->menus['settings'] = array(

    "name"     => _("Settings"), // 设置名称

    "enabled"  => $perm_m_settings, // 设置是否启用

    "display"  => FALSE, // 设置是否显示

    "submenu"  => array(

        "settings" => array(  // 子菜单项

            "name"    => _("Settings"),  // 子菜单名称

            "enabled" => TRUE,  // 子菜单是否启用

            "hmenu"   => array(  // 子菜单列表

                "my_profile"  => array(  

                    "name"    => _("My Profile"),  // 子菜单名称

                    "enabled" => TRUE,  // 启用

                    "url"     => "/session/user_form.php?login=".$this->user->get_login()  // 跳转链接

                ),

                "current_sessions" => array(  // 当前会话

                    "name"    => _("Current Sessions"),  // 子菜单名称

                    "enabled" => TRUE,  // 启用

                    "url"     => "/userlog/opened_ses
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值