adeia 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +1 -23
- data/app/assets/javascripts/adeia/application.js +13 -0
- data/app/assets/stylesheets/adeia/application.css +15 -0
- data/app/controllers/adeia/application_controller.rb +4 -0
- data/app/helpers/adeia/application_helper.rb +4 -0
- data/app/models/adeia/action.rb +5 -0
- data/app/models/adeia/action_permission.rb +6 -0
- data/app/models/adeia/element.rb +3 -0
- data/app/models/adeia/group.rb +3 -0
- data/app/models/adeia/group_user.rb +4 -0
- data/app/models/adeia/permission.rb +4 -0
- data/app/models/adeia/token.rb +5 -0
- data/config/locales/en.yml +6 -0
- data/config/locales/fr.yml +6 -0
- data/config/routes.rb +2 -2
- data/db/migrate/20151003144041_create_adeia_elements.rb +9 -0
- data/db/migrate/20151003144208_create_adeia_permissions.rb +16 -0
- data/db/migrate/20151003144650_create_adeia_groups.rb +9 -0
- data/db/migrate/20151003144706_create_adeia_group_users.rb +10 -0
- data/db/migrate/20151003150524_create_adeia_tokens.rb +12 -0
- data/db/migrate/20151003150747_create_adeia_actions.rb +9 -0
- data/db/migrate/20151003150806_create_adeia_action_permissions.rb +10 -0
- data/lib/adeia/authorization.rb +48 -0
- data/lib/adeia/controller_methods.rb +43 -0
- data/lib/adeia/controller_resource.rb +84 -0
- data/lib/adeia/database.rb +52 -0
- data/lib/adeia/engine.rb +8 -0
- data/lib/adeia/exceptions.rb +33 -0
- data/lib/adeia/version.rb +1 -1
- data/test/dummy/app/assets/javascripts/sessions.js +2 -0
- data/test/dummy/app/assets/stylesheets/scaffold.css +56 -0
- data/test/dummy/app/assets/stylesheets/sessions.css +4 -0
- data/test/dummy/app/controllers/application_controller.rb +2 -0
- data/test/dummy/app/controllers/articles_controller.rb +55 -0
- data/test/dummy/app/controllers/sessions_controller.rb +22 -0
- data/test/dummy/app/helpers/sessions_helper.rb +32 -0
- data/test/dummy/app/models/article.rb +3 -0
- data/test/dummy/app/models/user.rb +13 -0
- data/test/dummy/app/views/articles/_form.html.erb +25 -0
- data/test/dummy/app/views/articles/edit.html.erb +6 -0
- data/test/dummy/app/views/articles/index.html.erb +31 -0
- data/test/dummy/app/views/articles/new.html.erb +5 -0
- data/test/dummy/app/views/articles/show.html.erb +19 -0
- data/test/dummy/app/views/layouts/application.html.erb +8 -0
- data/test/dummy/app/views/sessions/new.html.erb +19 -0
- data/test/dummy/config/routes.rb +6 -51
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/migrate/20150930161522_create_users.rb +11 -0
- data/test/dummy/db/migrate/20150930161532_create_articles.rb +11 -0
- data/test/dummy/db/migrate/20151003145900_create_adeia_elements.adeia.rb +10 -0
- data/test/dummy/db/migrate/20151003145901_create_adeia_permissions.adeia.rb +17 -0
- data/test/dummy/db/migrate/20151003145902_create_adeia_groups.adeia.rb +10 -0
- data/test/dummy/db/migrate/20151003145903_create_adeia_group_users.adeia.rb +11 -0
- data/test/dummy/db/migrate/20151003150941_create_adeia_tokens.adeia.rb +13 -0
- data/test/dummy/db/migrate/20151003150942_create_adeia_actions.adeia.rb +10 -0
- data/test/dummy/db/migrate/20151003150943_create_adeia_action_permissions.adeia.rb +11 -0
- data/test/dummy/db/schema.rb +100 -0
- data/test/dummy/lib/tasks/init.rake +8 -0
- data/test/dummy/log/development.log +4656 -0
- data/test/dummy/test/controllers/articles_controller_test.rb +49 -0
- data/test/dummy/test/controllers/sessions_controller_test.rb +7 -0
- data/test/dummy/test/controllers/users_controller_test.rb +49 -0
- data/test/dummy/test/fixtures/articles.yml +11 -0
- data/test/dummy/test/fixtures/users.yml +9 -0
- data/test/{integration/navigation_test.rb → dummy/test/models/article_test.rb} +1 -2
- data/test/dummy/test/models/user_test.rb +7 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/007YZnzCZDb7P0xbxiEkmAM6-xSsxmYu_W7vnrvcDOs.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/1GiUoKAP-7ewZyzr_eCTMX0R8ML5Z_VN2bfQ05RAW30.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/6n6yNyR4eQhIVjw5Anxur-SLgdDc_rzuMuZKj6Q4FqE.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/80nWjD2uxLBuIN1R5NawmTsgZWCB6nln8WXf_5gHri4.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/9Fw_WnCC15QnXUQZ4eYTYLOBv20at5Z5gL-WJx_QsR4.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/D4VyPOMG_wXgPRZtj-mbRdONJXbdgOZKcuwSm-lNNIA.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/DmmfrCpXtt74Hr6NO54lxyOCDv6klnDyBqeDFR7oDU8.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/HggfmBmV-rmvrvzJjqvjmDpwB2BTEQvh6krp0CcrI0U.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/P1NOTKHlk-FIwqlw0wiyLanpgNyubwQi850S1aonsbQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/PKcbfub75wwU6UzvVnSMFn_6wsaaPUoXMtWTnyyh5jM.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/S4dXPkh6wlupsMUb-GvZ2Q5PwAZmplTCkViWCnVWWw0.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/UuBE6kIOXtWOmnrnywPI98bzHE-L84SteUEfzexxVtA.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/Xa5LZJIrW7sSuOWWFwCAhDkDQ71pA_cHp6H5kiTZS6E.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/eQqoU12FSWEA4BsL-PjwTnIUr1bZsu27SOzFHPomG4c.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/f3V_hqqK4rH7Z51LFX1Wk9hrWGjYABTZmgSeYvWKgLs.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/gXIpNlfbH4G7-D0grgt2EuWuwHwTymznc1rlxJ1-C0A.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/hX4wt6FzyI47gW66iiVyl2C722yfwvx3KafFEYkreEY.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/nZCCAAO-XWnPS2Xr9yss0VhSONvnR3emOuEIc_b-1OY.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/r5qzpye5vWgzwRnRhhSYkUslyNZ11pyYXQZqGe8o930.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/t0GCJAJcd_7X2F172TjwwDZ6rfNJc2FRbDTV5-jSqY0.cache +1 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/t92Y0f7B0gH-r5W-iNadtkzgjm8gxyEyttnY6AWpdmw.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/tYGZjTIGEDMySqV7qHf43dq0_aB7TuSEhhZtN_9xW54.cache +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/wMjI0_cDi3gmsOV5xXr-QPQOfHCB_qea8St_udeflhE.cache +2 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/v3.0/z2mRCA3647ZviK5pXi1_qLwdxkiCaoIfZj7jHoMfLiI.cache +1 -0
- metadata +179 -12
- data/README.rdoc +0 -3
- data/lib/tasks/adeia_tasks.rake +0 -3
- data/test/adeia_test.rb +0 -7
- data/test/dummy/README.rdoc +0 -28
- data/test/test_helper.rb +0 -20
@@ -0,0 +1,22 @@
|
|
1
|
+
class SessionsController < ApplicationController
|
2
|
+
|
3
|
+
def new
|
4
|
+
end
|
5
|
+
|
6
|
+
def create
|
7
|
+
@user = User.find_by_name(params[:session][:name])
|
8
|
+
if @user && @user.authenticate(params[:session][:password])
|
9
|
+
sign_in(@user, permanent: params[:session][:remember_me] == "1")
|
10
|
+
redirect_to articles_path, success: "Signed in"
|
11
|
+
else
|
12
|
+
flash.now[:error] = "Incorrect user/password"
|
13
|
+
render 'new'
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def destroy
|
18
|
+
sign_out
|
19
|
+
redirect_to root_path, "Signed out"
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module SessionsHelper
|
2
|
+
|
3
|
+
# Sign in a user with a cookie (remove on browser close)
|
4
|
+
#
|
5
|
+
# * *Args* :
|
6
|
+
# - a user to sign in
|
7
|
+
# * *Returns* :
|
8
|
+
#
|
9
|
+
def sign_in(user, permanent: false)
|
10
|
+
cookies[:remember_token] = { value: user.remember_token, expires: (Time.now + 2592000 if permanent) }
|
11
|
+
self.current_user = user
|
12
|
+
end
|
13
|
+
|
14
|
+
def current_user=(user)
|
15
|
+
@current_user = user
|
16
|
+
end
|
17
|
+
|
18
|
+
# Provid the user currently signed in.
|
19
|
+
#
|
20
|
+
# * *Returns* :
|
21
|
+
# - the user currently signed in
|
22
|
+
def current_user
|
23
|
+
@current_user ||= User.find_by_remember_token(cookies[:remember_token])
|
24
|
+
end
|
25
|
+
|
26
|
+
# Sign out a user by removing the cookie.
|
27
|
+
def sign_out
|
28
|
+
self.current_user = nil
|
29
|
+
cookies.delete(:remember_token)
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<%= form_for(@article) do |f| %>
|
2
|
+
<% if @article.errors.any? %>
|
3
|
+
<div id="error_explanation">
|
4
|
+
<h2><%= pluralize(@article.errors.count, "error") %> prohibited this article from being saved:</h2>
|
5
|
+
|
6
|
+
<ul>
|
7
|
+
<% @article.errors.full_messages.each do |message| %>
|
8
|
+
<li><%= message %></li>
|
9
|
+
<% end %>
|
10
|
+
</ul>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<div class="field">
|
15
|
+
<%= f.label :title %><br>
|
16
|
+
<%= f.text_field :title %>
|
17
|
+
</div>
|
18
|
+
<div class="field">
|
19
|
+
<%= f.label :content %><br>
|
20
|
+
<%= f.text_area :content %>
|
21
|
+
</div>
|
22
|
+
<div class="actions">
|
23
|
+
<%= f.submit %>
|
24
|
+
</div>
|
25
|
+
<% end %>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<p id="notice"><%= notice %></p>
|
2
|
+
|
3
|
+
<h1>Listing Articles</h1>
|
4
|
+
|
5
|
+
<table>
|
6
|
+
<thead>
|
7
|
+
<tr>
|
8
|
+
<th>Title</th>
|
9
|
+
<th>Content</th>
|
10
|
+
<th>User</th>
|
11
|
+
<th colspan="3"></th>
|
12
|
+
</tr>
|
13
|
+
</thead>
|
14
|
+
|
15
|
+
<tbody>
|
16
|
+
<% @articles.each do |article| %>
|
17
|
+
<tr>
|
18
|
+
<td><%= article.title %></td>
|
19
|
+
<td><%= article.content %></td>
|
20
|
+
<td><%= article.user.name %></td>
|
21
|
+
<td><%= link_to 'Show', article %></td>
|
22
|
+
<td><%= link_to 'Edit', edit_article_path(article) %></td>
|
23
|
+
<td><%= link_to 'Destroy', article, method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
24
|
+
</tr>
|
25
|
+
<% end %>
|
26
|
+
</tbody>
|
27
|
+
</table>
|
28
|
+
|
29
|
+
<br>
|
30
|
+
|
31
|
+
<%= link_to 'New Article', new_article_path %>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<p id="notice"><%= notice %></p>
|
2
|
+
|
3
|
+
<p>
|
4
|
+
<strong>Title:</strong>
|
5
|
+
<%= @article.title %>
|
6
|
+
</p>
|
7
|
+
|
8
|
+
<p>
|
9
|
+
<strong>Content:</strong>
|
10
|
+
<%= @article.content %>
|
11
|
+
</p>
|
12
|
+
|
13
|
+
<p>
|
14
|
+
<strong>User:</strong>
|
15
|
+
<%= @article.user.name %>
|
16
|
+
</p>
|
17
|
+
|
18
|
+
<%= link_to 'Edit', edit_article_path(@article) %> |
|
19
|
+
<%= link_to 'Back', articles_path %>
|
@@ -8,6 +8,14 @@
|
|
8
8
|
</head>
|
9
9
|
<body>
|
10
10
|
|
11
|
+
<div>
|
12
|
+
<% if current_user.nil? %>
|
13
|
+
<%= link_to "Login", login_path %>
|
14
|
+
<% else %>
|
15
|
+
<%= current_user.name %> | <%= link_to "Logout", logout_path, method: :delete %>
|
16
|
+
<% end %>
|
17
|
+
</div>
|
18
|
+
|
11
19
|
<%= yield %>
|
12
20
|
|
13
21
|
</body>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<%= form_for :session, url: sessions_path do |f| %>
|
2
|
+
<div class="field">
|
3
|
+
<%= f.label :name %>
|
4
|
+
<%= f.text_field :name %>
|
5
|
+
</div>
|
6
|
+
<div>
|
7
|
+
<%= f.label :password %>
|
8
|
+
<%= f.password_field :password %>
|
9
|
+
</div>
|
10
|
+
<div class="field">
|
11
|
+
<%= f.label :remember_me %>
|
12
|
+
<%= f.check_box :remember_me %>
|
13
|
+
</div>
|
14
|
+
|
15
|
+
<div class="actions">
|
16
|
+
<%= f.submit "Login" %>
|
17
|
+
</div>
|
18
|
+
|
19
|
+
<% end %>
|
data/test/dummy/config/routes.rb
CHANGED
@@ -1,56 +1,11 @@
|
|
1
1
|
Rails.application.routes.draw do
|
2
|
-
|
3
|
-
# See how all your routes lay out with "rake routes".
|
2
|
+
mount Adeia::Engine => "/adeia"
|
4
3
|
|
5
|
-
|
6
|
-
# root 'welcome#index'
|
4
|
+
root "articles#index"
|
7
5
|
|
8
|
-
|
9
|
-
|
6
|
+
get 'login', to: "sessions#new"
|
7
|
+
delete 'logout', to: 'sessions#destroy'
|
8
|
+
resources :sessions, only: [:create]
|
10
9
|
|
11
|
-
|
12
|
-
# get 'products/:id/purchase' => 'catalog#purchase', as: :purchase
|
13
|
-
|
14
|
-
# Example resource route (maps HTTP verbs to controller actions automatically):
|
15
|
-
# resources :products
|
16
|
-
|
17
|
-
# Example resource route with options:
|
18
|
-
# resources :products do
|
19
|
-
# member do
|
20
|
-
# get 'short'
|
21
|
-
# post 'toggle'
|
22
|
-
# end
|
23
|
-
#
|
24
|
-
# collection do
|
25
|
-
# get 'sold'
|
26
|
-
# end
|
27
|
-
# end
|
28
|
-
|
29
|
-
# Example resource route with sub-resources:
|
30
|
-
# resources :products do
|
31
|
-
# resources :comments, :sales
|
32
|
-
# resource :seller
|
33
|
-
# end
|
34
|
-
|
35
|
-
# Example resource route with more complex sub-resources:
|
36
|
-
# resources :products do
|
37
|
-
# resources :comments
|
38
|
-
# resources :sales do
|
39
|
-
# get 'recent', on: :collection
|
40
|
-
# end
|
41
|
-
# end
|
42
|
-
|
43
|
-
# Example resource route with concerns:
|
44
|
-
# concern :toggleable do
|
45
|
-
# post 'toggle'
|
46
|
-
# end
|
47
|
-
# resources :posts, concerns: :toggleable
|
48
|
-
# resources :photos, concerns: :toggleable
|
49
|
-
|
50
|
-
# Example resource route within a namespace:
|
51
|
-
# namespace :admin do
|
52
|
-
# # Directs /admin/products/* to Admin::ProductsController
|
53
|
-
# # (app/controllers/admin/products_controller.rb)
|
54
|
-
# resources :products
|
55
|
-
# end
|
10
|
+
resources :articles
|
56
11
|
end
|
Binary file
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# This migration comes from adeia (originally 20151003144208)
|
2
|
+
class CreateAdeiaPermissions < ActiveRecord::Migration
|
3
|
+
def change
|
4
|
+
create_table :adeia_permissions do |t|
|
5
|
+
t.references :owner, polymorphic: true, index: true
|
6
|
+
t.references :element, index: true, foreign_key: true
|
7
|
+
t.integer :permission_type
|
8
|
+
t.boolean :read_right
|
9
|
+
t.boolean :create_right
|
10
|
+
t.boolean :update_right
|
11
|
+
t.boolean :destroy_right
|
12
|
+
t.integer :resource_id
|
13
|
+
|
14
|
+
t.timestamps null: false
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# This migration comes from adeia (originally 20151003144706)
|
2
|
+
class CreateAdeiaGroupUsers < ActiveRecord::Migration
|
3
|
+
def change
|
4
|
+
create_table :adeia_group_users do |t|
|
5
|
+
t.references :group, index: true, foreign_key: true
|
6
|
+
t.references :user, index: true, foreign_key: true
|
7
|
+
|
8
|
+
t.timestamps null: false
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# This migration comes from adeia (originally 20151003150524)
|
2
|
+
class CreateAdeiaTokens < ActiveRecord::Migration
|
3
|
+
def change
|
4
|
+
create_table :adeia_tokens do |t|
|
5
|
+
t.string :token
|
6
|
+
t.boolean :valid
|
7
|
+
t.references :permission, index: true, foreign_key: true
|
8
|
+
t.date :exp_at
|
9
|
+
|
10
|
+
t.timestamps null: false
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# This migration comes from adeia (originally 20151003150806)
|
2
|
+
class CreateAdeiaActionPermissions < ActiveRecord::Migration
|
3
|
+
def change
|
4
|
+
create_table :adeia_action_permissions do |t|
|
5
|
+
t.references :action, index: true, foreign_key: true
|
6
|
+
t.references :permission, index: true, foreign_key: true
|
7
|
+
|
8
|
+
t.timestamps null: false
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,100 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
# This file is auto-generated from the current state of the database. Instead
|
3
|
+
# of editing this file, please use the migrations feature of Active Record to
|
4
|
+
# incrementally modify your database, and then regenerate this schema definition.
|
5
|
+
#
|
6
|
+
# Note that this schema.rb definition is the authoritative source for your
|
7
|
+
# database schema. If you need to create the application database on another
|
8
|
+
# system, you should be using db:schema:load, not running all the migrations
|
9
|
+
# from scratch. The latter is a flawed and unsustainable approach (the more migrations
|
10
|
+
# you'll amass, the slower it'll run and the greater likelihood for issues).
|
11
|
+
#
|
12
|
+
# It's strongly recommended that you check this file into your version control system.
|
13
|
+
|
14
|
+
ActiveRecord::Schema.define(version: 20151003150943) do
|
15
|
+
|
16
|
+
create_table "adeia_action_permissions", force: :cascade do |t|
|
17
|
+
t.integer "action_id"
|
18
|
+
t.integer "permission_id"
|
19
|
+
t.datetime "created_at", null: false
|
20
|
+
t.datetime "updated_at", null: false
|
21
|
+
end
|
22
|
+
|
23
|
+
add_index "adeia_action_permissions", ["action_id"], name: "index_adeia_action_permissions_on_action_id"
|
24
|
+
add_index "adeia_action_permissions", ["permission_id"], name: "index_adeia_action_permissions_on_permission_id"
|
25
|
+
|
26
|
+
create_table "adeia_actions", force: :cascade do |t|
|
27
|
+
t.string "name"
|
28
|
+
t.datetime "created_at", null: false
|
29
|
+
t.datetime "updated_at", null: false
|
30
|
+
end
|
31
|
+
|
32
|
+
create_table "adeia_elements", force: :cascade do |t|
|
33
|
+
t.string "name"
|
34
|
+
t.datetime "created_at", null: false
|
35
|
+
t.datetime "updated_at", null: false
|
36
|
+
end
|
37
|
+
|
38
|
+
create_table "adeia_group_users", force: :cascade do |t|
|
39
|
+
t.integer "group_id"
|
40
|
+
t.integer "user_id"
|
41
|
+
t.datetime "created_at", null: false
|
42
|
+
t.datetime "updated_at", null: false
|
43
|
+
end
|
44
|
+
|
45
|
+
add_index "adeia_group_users", ["group_id"], name: "index_adeia_group_users_on_group_id"
|
46
|
+
add_index "adeia_group_users", ["user_id"], name: "index_adeia_group_users_on_user_id"
|
47
|
+
|
48
|
+
create_table "adeia_groups", force: :cascade do |t|
|
49
|
+
t.string "name"
|
50
|
+
t.datetime "created_at", null: false
|
51
|
+
t.datetime "updated_at", null: false
|
52
|
+
end
|
53
|
+
|
54
|
+
create_table "adeia_permissions", force: :cascade do |t|
|
55
|
+
t.integer "owner_id"
|
56
|
+
t.string "owner_type"
|
57
|
+
t.integer "element_id"
|
58
|
+
t.integer "permission_type"
|
59
|
+
t.boolean "read_right"
|
60
|
+
t.boolean "create_right"
|
61
|
+
t.boolean "update_right"
|
62
|
+
t.boolean "destroy_right"
|
63
|
+
t.integer "resource_id"
|
64
|
+
t.datetime "created_at", null: false
|
65
|
+
t.datetime "updated_at", null: false
|
66
|
+
end
|
67
|
+
|
68
|
+
add_index "adeia_permissions", ["element_id"], name: "index_adeia_permissions_on_element_id"
|
69
|
+
add_index "adeia_permissions", ["owner_type", "owner_id"], name: "index_adeia_permissions_on_owner_type_and_owner_id"
|
70
|
+
|
71
|
+
create_table "adeia_tokens", force: :cascade do |t|
|
72
|
+
t.string "token"
|
73
|
+
t.boolean "valid"
|
74
|
+
t.integer "permission_id"
|
75
|
+
t.date "exp_at"
|
76
|
+
t.datetime "created_at", null: false
|
77
|
+
t.datetime "updated_at", null: false
|
78
|
+
end
|
79
|
+
|
80
|
+
add_index "adeia_tokens", ["permission_id"], name: "index_adeia_tokens_on_permission_id"
|
81
|
+
|
82
|
+
create_table "articles", force: :cascade do |t|
|
83
|
+
t.string "title"
|
84
|
+
t.text "content"
|
85
|
+
t.integer "user_id"
|
86
|
+
t.datetime "created_at", null: false
|
87
|
+
t.datetime "updated_at", null: false
|
88
|
+
end
|
89
|
+
|
90
|
+
add_index "articles", ["user_id"], name: "index_articles_on_user_id"
|
91
|
+
|
92
|
+
create_table "users", force: :cascade do |t|
|
93
|
+
t.string "name"
|
94
|
+
t.string "password_digest"
|
95
|
+
t.string "remember_token"
|
96
|
+
t.datetime "created_at", null: false
|
97
|
+
t.datetime "updated_at", null: false
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|