Я кодирую приложение о беспроводной сети, используя Ruby on Rails. Это приложение состоит из разных ролей: Admin, Employee и Visitor.
Часть посетителя уже была сделана моим коллегой после руководства Майкла Хартла (в основном пользователь был заменен посетителем ), и теперь я должен сделать все остальное.
К сожалению, она не использовала ни придумывания, ни других драгоценных камней, подобных ей, и я не могу разрушить всю ее работу, поэтому я не могу использовать ни одного из них.
В этих приложениях есть такие классы, как MACaddress или VLAN, и как посетитель, так и сотрудник / администратор могут выполнять некоторые операции с ними, но, конечно, эти операции разные (разные разрешения в соответствии с ролями).
Здесь моя главная проблема. Рассмотрим что-то вроде этого:
class MacaddressesController < ApplicationController
before_action :logged_in_visitor, only: [:create, :destroy]
before_action :correct_visitor, only: [:destroy,:update]
def create
@macaddresses = current_visitor.macaddresses.build(macaddresses_params)
if @macaddresses.save
flash[:success] = "mac address created!"
redirect_to visitor_path(session[:visitor_id],:act => 'mynetwork')
else
@macaddresses = current_visitor.macaddresses.all
@visitor = current_visitor
render 'visitors/myNetwork'
end
end
def destroy
@macaddresses.destroy
redirect_to visitor_path(session[:visitor_id],:act => 'myNetwork',:del=>'true')
end
def update
if @macaddresses.update_attributes(macaddresses_params)
redirect_to visitor_path(session[:visitor_id],:act => 'myNetwork',:del=>'true')
else
@macaddresses = current_visitor.macaddresses.all
@visitor=current_visitor
render 'visitors/myNewtork2'
end
end
Теперь ... как я могу определить CRUD различные операции над MACaddress или другими классами в соответствии с ролью пользователя?
Я создал даже _current_employee_, как я могу использовать его, чтобы делать то, что мне нужно?
Заранее спасибо.