首先抱歉我的英语不好。 我已经安装了cancan和bigbluebutton_rails, https://github.com/mconf/bigbluebutton_rails。 宝石bigbluebutton_rails有一些模型和控制器,用于 示例有bigbluebutton / servers_controller.rb。 此控制器具有一些操作,如创建,加入,授权等。 我希望只有具有角色管理员的用户才能创建。 我能做什么? 我需要将load_and_authorize_resource放在bigbluebutton / servers_controller.rb中? 但它在宝石中,我认为不建议修改宝石代码。
答案 0 :(得分:2)
他们有一个与cancan集成的页面:https://github.com/mconf/bigbluebutton_rails/wiki/How-to%3A-Integrate-with-CanCan
但是嗯,还没写完......
所以......他们还有一个与Devise集成的页面:https://github.com/mconf/bigbluebutton_rails/wiki/How-to%3A-Integrate-with-Devise已经编写过,所以可以接受的方式是继承Bigbluebutton::ServersController
。
如何创建自定义服务器控制器如下:
class CustomServersController < Bigbluebutton::ServersController
load_and_authorize_resource!
end
答案 1 :(得分:0)
在ruby中你可以重新打开类,所以在/config/initializers/bigbluebutton.rb中加入一些代码
require 'bigbluebutton'
class Bigbluebutton::ServersController < ApplicationController
load_and_authorize_resource!
# you also have to overwrite this method so the @server loaded
# by CanCan is not overwritten by Bigbluebutton
def find_server
@server ||= BigbluebuttonServer.find_by_param(params[:id])
end
end
答案 2 :(得分:0)
补充Sam Peacey的答案,现在BigbluebuttonRails有一个(相当简单的)wiki页面,描述了如何将它与CanCan集成:https://github.com/mconf/bigbluebutton_rails/wiki/How-to:-Integrate-with-CanCan
您也可以使用应用程序Mconf-Web(https://github.com/mconf/mconf-web)作为示例。当前在分支branch-v2
(https://github.com/mconf/mconf-web/tree/branch-v2)中的版本使用CanCan,Devise和BigbluebuttonRails,它们一起工作。