@@ -233,6 +233,19 @@ public function setupMasterAccount(){
233233
234234 $ user ->id = $ this ->_app ->config ('user_id_master ' );
235235
236+ // If using SQL Server or Azure SQL Server, store the user now.
237+ if (\Illuminate \Database \Capsule \Manager::connection ()->getPdo ()->getAttribute (\PDO ::ATTR_DRIVER_NAME ) == "sqlsrv " ) {
238+ // Manually insert master user to overcome session IDENTITY_INSERT restriction caused by AUTO_NUMBER specification.
239+ $ tableName = $ user ->getTable ();
240+ $ values = $ user ->export ();
241+ $ values ['created_at ' ] = \Carbon \Carbon::now ();
242+ $ values ['updated_at ' ] = \Carbon \Carbon::now ();
243+ \Illuminate \Database \Capsule \Manager::statement ("SET IDENTITY_INSERT [ $ tableName] ON; INSERT INTO [ $ tableName] (id, user_name, display_name, email, password, flag_verified, locale, primary_group_id, title, created_at, updated_at) VALUES (:id, :user_name, :display_name, :email, :password, :flag_verified, :locale, :primary_group_id, :title, :created_at, :updated_at); " , $ values );
244+
245+ // Get master user back from database
246+ $ user = User::where ('id ' , $ this ->_app ->config ('user_id_master ' ))->first ();
247+ }
248+
236249 // Add user to default groups, including default primary group
237250 $ defaultGroups = Group::where ('is_default ' , GROUP_DEFAULT )->get ();
238251 $ user ->addGroup ($ primaryGroup ->id );
@@ -241,27 +254,11 @@ public function setupMasterAccount(){
241254 $ user ->addGroup ($ group_id );
242255 }
243256
244- // If using SQL Server or Azure SQL Server, use this alternative insert method.
245- if (\Illuminate \Database \Capsule \Manager::connection ()->getPdo ()->getAttribute (\PDO ::ATTR_DRIVER_NAME ) == "sqlsrv " ) {
246- // Manually build insert statement to overcome session IDENTITY_INSERT restriction.
247- $ tableName = $ user ->getTable ();
248- $ values = $ user ->export ();
249- $ values ['created_at ' ] = date ("Y-m-d h:i:s " );
250- $ values ['updated_at ' ] = date ("Y-m-d h:i:s " );
251- \Illuminate \Database \Capsule \Manager::statement ("SET IDENTITY_INSERT [ $ tableName] ON; INSERT INTO [ $ tableName] (id, user_name, display_name, email, password, flag_verified, locale, primary_group_id, title, created_at, updated_at) VALUES (:id, :user_name, :display_name, :email, :password, :flag_verified, :locale, :primary_group_id, :title, :created_at, :updated_at); " , $ values );
257+ // Add sign-up event
258+ $ user ->newEventSignUp ();
252259
253- // Add sign-up event
254- $ user = User::where ('id ' , 1 )->first ();
255- $ user ->newEventSignUp ();
256- $ user ->save ();
257- }
258- else {
259- // Add sign-up event
260- $ user ->newEventSignUp ();
261-
262- // Store new user to database
263- $ user ->save ();
264- }
260+ // Store new user to database
261+ $ user ->save ();
265262
266263 // No activation required
267264 $ ms ->addMessageTranslated ("success " , "ACCOUNT_REGISTRATION_COMPLETE_TYPE1 " );
0 commit comments