+sub cyrus_insert {
+ my( $username, $quota ) =
+
+ my $client = Cyrus::IMAP::Admin->new($cyrus_server);
+ $client->authenticate(
+ -user => $cyrus_admin_user,
+ -mechanism => "login",
+ -password => $cyrus_admin_pass
+ );
+
+ my $rc = $client->create("user.$username");
+ my $error = $client->error;
+ die $error if $error;
+
+ $rc = $client->setacl("user.$username", $username => 'all' );
+ $error = $client->error;
+ die $error if $error;
+
+ if ( $quota ) {
+ $rc = $client->setquota("user.$username", 'STORAGE' => $quota );
+ $error = $client->error;
+ die $error if $error;
+ }
+
+ 1;
+}
+