add permission function