diff --git a/lib/CF.pm b/lib/CF.pm
index 93e3429c1ba69b120b27c36b52c5aefb6f0d1002..fae3ee9f9318ec5acc38d104e7b3187fed6920fc 100644
--- a/lib/CF.pm
+++ b/lib/CF.pm
@@ -70,6 +70,7 @@ sub startup {
                     $c->user, { key => 'uuid'}
                 );
                 $user->set_secret();
+                $user->update_roles($c->user_roles);
 
                 $c->stash->{user}{id} = $user->id;
 
diff --git a/lib/CF/Schema/Result/User.pm b/lib/CF/Schema/Result/User.pm
index 37486dfb35b2f3c643e4c2b3c21ae447f7195849..07c925c6a4bd06940e2218ed5bd20786a28a7fad 100644
--- a/lib/CF/Schema/Result/User.pm
+++ b/lib/CF/Schema/Result/User.pm
@@ -69,4 +69,13 @@ sub set_secret {
 
 }
 
+sub update_roles {
+    my $self       = shift;
+    my $roles_hash = shift;
+
+    $self->update({
+        roles => join ' ', sort keys %{ $roles_hash }
+    });
+}
+
 1;