diff --git a/bin/access-check-manager.pl.in b/bin/access-check-manager.pl.in index b09a2c865a3cb41588526205c8f08404f0762865..6cfcc7a04e62ae4b6a508cbb987696affaed3ba5 100755 --- a/bin/access-check-manager.pl.in +++ b/bin/access-check-manager.pl.in @@ -58,7 +58,8 @@ AccountManager::DB->register_db( database => $configuration->{database}->{name}, host => $configuration->{database}->{host}, password => $configuration->{database}->{password}, - username => $configuration->{database}->{username} + username => $configuration->{database}->{username}, + options => [ split(/, */, $configuration->{database}->{options}) ] ); my $db = AccountManager::DB->new(); diff --git a/conf/manager.conf.in b/conf/manager.conf.in index ebe24fdd54395a94891a8dd1a0fe850bcc1ad20f..8b8941af0a4db5fe49253648c835b9179c41b137 100644 --- a/conf/manager.conf.in +++ b/conf/manager.conf.in @@ -23,6 +23,7 @@ host = localhost name = idp_account_manager username = idpadmin password = secret +options = mysql_enable_utf8 [idp] scope = my.fqdn diff --git a/lib/AccountManager/App.pm b/lib/AccountManager/App.pm index 96e3c15475071d2519c476bb2e40bd9cc583f17d..0c769a5884364b25471e5abce0ab5abfe29293b1 100644 --- a/lib/AccountManager/App.pm +++ b/lib/AccountManager/App.pm @@ -96,6 +96,7 @@ sub new { host => $self->{configuration}->{database}->{host}, username => $self->{configuration}->{database}->{username}, password => $self->{configuration}->{database}->{password}, + options => [ split(/, */, $self->{configuration}->{database}->{options}) ] ); } else { $self->{logger}->fatal( diff --git a/lib/AccountManager/DB.pm b/lib/AccountManager/DB.pm index 8703bf7b118d559763e2e7200d4ad0ecd3dd12ed..0c9f98d7323100cfcc30241521642977e7650ce1 100644 --- a/lib/AccountManager/DB.pm +++ b/lib/AccountManager/DB.pm @@ -8,7 +8,6 @@ use base 'Rose::DB'; __PACKAGE__->use_private_registry; __PACKAGE__->SUPER::register_db ( - connect_options => { AutoCommit => 1, ChopBlanks => 1 }, driver => 'mysql', host => 'localhost', database => 'fake', @@ -19,8 +18,16 @@ __PACKAGE__->SUPER::register_db ( sub register_db { my ($pkg, %args) = @_; + my $options = { + AutoCommit => 1, + ChopBlanks => 1, + }; + if ($args{options}) { + $options->{$_} = 1 foreach @{$args{options}}; + } + __PACKAGE__->SUPER::register_db ( - connect_options => { AutoCommit => 1, ChopBlanks => 1 }, + connect_options => $options, driver => $args{driver}, host => $args{host}, database => $args{database},