Add user_open() function