Beispiel #1
0
 /**
  * 添加当前角色到当前菜单及所有上级
  * @param number $role_id
  * @param number $menu_id
  */
 public function addRoleToMenu($role_id, $menu_id)
 {
     $menu = new Home_Model_Menu();
     // 检查当前菜单是否存在上级菜单
     $data = $menu->fetchRow("id = " . $menu_id);
     // 上级菜单ID > 0表示当前菜单拥有上级菜单
     if ($data['parent_id'] > 0) {
         // 如存在上级菜单,且上级菜单未包含当前角色,添加角色到上级菜单(继承上级菜单权限)
         if ($this->fetchAll("menu_id = " . $data['parent_id'] . " and role_id = " . $role_id)->count() == 0) {
             $this->addRoleToMenu($role_id, $data['parent_id']);
         }
     }
     // 如当前菜单未曾添加当前角色,则添加角色到当前菜单
     if ($this->fetchAll("role_id = " . $role_id . " and menu_id = " . $menu_id)->count() == 0) {
         $this->insert(array('role_id' => $role_id, 'menu_id' => $menu_id));
     }
 }