Home > Forum > General > Change UPN

Change UPN
0

Webcon BPS authorization with AD. I need to change the UPN for users, but after changing the UPN, the user loses access to all documents in Webcon created before the UPN change. I want to make the change in batches, so I can't do it for all users at once. How do I make the change for specific users?

MVP

Hi Wojciech,

there is/existed a stored procedure which allowed to replace the UPN of a user with another one.

This has been removed from later versions:
https://community.webcon.com/forum/thread/7300?messageid=7300

Based on the answers in the linked post you need to get in touch with the support. Maybe there's a higher chance, that it will make it back to the product if enough support tickets are created. :)

Best regards,
Daniel

Wojciech, if you want to use this feature for, say, 10-30 + people, I suggest creating a process for it in WEBCON and a job in SQL that runs in the service window at night, e.g., from 10 p.m. to 4 a.m. In the process, you add reporting for who it was performed for, along with a notification of completion to the person concerned. After making all user changes, it is a good idea to reindex SOLR after changing logins.
I processed this for 1,500 people, but it took a month, and the list of people was indicated who was to have their logins updated on a given day.

As Daniel wrote, you can write to webcon support or to the implementation company that will provide you with this.

MVP
In reply to: Maksymilian Stachowiak

Adding to what everyone said, you could also run permission migration through Designer Studio:
https://docs.webcon.com/docs/2025R2/Studio/AdminTools/#permissions-migration

This will give access to specific users back, although it won't update any wfd_attchooseX fields (that's why Daniel mentioned ReplaceLogins stored procedure).

One of our clients does a user migration where they end up in a different AD with a new Upn.

Found a way to automate the migration process :)

The change permission action executes a rest call to /api/studio/db/1/replacesecurities.

I created a new Api application, gave Admin..ReadWrite.All permission and added the application to the Global Admins in Designer Studio.

The post call to /api/studio/db/1/replacesecurities expects the following json:

{"ReplaceArchive":false,"OldValue":{"UserName":"Migration Test","UserLogin":"migration-test1@test.ch"},"NewValue":{"UserName":"Migration Test","UserLogin":"migration-test1@newtest.ch"}}

and returns the result in the following format:

{"report":"Number of changed rows: 0.\r\n\r\nNumber of changed rows: 0.\r\n\r\n","advancedReport":"\t----Permission migration----\r\n\t----migration-test1@test.ch from migration-test2@test.ch----\r\n\t----09/25/2025 08:58:43----\r\n\r\n\r\n\t----Permission migration----\r\n\t----migration-test1@test.ch from migration-test1@newtest.ch----\r\n\t----09/25/2025 08:58:43----\r\n\r\n\r\nProcessing archive database: [....]\r\nProcessing archive database: [BPS_GSI_Content_Arch]\r\nProcessing content database: [.....]\r\nProcessing content database: [.....]\r\n\t---Changes in table WFDataConnections.---\r\n\r\nAffected fields:\r\nWFC_Owners.\r\n\r\n\t---Changes in table WFDataConnections.---\r\n\r\nAffected fields:\r\nWFC_Owners.\r\n\r\n\t---Changes in table WFDataSources.---\r\n\r\nAffected fields:\r\nWFS_Owners.\r\n\r\n\t---Changes in table WFDataSources.---\r\n\r\nAffected fields:\r\nWFS_Owners.\r\n\r\n\r\n"}

MVP
In reply to: Markus Jenni

One of our clients does a user migration where they end up in a different AD with a new Upn.

Found a way to automate the migration process :)

The change permission action executes a rest call to /api/studio/db/1/replacesecurities.

I created a new Api application, gave Admin..ReadWrite.All permission and added the application to the Global Admins in Designer Studio.

The post call to /api/studio/db/1/replacesecurities expects the following json:

{"ReplaceArchive":false,"OldValue":{"UserName":"Migration Test","UserLogin":"migration-test1@test.ch"},"NewValue":{"UserName":"Migration Test","UserLogin":"migration-test1@newtest.ch"}}

and returns the result in the following format:

{"report":"Number of changed rows: 0.\r\n\r\nNumber of changed rows: 0.\r\n\r\n","advancedReport":"\t----Permission migration----\r\n\t----migration-test1@test.ch from migration-test2@test.ch----\r\n\t----09/25/2025 08:58:43----\r\n\r\n\r\n\t----Permission migration----\r\n\t----migration-test1@test.ch from migration-test1@newtest.ch----\r\n\t----09/25/2025 08:58:43----\r\n\r\n\r\nProcessing archive database: [....]\r\nProcessing archive database: [BPS_GSI_Content_Arch]\r\nProcessing content database: [.....]\r\nProcessing content database: [.....]\r\n\t---Changes in table WFDataConnections.---\r\n\r\nAffected fields:\r\nWFC_Owners.\r\n\r\n\t---Changes in table WFDataConnections.---\r\n\r\nAffected fields:\r\nWFC_Owners.\r\n\r\n\t---Changes in table WFDataSources.---\r\n\r\nAffected fields:\r\nWFS_Owners.\r\n\r\n\t---Changes in table WFDataSources.---\r\n\r\nAffected fields:\r\nWFS_Owners.\r\n\r\n\r\n"}

Hi Markus,
As you've trimmed the response, in 'Processing content database', is there any information about wfd_attchooseXX being also updated?