package MyApp::Schema::Result::User; __PACKAGE__->has_many( "user_roles", "MyApp::Schema::Result::UserRole", { "foreign.username" => "self.username" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->many_to_many("roles", "user_roles", "role"); package MyApp::Schema::Result::Role; __PACKAGE__->has_many( "role_pages", "MyApp::Schema::Result::RolePage", { "foreign.role" => "self.role" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->has_many( "user_roles", "MyApp::Schema::Result::UserRole", { "foreign.role" => "self.role" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->many_to_many("page_names", "role_pages", "page_name") __PACKAGE__->many_to_many("usernames", "user_roles", "username"); package MyApp::Schema::Result::Page; __PACKAGE__->has_many( "role_pages", "MyApp::Schema::Result::RolePage", { "foreign.page_name" => "self.page_name" }, { cascade_copy => 0, cascade_delete => 0 }, ); __PACKAGE__->many_to_many("roles", "role_pages", "role"); package MyApp::Schema::Result::UserRole; __PACKAGE__->belongs_to( "role", "MyApp::Schema::Result::Role", { role => "role" }, { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, ); __PACKAGE__->belongs_to( "username", "MyApp::Schema::Result::User", { username => "username" }, { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, ); package MyApp::Schema::Result::RolePage; __PACKAGE__->belongs_to( "page_name", "MyApp::Schema::Result::Page", { page_name => "page_name" }, { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, ); __PACKAGE__->belongs_to( "role", "MyApp::Schema::Result::Role", { role => "role" }, { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, );