adding optional Flask-Principal integration