public function save($id = null)
 {
     if ($this->perm->can_create == 'y') {
         if ($_POST) {
             if (@$_POST['id'] > 0) {
                 $_POST['updated_by'] = $this->user->id;
             } else {
                 $_POST['created_by'] = $this->user->id;
             }
             $data = new User_Type();
             $data->from_array($_POST);
             $data->save();
             $action = $_POST['id'] > 0 ? 'UPDATE' : 'CREATE';
             save_logs($this->menu_id, $action, @$data->id, $action . ' ' . $data->title . ' User Type Detail');
             $sperm['user_type_id'] = $data->id;
             $this->db->query("DELETE FROM acm_user_type_permission WHERE user_type_id = " . $data->id);
             $menus = new System_Menu();
             $menus->where('url IS NOT NULL')->order_by("title", "ASC")->get();
             foreach ($menus as $key => $menu_item) {
                 $sperm['menu_id'] = $menu_item->id;
                 $sperm['can_view'] = @$_POST['chk_' . $menu_item->id . '_view_access'];
                 $sperm['can_create'] = @$_POST['chk_' . $menu_item->id . '_create_access'];
                 $sperm['can_delete'] = @$_POST['chk_' . $menu_item->id . '_delete_access'];
                 $sperm['can_access_all'] = @$_POST['chk_' . $menu_item->id . '_access_all'];
                 $user_type_perm = new User_Type_Permission();
                 $user_type_perm->from_array($sperm);
                 $user_type_perm->save();
             }
         }
     }
     redirect("admin/settings/user_types");
 }
function get_permission($menu_id, $user_type_id, $id = null, $is_parent = null)
{
    $CI =& get_instance();
    if ($id > 0) {
        $foo = new User_Type_Permission($id);
    } else {
        if ($user_type_id > 0 && $is_parent == null) {
            $foo = new User_Type_Permission();
            $foo->where('menu_id = ' . $menu_id . ' AND user_type_id = ' . $user_type_id)->get();
        } else {
            if ($is_parent == 'y') {
                $sql = "SELECT\n\t\t\t\t\t\tcount(*)nrec\n\t\t\t\t\tFROM\n\t\t\t\t\t\tacm_user_type_permission\n\t\t\t\t\tWHERE\n\t\t\t\t\t\tuser_type_id = " . $user_type_id . "\n\t\t\t\t\tAND menu_id IN (\n\t\t\t\t\t\tSELECT\n\t\t\t\t\t\t\tid\n\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\tacm_system_menus\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\tparent_id = " . $menu_id . "\n\t\t\t\t\t)\n\t\t\t\t\tand can_view = 'y'";
                $current_data = $CI->db->query($sql)->result();
                $current_data = @$current_data[0];
                $foo = $current_data->nrec;
            } else {
                $foo = new User_Type_Permission(0);
            }
        }
    }
    return $foo;
}