у тебя архитектура кривоватая получилось:
1) что AdminUser, что CommonUser выполняют одно и тоже. От CommonUser можно избавиться, так как по сути это User
2) В метод register надо передавать созданный объект юзера, а не внутри метода его создавать. У класса User может быть метод getRole по которому будет происходить проверка внутри метода (если нужна)
3) Проще юзать готовый модуль работы с куки, например, js-cookie - будет более читабельный код