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;