diff options
author | Alex Legler <a3li@gentoo.org> | 2009-03-14 14:10:30 +0100 |
---|---|---|
committer | Alex Legler <a3li@gentoo.org> | 2009-03-14 14:10:30 +0100 |
commit | 1d852f33f71cbea5998cd230bdd5986793e3b18c (patch) | |
tree | 91f32f55541d364342b72d278f6e9af005075a5d /db | |
parent | Adding user model (diff) | |
download | glsamaker-1d852f33f71cbea5998cd230bdd5986793e3b18c.tar.gz glsamaker-1d852f33f71cbea5998cd230bdd5986793e3b18c.tar.bz2 glsamaker-1d852f33f71cbea5998cd230bdd5986793e3b18c.zip |
Adding Permission models
* Permission, PermissionsUsers models
* Foreign key constraints for PermissionsUsers
* Updated users fixtures
* Added permission support to user model
* Added tests for permissions
Diffstat (limited to 'db')
-rw-r--r-- | db/migrate/20090314113610_create_permissions.rb | 17 | ||||
-rw-r--r-- | db/migrate/20090314113649_create_permissions_users.rb | 16 | ||||
-rw-r--r-- | db/migrate/20090314114539_add_users_permissions_constraints.rb | 11 | ||||
-rw-r--r-- | db/schema.rb | 22 |
4 files changed, 65 insertions, 1 deletions
diff --git a/db/migrate/20090314113610_create_permissions.rb b/db/migrate/20090314113610_create_permissions.rb new file mode 100644 index 0000000..887034f --- /dev/null +++ b/db/migrate/20090314113610_create_permissions.rb @@ -0,0 +1,17 @@ +class CreatePermissions < ActiveRecord::Migration + def self.up + create_table :permissions do |t| + t.string :name + t.string :title + t.string :description + t.timestamps + end + + add_index :permissions, :name, :unique => true + end + + def self.down + remove_index :permissions, :column => :name + drop_table :permissions + end +end diff --git a/db/migrate/20090314113649_create_permissions_users.rb b/db/migrate/20090314113649_create_permissions_users.rb new file mode 100644 index 0000000..143cd23 --- /dev/null +++ b/db/migrate/20090314113649_create_permissions_users.rb @@ -0,0 +1,16 @@ +class CreatePermissionsUsers < ActiveRecord::Migration + def self.up + create_table :permissions_users do |t| + t.integer :user_id + t.integer :permission_id + t.timestamps + end + + add_index :permissions_users, [:user_id, :permission_id] + end + + def self.down + remove_index :permissions_users, :column => [:user_id, :permission_id] + drop_table :permissions_users + end +end diff --git a/db/migrate/20090314114539_add_users_permissions_constraints.rb b/db/migrate/20090314114539_add_users_permissions_constraints.rb new file mode 100644 index 0000000..8d269fe --- /dev/null +++ b/db/migrate/20090314114539_add_users_permissions_constraints.rb @@ -0,0 +1,11 @@ +class AddUsersPermissionsConstraints < ActiveRecord::Migration + def self.up + execute "ALTER TABLE permissions_users ADD CONSTRAINT permissions_users_users FOREIGN KEY (user_id) REFERENCES users (id)" + execute "ALTER TABLE permissions_users ADD CONSTRAINT permissions_users_permissions FOREIGN KEY (permission_id) REFERENCES permissions (id)" + end + + def self.down + execute "ALTER TABLE permissions_users DROP FOREIGN KEY permissions_users_users" + execute "ALTER TABLE permissions_users DROP FOREIGN KEY permissions_users_permissions" + end +end diff --git a/db/schema.rb b/db/schema.rb index 8d5aae7..ef54de5 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -9,7 +9,27 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20090314092539) do +ActiveRecord::Schema.define(:version => 20090314114539) do + + create_table "permissions", :force => true do |t| + t.string "name" + t.string "title" + t.string "description" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "permissions", ["name"], :name => "index_permissions_on_name", :unique => true + + create_table "permissions_users", :force => true do |t| + t.integer "user_id" + t.integer "permission_id" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "permissions_users", ["permission_id"], :name => "permissions_users_permissions" + add_index "permissions_users", ["user_id", "permission_id"], :name => "index_permissions_users_on_user_id_and_permission_id" create_table "users", :force => true do |t| t.string "login" |