[#8171] changes in user's full name will now change activity record entries too
diff --git a/Allura/allura/lib/plugin.py b/Allura/allura/lib/plugin.py
index aafe236..45bc309 100644
--- a/Allura/allura/lib/plugin.py
+++ b/Allura/allura/lib/plugin.py
@@ -54,6 +54,7 @@
 from allura.lib import security
 from allura.lib import exceptions as forge_exc
 from allura.lib import utils
+from allura.tasks import activity_tasks
 from allura.tasks.index_tasks import solr_del_project_artifacts
 
 log = logging.getLogger(__name__)
@@ -1489,6 +1490,9 @@
             return getattr(user, pref_name)
 
     def set_pref(self, user, pref_name, pref_value):
+        if pref_name == 'display_name' and asbool(config.get('activitystream.recording.enabled', False)):
+            activity_tasks.change_user_name.post(user._id, pref_value)
+
         if pref_name in user.preferences:
             user.preferences[pref_name] = pref_value
         else:
diff --git a/Allura/allura/tasks/activity_tasks.py b/Allura/allura/tasks/activity_tasks.py
index 26ac02a..312d9ec 100644
--- a/Allura/allura/tasks/activity_tasks.py
+++ b/Allura/allura/tasks/activity_tasks.py
@@ -16,6 +16,7 @@
 #       under the License.
 
 from pylons import app_globals as g
+from activitystream.storage.mingstorage import Activity
 
 from allura.lib.decorators import task
 
@@ -23,3 +24,14 @@
 @task
 def create_timelines(node_id):
     g.director.create_timelines(node_id)
+
+
+@task
+def change_user_name(user_id, new_name):
+    Activity.query.update(
+        {'actor.node_id': "User:{}".format(user_id)},
+        {'$set': {
+            "actor.activity_name": new_name,
+        }},
+        multi=True
+    )