Class: JGrouper::Group
- Inherits:
-
Object
- Object
- JGrouper::Group
- Defined in:
- lib/jgrouper/group.rb
Overview
JGrouper::Group - Grouper Group
Usage
require 'jgrouper'
TODO
Class Method Summary collapse
-
.find(name) {|group| ... } ⇒ Object
Find Grouper group by name.
Instance Method Summary collapse
-
#add_type(type) ⇒ Object
Add
JGrouper::GroupType
to group. - #grant(subject, privilege) ⇒ Object
-
#initialize(obj = nil) {|_self| ... } ⇒ Group
constructor
A new instance of Group.
-
#method_missing(meth, *args, &block) ⇒ Object
For passing methods on to Grouper Group object.
- #revoke(subject, privilege) ⇒ Object
- #to_hash ⇒ Object
- #to_json ⇒ Object
- #to_s ⇒ Object
-
#type?(type) ⇒ Boolean
Does group have group type (where type is
String
orJGrouper::GroupType
)?.
Constructor Details
#initialize(obj = nil) {|_self| ... } ⇒ Group
Returns a new instance of Group.
15 16 17 18 19 |
# File 'lib/jgrouper/group.rb', line 15 def initialize( obj = nil ) @obj = obj yield self if block_given? self end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(meth, *args, &block) ⇒ Object
For passing methods on to Grouper Group object.
50 51 52 53 54 55 56 57 58 |
# File 'lib/jgrouper/group.rb', line 50 def method_missing(meth, *args, &block) super if @obj.nil? begin block.call @obj.send(meth, *args) if block @obj.send(meth, *args) rescue NoMethodError super end end |
Class Method Details
.find(name) {|group| ... } ⇒ Object
Find Grouper group by name. Returns JGrouper::Group
or nil
.
24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/jgrouper/group.rb', line 24 def self.find(name) begin obj = JGroupFinder.find_by_name JGrouper.start_root_session, name, false rescue => e warn "JGrouper::Group.find(#{name}) => #{e}" end return nil if obj.nil? group = self.new obj yield group if block_given? group end |
Instance Method Details
#add_type(type) ⇒ Object
Add JGrouper::GroupType
to group.
39 40 41 |
# File 'lib/jgrouper/group.rb', line 39 def add_type(type) @obj.addType type.to_grouper, false end |
#grant(subject, privilege) ⇒ Object
43 44 45 |
# File 'lib/jgrouper/group.rb', line 43 def grant(subject, privilege) @obj.grantPriv subject.to_grouper, privilege.to_grouper, false end |
#revoke(subject, privilege) ⇒ Object
60 61 62 |
# File 'lib/jgrouper/group.rb', line 60 def revoke(subject, privilege) @obj.revokePriv subject.to_grouper, privilege.to_grouper, false end |
#to_hash ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/jgrouper/group.rb', line 64 def to_hash h = { kind: 'group', uuid: @obj.get_uuid, name: @obj.get_name, display_name: @obj.get_display_name, extension: @obj.get_extension, display_extension: @obj.get_display_extension, create_subject: JGrouper::Subject.new( @obj.get_create_subject ).to_hash, create_time: Time.at( @obj.get_create_time_long / 1000 ).to_datetime.rfc3339, parent: { name: @obj.get_parent_stem.get_name, uuid: @obj.get_parent_stem.get_uuid } } unless @obj.get_alternate_names.empty? h[:alternate_names] = @obj.get_alternate_names.collect(&:to_s) end unless @obj.get_description.empty? h[:description] = @obj.get_description end unless @obj.get_removable_types.empty? h[:group_types] = @obj.get_removable_types.collect { |_| { name: _.get_name, uuid: _.get_uuid } } end if 'role' == @obj.get_type_of_group.to_s h[:role] = true end begin h[:modify_subject] = JGrouper::Subject.new( @obj.get_modify_subject ).to_hash h[:modify_time] = Time.at( @obj.get_modify_time_long / 1000 ).to_datetime.rfc3339 rescue end h end |
#to_json ⇒ Object
99 100 101 |
# File 'lib/jgrouper/group.rb', line 99 def to_json to_hash.to_json end |
#to_s ⇒ Object
103 104 105 106 |
# File 'lib/jgrouper/group.rb', line 103 def to_s return nil if @obj.nil? %w( name display_name uuid ).collect { |k| "#{k}=#{ self.send(k) }" }.to_csv.chomp end |
#type?(type) ⇒ Boolean
Does group have group type (where type is String
or JGrouper::GroupType
)?
111 112 113 114 115 116 117 118 |
# File 'lib/jgrouper/group.rb', line 111 def type?(type) case type.class when String return @obj.hasType JGrouper::GroupType.find(type).to_grouper else return @obj.hasType type.to_grouper end end |