OSDN Git Service

added svn:eol-style native property on /app files
[redminele/redmine.git] / app / models / role.rb
1 # redMine - project management software
2 # Copyright (C) 2006  Jean-Philippe Lang
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
8
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 # GNU General Public License for more details.
13
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
17
18 class Role < ActiveRecord::Base
19   before_destroy :check_integrity  
20   has_and_belongs_to_many :permissions
21   has_many :workflows, :dependent => :delete_all
22   has_many :members
23   acts_as_list
24
25   validates_presence_of :name
26   validates_uniqueness_of :name
27   validates_format_of :name, :with => /^[\w\s\'\-]*$/i
28
29 private
30   def check_integrity
31     raise "Can't delete role" if Member.find(:first, :conditions =>["role_id=?", self.id])
32   end
33 end