diff --git a/app/assets/javascripts/admin/role_statuses.js.coffee b/app/assets/javascripts/admin/role_statuses.js.coffee
new file mode 100644
index 0000000..24f83d1
--- /dev/null
+++ b/app/assets/javascripts/admin/role_statuses.js.coffee
@@ -0,0 +1,3 @@
+# Place all the behaviors and hooks related to the matching controller here.
+# All this logic will automatically be available in application.js.
+# You can use CoffeeScript in this file: http://coffeescript.org/
diff --git a/app/assets/stylesheets/admin/role_statuses.css.scss b/app/assets/stylesheets/admin/role_statuses.css.scss
new file mode 100644
index 0000000..cf7895d
--- /dev/null
+++ b/app/assets/stylesheets/admin/role_statuses.css.scss
@@ -0,0 +1,3 @@
+// Place all the styles related to the admin/role_statuses controller here.
+// They will automatically be included in application.css.
+// You can use Sass (SCSS) here: http://sass-lang.com/
diff --git a/app/controllers/admin/role_statuses_controller.rb b/app/controllers/admin/role_statuses_controller.rb
new file mode 100644
index 0000000..f62b950
--- /dev/null
+++ b/app/controllers/admin/role_statuses_controller.rb
@@ -0,0 +1,54 @@
+class Admin::RoleStatusesController < OrbitMemberController
+ before_action :set_role_status, only: [:show, :edit , :update, :destroy]
+
+ def index
+ @role = Role.find(params[:role_id])
+ @role_statuses = RoleStatus.where(role_id: @role.id)
+
+ respond_to do |format|
+ format.html # index.html.erb
+ format.js
+ end
+ end
+
+ def show
+ end
+
+ def new
+ @role_status = RoleStatus.new
+ render layout: false
+ end
+
+ def create
+ @role_status = RoleStatus.new(role_status_params)
+ if @role_status.save
+ redirect_to action: :index
+ else
+ redirect_to action: :new
+ end
+ end
+
+ def edit
+ render layout: false
+ end
+
+ def update
+ end
+
+ def toggle
+ end
+
+ def destroy
+ end
+
+ private
+ # Use callbacks to share common setup or constraints between actions.
+ def set_role_status
+ @role_status = RoleStatus.find(params[:id])
+ end
+
+ # Never trust parameters from the scary internet, only allow the white list through.
+ def role_status_params
+ params.require(:role_status).permit!
+ end
+end
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 4c37e7f..cece132 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -6,7 +6,7 @@ class UsersController < ApplicationController
def create
@user = User.new(user_params)
- @member = MemberProfile.new(email: params[:email])
+ @member = MemberProfile.new(email: params[:email], first_name: params[:first_name], last_name: params[:last_name])
if @user.save
@member.save
@user.update_attributes(member_profile_id: @member.id)
@@ -35,6 +35,6 @@ class UsersController < ApplicationController
# Never trust parameters from the scary internet, only allow the white list through.
def user_params
- params.require(:user).permit(:password, :password_confirmation, :user_name, :member_profile_id, :email)
+ params.require(:user).permit(:password, :password_confirmation, :user_name, :member_profile_id, :email, :first_name, :last_name)
end
end
diff --git a/app/helpers/admin/role_statuses_helper.rb b/app/helpers/admin/role_statuses_helper.rb
new file mode 100644
index 0000000..3a93582
--- /dev/null
+++ b/app/helpers/admin/role_statuses_helper.rb
@@ -0,0 +1,2 @@
+module Admin::RoleStatusesHelper
+end
diff --git a/app/models/role.rb b/app/models/role.rb
index c209791..bb207d8 100644
--- a/app/models/role.rb
+++ b/app/models/role.rb
@@ -8,6 +8,7 @@ class Role
has_and_belongs_to_many :member_profiles
has_many :authorizations
embeds_many :role_fields
+ has_many :role_statuses
def is_built_in?
self.built_in
diff --git a/app/models/role_status.rb b/app/models/role_status.rb
new file mode 100644
index 0000000..32b3cd5
--- /dev/null
+++ b/app/models/role_status.rb
@@ -0,0 +1,16 @@
+class RoleStatus
+ include Mongoid::Document
+ field :key, type: String
+ field :title, type: String, localize: true
+ field :disable, type: Boolean, default: false
+
+ scope :can_display, ->{ where(disable: false) }
+
+ has_and_belongs_to_many :member_profile
+ belongs_to :role
+
+ def self.get_role_data(role_key)
+ @role = Role.find_by(key: role_key)
+ return @role.id
+ end
+end
diff --git a/app/models/user.rb b/app/models/user.rb
index ec297b2..6ada238 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -23,7 +23,7 @@ class User
validates :password, presence: true, :on => :create, length: {:in => 8..20}
#Add getter and setter for email virtual field
- attr_accessor :email
+ attr_accessor :email, :first_name, :last_name
def generate_confirmation_token
self.confirmation_token = SecureRandom.hex(5)
diff --git a/app/views/admin/member_infos/edit.html.erb b/app/views/admin/member_infos/edit.html.erb
index df66b88..41720ba 100644
--- a/app/views/admin/member_infos/edit.html.erb
+++ b/app/views/admin/member_infos/edit.html.erb
@@ -20,7 +20,7 @@