Class: Tilia::CalDav::Principal::ProxyRead
- Includes:
- IProxyRead
- Defined in:
- lib/tilia/cal_dav/principal/proxy_read.rb
Overview
ProxyRead principal
This class represents a principal group, hosted under the main principal. This is needed to implement ‘Calendar delegation’ support. This class is instantiated by User.
Instance Method Summary collapse
-
#alternate_uri_set ⇒ Object
Returns a list of alternative urls for a principal.
-
#delete ⇒ Object
Deletes the current node.
-
#display_name ⇒ Object
Returns the displayname.
-
#group_member_set ⇒ Object
Returns the list of group members.
-
#group_member_set=(principals) ⇒ Object
Sets a list of group members.
-
#group_membership ⇒ Object
Returns the list of groups this principal is member of.
-
#initialize(principal_backend, principal_info) ⇒ ProxyRead
constructor
Creates the object.
-
#last_modified ⇒ Object
Returns the last modification time.
-
#name ⇒ Object
Returns this principals name.
-
#name=(_name) ⇒ Object
Renames the node.
-
#principal_url ⇒ Object
Returns the full principal url.
Constructor Details
#initialize(principal_backend, principal_info) ⇒ ProxyRead
Creates the object.
Note that you MUST supply the parent principal information.
30 31 32 33 |
# File 'lib/tilia/cal_dav/principal/proxy_read.rb', line 30 def initialize(principal_backend, principal_info) @principal_info = principal_info @principal_backend = principal_backend end |
Instance Method Details
#alternate_uri_set ⇒ Object
Returns a list of alternative urls for a principal
This can for example be an email address, or ldap url.
71 72 73 |
# File 'lib/tilia/cal_dav/principal/proxy_read.rb', line 71 def alternate_uri_set [] end |
#delete ⇒ Object
Deletes the current node
53 54 55 |
# File 'lib/tilia/cal_dav/principal/proxy_read.rb', line 53 def delete fail Dav::Exception::Forbidden, 'Permission denied to delete node' end |
#display_name ⇒ Object
Returns the displayname
This should be a human readable name for the principal. If none is available, return the nodename.
121 122 123 |
# File 'lib/tilia/cal_dav/principal/proxy_read.rb', line 121 def display_name name end |
#group_member_set ⇒ Object
Returns the list of group members
If this principal is a group, this function should return all member principal uri’s for the group.
88 89 90 |
# File 'lib/tilia/cal_dav/principal/proxy_read.rb', line 88 def group_member_set @principal_backend.group_member_set(principal_url) end |
#group_member_set=(principals) ⇒ Object
Sets a list of group members
If this principal is a group, this method sets all the group members. The list of members is always overwritten, never appended to.
This method should throw an exception if the members could not be set.
111 112 113 |
# File 'lib/tilia/cal_dav/principal/proxy_read.rb', line 111 def group_member_set=(principals) @principal_backend.update_group_member_set(principal_url, principals) end |
#group_membership ⇒ Object
Returns the list of groups this principal is member of
If this principal is a member of a (list of) groups, this function should return a list of principal uri’s for it’s members.
98 99 100 |
# File 'lib/tilia/cal_dav/principal/proxy_read.rb', line 98 def group_membership @principal_backend.group_membership(principal_url) end |
#last_modified ⇒ Object
Returns the last modification time
45 46 47 |
# File 'lib/tilia/cal_dav/principal/proxy_read.rb', line 45 def last_modified nil end |
#name ⇒ Object
Returns this principals name.
38 39 40 |
# File 'lib/tilia/cal_dav/principal/proxy_read.rb', line 38 def name 'calendar-proxy-read' end |
#name=(_name) ⇒ Object
Renames the node
62 63 64 |
# File 'lib/tilia/cal_dav/principal/proxy_read.rb', line 62 def name=(_name) fail Dav::Exception::Forbidden, 'Permission denied to rename file' end |
#principal_url ⇒ Object
Returns the full principal url
78 79 80 |
# File 'lib/tilia/cal_dav/principal/proxy_read.rb', line 78 def principal_url @principal_info['uri'] + '/' + name end |