merge with november_presentation
This commit is contained in:
1 parent
afbffe37d5
commit
a09f8e4551
101 files changed
+891
-10632
No files matched your search
@@ -4,4 +4,18 @@ $("div.editable").live("mouseenter mouseleave", function (event) {
|
||||
|
||||
$("#page_design_id").live('change', function() {
|
||||
$.getScript($(this).attr('rel') + '/' + $(this).val() + '/reload_themes');
|
||||
});
|
||||
});
|
||||
|
||||
$("#page_module_app").live('change', function() {
|
||||
var app_id = $(this).val();
|
||||
if(app_id!=''){
|
||||
$.getScript($(this).attr('rel') + '/' + $(this).val() + '/reload_frontend_pages',function(data, textStatus){
|
||||
if(textStatus == 'success'){
|
||||
$(this).after(data);
|
||||
}
|
||||
});
|
||||
}
|
||||
else{
|
||||
$("#app_page_url").remove();
|
||||
}
|
||||
});
|
||||
@@ -0,0 +1,17 @@
|
||||
class Admin::AppAuthsController < ApplicationController
|
||||
layout "admin"
|
||||
before_filter :authenticate_user!
|
||||
before_filter :is_admin?
|
||||
|
||||
def index
|
||||
@roles = Role.all.entries
|
||||
apps = Purchase.where(:type =>"App")
|
||||
@app_auth_data = apps.entries.map do |app|
|
||||
app_c = eval(app.app_controller)
|
||||
obj = app_c.new
|
||||
obj_auth = obj.send "auth"
|
||||
[:app_obj => app,:auth_field => obj_auth]
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
@@ -0,0 +1,9 @@
|
||||
class Admin::ModuleAppsController < ApplicationController
|
||||
|
||||
def reload_frontend_pages
|
||||
@module_app = ModuleApp.find(params[:id])
|
||||
respond_to do |format|
|
||||
format.js {}
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -19,6 +19,7 @@ class Admin::PagesController < ApplicationController
|
||||
|
||||
def new
|
||||
@item = Page.new
|
||||
@apps = ModuleApp.all
|
||||
@item.is_published = true
|
||||
@item.parent_id = @parent_item.id rescue nil
|
||||
@designs = Design.all.entries
|
||||
@@ -27,6 +28,7 @@ class Admin::PagesController < ApplicationController
|
||||
|
||||
def edit
|
||||
@item = Page.find(params[:id])
|
||||
@apps = ModuleApp.all
|
||||
@i18n_variable = @item.i18n_variable
|
||||
@designs = Design.all.entries
|
||||
@design = @item.design
|
||||
|
||||
@@ -36,9 +36,9 @@ class ApplicationController < ActionController::Base
|
||||
end
|
||||
|
||||
# Render the page
|
||||
def render_page
|
||||
def render_page(url = nil)
|
||||
if @item
|
||||
render :text => parse_page(@item)
|
||||
render :text => parse_page(@item,url)
|
||||
else
|
||||
render :text => '404 Not Found'
|
||||
end
|
||||
|
||||
@@ -9,19 +9,28 @@ class PagesController < ApplicationController
|
||||
end
|
||||
end
|
||||
|
||||
def show
|
||||
begin
|
||||
item = Item.first(:conditions => {:full_name => params[:page_name]})
|
||||
case item._type
|
||||
when 'Page'
|
||||
@item = item
|
||||
render_page
|
||||
when 'Link'
|
||||
redirect_to "http://#{item[:url]}"
|
||||
end
|
||||
rescue
|
||||
render :file => "#{Rails.root}/public/404.html", :status => :not_found
|
||||
end
|
||||
def appfront
|
||||
|
||||
pre_uri = URI.split request.env['HTTP_REFERER']
|
||||
pre_item_fullname = pre_uri[5][1..-1]
|
||||
@item = Item.first(:conditions => {:full_name => pre_item_fullname})
|
||||
redirect_to (request.env['HTTP_REFERER'].partition("?")[0]+"?app_url=#{request.fullpath}")
|
||||
|
||||
end
|
||||
|
||||
def show
|
||||
begin
|
||||
item = Item.first(:conditions => {:full_name => params[:page_name]})
|
||||
case item._type
|
||||
when 'Page'
|
||||
@item = item
|
||||
render_page ((params[:app_url]+'?inner='+"true" if params[:app_url]))
|
||||
when 'Link'
|
||||
redirect_to "http://#{item[:url]}"
|
||||
end
|
||||
rescue
|
||||
render :file => "#{Rails.root}/public/404.html", :status => :not_found
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
@@ -0,0 +1,77 @@
|
||||
class AppAuth
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
# after_save :update_block_list,:update_privilage_list
|
||||
|
||||
field :title
|
||||
field :token
|
||||
field :all ,type: Boolean,default: false
|
||||
belongs_to :module_app
|
||||
|
||||
belongs_to :users
|
||||
# belongs_to :users,as: :block_users, :inverse_of => :privilege_apps
|
||||
has_and_belongs_to_many :blocked_users, :inverse_of => nil, :class_name => "User"
|
||||
has_and_belongs_to_many :privilege_users, :inverse_of => nil, :class_name => "User"
|
||||
|
||||
|
||||
has_and_belongs_to_many :roles
|
||||
|
||||
def add_user_to_black_list user
|
||||
unless self.blocked_users.include?(user)
|
||||
self.blocked_users << user
|
||||
self.save!
|
||||
else
|
||||
false #should put error message for user existed in list already
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def remove_user_from_black_list user
|
||||
if self.blocked_users.include? user
|
||||
self.blocked_users.delete user
|
||||
self.save!
|
||||
else
|
||||
false #should put error message for user not existed in list
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def add_user_to_privilege_list user
|
||||
unless self.privilege_users.include? user
|
||||
self.privilege_users << user
|
||||
self.save!
|
||||
else
|
||||
false #should put error message for user existed in list already
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def remove_user_from_privilege_list user
|
||||
if self.privilege_users.include? user
|
||||
self.privilege_users.delete user
|
||||
self.save!
|
||||
else
|
||||
false #should put error message for user not existed in list
|
||||
end
|
||||
end
|
||||
|
||||
def auth_users
|
||||
if self.all?
|
||||
User.all.entries
|
||||
else
|
||||
ary= self.roles.collect do |role|
|
||||
role.users
|
||||
end
|
||||
ary << self.privilege_users
|
||||
ary.flatten!
|
||||
end
|
||||
end
|
||||
|
||||
def auth_users_after_block_list
|
||||
auth_users - self.blocked_users
|
||||
end
|
||||
|
||||
# protected
|
||||
|
||||
|
||||
end
|
||||
@@ -2,7 +2,7 @@ class ModuleApp
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
|
||||
field :name_of_app
|
||||
field :title
|
||||
field :version
|
||||
field :organization
|
||||
field :author
|
||||
@@ -10,4 +10,8 @@ class ModuleApp
|
||||
field :update_info
|
||||
field :create_date
|
||||
|
||||
field :app_pages ,type: Array
|
||||
|
||||
has_one :app_auth,dependent: :delete
|
||||
|
||||
end
|
||||
@@ -1,10 +1,12 @@
|
||||
class Page < Item
|
||||
|
||||
field :content
|
||||
field :app_frontend_url
|
||||
field :theme_id, :type => BSON::ObjectId, :default => nil
|
||||
|
||||
belongs_to :design
|
||||
has_many :page_parts
|
||||
belongs_to :module_app
|
||||
|
||||
embeds_many :custom_images, as: :design_image
|
||||
|
||||
|
||||
@@ -9,4 +9,8 @@ class Purchase
|
||||
field :downloaded, :type => Boolean
|
||||
field :download_date, :type => Date
|
||||
|
||||
field :type
|
||||
field :app_controller
|
||||
has_many :app_auths
|
||||
|
||||
end
|
||||
@@ -11,10 +11,17 @@ class User
|
||||
field :active_role
|
||||
|
||||
has_many :attribute_values, :autosave => true, :dependent => :destroy
|
||||
has_many :app_auths,as: :privilege_apps,:inverse_of => :privilege_lists
|
||||
has_many :blocked_apps, :inverse_of => :blocked_users, :class_name => "AppAuth"
|
||||
has_many :privilege_apps, :inverse_of => :privilege_users, :class_name => "AppAuth"
|
||||
belongs_to :role
|
||||
has_and_belongs_to_many :sub_roles
|
||||
accepts_nested_attributes_for :attribute_values, :allow_destroy => true
|
||||
|
||||
def avb_apps
|
||||
query = AppAuth.any_of({all: true},{privilege_user_ids: self.id},{roles: self.role.id}).excludes(blocked_user_ids: self.id)
|
||||
end
|
||||
|
||||
def name
|
||||
info = Class::Info.first(:conditions => {:key => 'profile'})
|
||||
if info
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
<div class="auth_unit">
|
||||
<%= unit%>
|
||||
<div>
|
||||
@@ -0,0 +1,32 @@
|
||||
<% content_for :secondary do %>
|
||||
<div id='user_list'>
|
||||
<div class="role_list">
|
||||
<h1>User Role</h1>
|
||||
<ul class="list">
|
||||
<% @roles.each do |role| %>
|
||||
<li class="set_1"><%= link_to content_tag(:span, "Role") %></li>
|
||||
<% end -%>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<% end -%>
|
||||
|
||||
<h1><%= t('admin.list_app_auths') %></h1>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th><%= t('admin.app.name') %></th>
|
||||
<th><%= t('admin.description') %></th>
|
||||
</tr>
|
||||
|
||||
<% @app_auth_data.each do |app| %>
|
||||
<tr>
|
||||
<td><%= app[0][:app_obj].title %></td>
|
||||
<% app[0][:auth_field].each do |unit| %>
|
||||
<td>
|
||||
<%= render :partial => "auth_unit",:locals => {:unit => unit } %>
|
||||
</td>
|
||||
<%end%>
|
||||
</tr>
|
||||
<% end %>
|
||||
</table>
|
||||
@@ -0,0 +1 @@
|
||||
<%= f.select :module_app, @apps.collect { |t| [t.title.capitalize, t.id] }, {:include_blank => true} ,{:rel => admin_module_apps_path } %>
|
||||
@@ -0,0 +1 @@
|
||||
$('#app_page_url').html("<%= escape_javascript(select 'page','app_frontend_url', @module_app.app_pages) %>");
|
||||
@@ -30,8 +30,13 @@
|
||||
<%= f.select :theme_id, @default_design.themes.collect { |t| [t.name.capitalize, t.id] }, :include_blank => true %>
|
||||
<% end %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<%= t('admin.module_app') %>
|
||||
<%= render :partial => "admin/module_apps/app_selector", :locals => { :f => f } %>
|
||||
<span id="app_page_url"></span>
|
||||
</p>
|
||||
<p>
|
||||
<%= f.label :is_published, "#{t('admin.is_published')} ?" %>
|
||||
<%= f.radio_button :is_published, true %>Yes <%= f.radio_button :is_published, false %> No
|
||||
</p>
|
||||
|
||||
Reference in new issue
Block a user