Class: Tilia::CalDav::Principal::ProxyRead

Inherits:
Object
  • Object
show all
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

Constructor Details

#initialize(principal_backend, principal_info) ⇒ ProxyRead

Creates the object.

Note that you MUST supply the parent principal information.

Parameters:

  • DAVACL\PrincipalBackend\BackendInterface

    principal_backend

  • array

    principal_info



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_setObject

Returns a list of alternative urls for a principal

This can for example be an email address, or ldap url.

Returns:

  • array



71
72
73
# File 'lib/tilia/cal_dav/principal/proxy_read.rb', line 71

def alternate_uri_set
  []
end

#deleteObject

Deletes the current node

Returns:

  • void



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_nameObject

Returns the displayname

This should be a human readable name for the principal. If none is available, return the nodename.

Returns:

  • string



121
122
123
# File 'lib/tilia/cal_dav/principal/proxy_read.rb', line 121

def display_name
  name
end

#group_member_setObject

Returns the list of group members

If this principal is a group, this function should return all member principal uri’s for the group.

Returns:

  • array



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.

Parameters:

  • array

    principals

Returns:

  • void



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_membershipObject

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.

Returns:

  • array



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_modifiedObject

Returns the last modification time

Returns:

  • null



45
46
47
# File 'lib/tilia/cal_dav/principal/proxy_read.rb', line 45

def last_modified
  nil
end

#nameObject

Returns this principals name.

Returns:

  • string



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

Parameters:

  • string

    name The new name

Returns:

  • void



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_urlObject

Returns the full principal url

Returns:

  • string



78
79
80
# File 'lib/tilia/cal_dav/principal/proxy_read.rb', line 78

def principal_url
  @principal_info['uri'] + '/' + name
end