summaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
authorAlex Legler <a3li@gentoo.org>2009-03-14 14:10:30 +0100
committerAlex Legler <a3li@gentoo.org>2009-03-14 14:10:30 +0100
commit1d852f33f71cbea5998cd230bdd5986793e3b18c (patch)
tree91f32f55541d364342b72d278f6e9af005075a5d /db
parentAdding user model (diff)
downloadglsamaker-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.rb17
-rw-r--r--db/migrate/20090314113649_create_permissions_users.rb16
-rw-r--r--db/migrate/20090314114539_add_users_permissions_constraints.rb11
-rw-r--r--db/schema.rb22
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"