I've been working on this most of the afternoon. I discovered that somewhere in the ProxyRequest process, the first line of the response from my application was getting chewed up a bit, so instead of seeing "UniqueID=123" from my application, Vanilla was seeing "UeID=123" which resulted in the "UniqueID = false" situation that squills was seeing.
It seems to just be some problem with parsing the first line of the response though, because adding a useless comment to the top of my applications response seems to have fixed the problem.
So my applications proxy_authenticate url now responds like this:
;mindless filler in the first line to hopefully work around whatever is munging this reponse UniqueID=<%= my_app_unique_id %> Name=<%= my_app_name %> Email=<%= my_app_email %> TransientKey=<%= my_app_key %> DateOfBirth=1970-01-01 Gender=Male
After this, Vanilla should create the new user in the database successfully and you just need to make sure to approve the "applicant" in the vanilla admin before the auto login will succeed. (I forgot about that and spent another 2 hours working on it.)
So I saw there was a new version of ProxyConnect pushed today. It still appears to not be working.
I started a fresh vanilla install, uploaded and activated the ProxyConnect plugin, however, when you go to authenticate it and select it from the drop down it's sending out errors:
"The "Gdn_PluginManager" object does not have a "xAvailablePluginFolders" method." LOCATION: /forum/library/core/class.pluggable.php > 163: // Make sure that $ActualMethodName exists before continuing: > 164: if (!method_exists($this, $ActualMethodName)) { > 165: // Make sure that a plugin is not handling the call > 166: if (!Gdn::PluginManager()->HasNewMethod($this->ClassName, $ReferenceMethodName)) >>> 167: trigger_error(ErrorMessage('The "' . $this->ClassName . '" object does not have a "' . $ActualMethodName . '" method.', $this->ClassName, $ActualMethodName), E_USER_ERROR); > 168: } > 169: > 170: // Make sure the arguments get passed in the same way whether firing a custom event or a magic one. > 171: $this->EventArguments = $Arguments; BACKTRACE: [/forum/library/core/class.pluggable.php 167] PHP::Gdn_ErrorHandler(); [/forum/plugins/ProxyConnect/class.proxyconnect.plugin.php 58] Gdn_Pluggable->__call(); [/forum/plugins/ProxyConnect/class.proxyconnect.plugin.php 58] Gdn_PluginManager->AvailablePluginFolders(); [/forum/library/core/class.pluginmanager.php 432] ProxyConnectPlugin->SettingsController_ProxyConnect_Create(); [/forum/library/core/class.dispatcher.php 290] Gdn_PluginManager->CallNewMethod(); [/forum/index.php 38] Gdn_Dispatcher->Dispatch();
I don't think I installed this wrong but it has been a looong day. Anyone else try this or have any thoughts?
I am now having to support 2 different versions of the plugin manager, and it seems like something wasn't properly segregated into the correct code path. I'll look into it.
You should try with Vanilla 2.0.18b1 though. It will work there for sure.
Yes I had downloaded and installed the most current stable version of vanilla. 2.0.17.10.
Thanks Tim for working/supporting this add-on. I'll download the vanilla 2.0.18 beta and test it with this. I'll be very happy if it works and even happier when it comes out of beta stages so that it will be able to be used in a live environment.
I submitted an issue in GitHub, but figured I'd mention it here. Is there something wrong with my install (2.0.17.9, WP 3.1.3) or if it's just not covered. Basically after a user has been established in both Vanilla and WordPress with the same email, when they go to change their email in either the WordPress user panel or Vanilla user panel, the change is only reflected in one, not both.
Is there a way to get it so the change automatically occurs in both?
Comments
I've been working on this most of the afternoon. I discovered that somewhere in the ProxyRequest process, the first line of the response from my application was getting chewed up a bit, so instead of seeing "UniqueID=123" from my application, Vanilla was seeing "UeID=123" which resulted in the "UniqueID = false" situation that squills was seeing.
It seems to just be some problem with parsing the first line of the response though, because adding a useless comment to the top of my applications response seems to have fixed the problem.
So my applications proxy_authenticate url now responds like this:
;mindless filler in the first line to hopefully work around whatever is munging this reponse
UniqueID=<%= my_app_unique_id %>
Name=<%= my_app_name %>
Email=<%= my_app_email %>
TransientKey=<%= my_app_key %>
DateOfBirth=1970-01-01
Gender=Male
After this, Vanilla should create the new user in the database successfully and you just need to make sure to approve the "applicant" in the vanilla admin before the auto login will succeed. (I forgot about that and spent another 2 hours working on it.)
Let me know if this helps anyone else.
I started a fresh vanilla install, uploaded and activated the ProxyConnect plugin, however, when you go to authenticate it and select it from the drop down it's sending out errors:
FATAL ERROR IN: Gdn_PluginManager.xAvailablePluginFolders();
"The "Gdn_PluginManager" object does not have a "xAvailablePluginFolders" method." LOCATION: /forum/library/core/class.pluggable.php > 163: // Make sure that $ActualMethodName exists before continuing: > 164: if (!method_exists($this, $ActualMethodName)) { > 165: // Make sure that a plugin is not handling the call > 166: if (!Gdn::PluginManager()->HasNewMethod($this->ClassName, $ReferenceMethodName)) >>> 167: trigger_error(ErrorMessage('The "' . $this->ClassName . '" object does not have a "' . $ActualMethodName . '" method.', $this->ClassName, $ActualMethodName), E_USER_ERROR); > 168: } > 169: > 170: // Make sure the arguments get passed in the same way whether firing a custom event or a magic one. > 171: $this->EventArguments = $Arguments; BACKTRACE: [/forum/library/core/class.pluggable.php 167] PHP::Gdn_ErrorHandler(); [/forum/plugins/ProxyConnect/class.proxyconnect.plugin.php 58] Gdn_Pluggable->__call(); [/forum/plugins/ProxyConnect/class.proxyconnect.plugin.php 58] Gdn_PluginManager->AvailablePluginFolders(); [/forum/library/core/class.pluginmanager.php 432] ProxyConnectPlugin->SettingsController_ProxyConnect_Create(); [/forum/library/core/class.dispatcher.php 290] Gdn_PluginManager->CallNewMethod(); [/forum/index.php 38] Gdn_Dispatcher->Dispatch();
I don't think I installed this wrong but it has been a looong day. Anyone else try this or have any thoughts?
I am now having to support 2 different versions of the plugin manager, and it seems like something wasn't properly segregated into the correct code path. I'll look into it.
You should try with Vanilla 2.0.18b1 though. It will work there for sure.
Vanilla Forums COO [GitHub, Twitter, About.me]
Thanks Tim for working/supporting this add-on. I'll download the vanilla 2.0.18 beta and test it with this. I'll be very happy if it works and even happier when it comes out of beta stages so that it will be able to be used in a live environment.
Vanilla Forums COO [GitHub, Twitter, About.me]
Is there a way to get it so the change automatically occurs in both?