improve logic with admin role