perform permissions check