I forgot to commit the sql script for last commits.
[platal.git] / include / name.func.inc.php
index 2c9b079..1f78daf 100644 (file)
@@ -320,23 +320,25 @@ function set_alias_names(&$sn_new, $sn_old, $pid, PlUser $user, $update_new = fa
 
     // XXX: Improve this when we optimize names handling.
     // Updates accounts firt and last names.
-    XDB::execute('UPDATE TABLE  accounts          AS a
-                    INNER JOIN  profile_name_enum AS le ON (le.type = \'lastname\')
-                    INNER JOIN  profile_name_enum AS ce ON (ce.type = \'lastname_ordinary\')
-                    INNER JOIN  profile_name      AS l  ON (a.uid = l.uid AND le.id = l.typeid)
-                     LEFT JOIN  profile_name      AS c  ON (a.uid = c.uid AND ce.id = c.typeid)
-                           SET  a.lastname = IF(c.uid IS NULL, IF(l.particle != \'\', l.name, CONCAT(l.particle, \' \', l.name))
-                                                               IF(c.particle != \'\', c.name, CONCAT(c.particle, \' \', c.name)))
-                         WHERE  a.uid = {?}',
+    XDB::execute('UPDATE  accounts          AS a
+              INNER JOIN  account_profiles  AS ap ON (ap.uid = a.uid AND FIND_IN_SET(\'owner\', ap.perms))
+              INNER JOIN  profile_name_enum AS le ON (le.type = \'lastname\')
+              INNER JOIN  profile_name_enum AS ce ON (ce.type = \'lastname_ordinary\')
+              INNER JOIN  profile_name      AS l  ON (ap.pid = l.pid AND le.id = l.typeid)
+               LEFT JOIN  profile_name      AS c  ON (ap.pid = c.pid AND ce.id = c.typeid)
+                     SET  a.lastname = IF(c.pid IS NULL, IF(l.particle != \'\', l.name, CONCAT(l.particle, \' \', l.name)),
+                                                         IF(c.particle != \'\', c.name, CONCAT(c.particle, \' \', c.name)))
+                   WHERE  a.uid = {?}',
                  $user->id());
 
-    XDB::execute('UPDATE TABLE  accounts          AS a
-                    INNER JOIN  profile_name_enum AS fe ON (fe.type = \'firstname\')
-                    INNER JOIN  profile_name_enum AS ce ON (ce.type = \'firstname_ordinary\')
-                    INNER JOIN  profile_name      AS f  ON (a.uid = f.uid AND fe.id = f.typeid)
-                     LEFT JOIN  profile_name      AS c  ON (a.uid = c.uid AND ce.id = c.typeid)
-                           SET  a.firstname = IF(c.uid IS NULL, f.name, c.name)
-                         WHERE  a.uid = {?}',
+    XDB::execute('UPDATE  accounts          AS a
+              INNER JOIN  account_profiles  AS ap ON (ap.uid = a.uid AND FIND_IN_SET(\'owner\', ap.perms))
+              INNER JOIN  profile_name_enum AS fe ON (fe.type = \'firstname\')
+              INNER JOIN  profile_name_enum AS ce ON (ce.type = \'firstname_ordinary\')
+              INNER JOIN  profile_name      AS f  ON (ap.pid = f.pid AND fe.id = f.typeid)
+               LEFT JOIN  profile_name      AS c  ON (ap.pid = c.pid AND ce.id = c.typeid)
+                     SET  a.firstname = IF(c.pid IS NULL, f.name, c.name)
+                   WHERE  a.uid = {?}',
                  $user->id());
 
     Profile::rebuildSearchTokens($pid, false);