Class: Nextcloud::Ocs::User::Group

Inherits:
Nextcloud::Ocs::User show all
Includes:
Helpers
Defined in:
lib/nextcloud/ocs/user.rb

Overview

Class covering User group operations

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Helpers

#add_meta, #doc_to_hash, #get_meta, #has_dav_errors, #parse_dav_response, #parse_with_meta, #path_from_href

Methods inherited from Nextcloud::Ocs::User

#all, #disable, #enable, #find, #group, #groups, #resend_welcome, #set, #subadmin_groups, #update

Methods inherited from Nextcloud::OcsApi

#app, #file_sharing, #group, #user

Methods inherited from Api

#ocs, #request, #webdav

Constructor Details

#initialize(api, userid, groupid = nil) ⇒ Group

Initializes an User Group instance

Parameters:

  • api (Object)

    Api instance

  • userid (String)

    User identifier

  • groupid (String, nil) (defaults to: nil)

    Group identifier



151
152
153
154
155
# File 'lib/nextcloud/ocs/user.rb', line 151

def initialize(api, userid, groupid = nil)
  @api = api
  @userid = userid
  @groupid = groupid if groupid
end

Instance Attribute Details

#groupidString?

Returns Group identifier.

Returns:

  • (String, nil)

    Group identifier



141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
# File 'lib/nextcloud/ocs/user.rb', line 141

class Group < User
  include Helpers

  attr_accessor :userid, :groupid, :meta

  # Initializes an User Group instance
  #
  # @param api [Object] Api instance
  # @param userid [String] User identifier
  # @param groupid [String,nil] Group identifier
  def initialize(api, userid, groupid = nil)
    @api = api
    @userid = userid
    @groupid = groupid if groupid
  end

  # Add an user to a group
  #
  # @param groupid [String] Group to add user to
  # @return [Object] Instance with meta information
  def create(groupid)
    response = @api.request(:post, "users/#{@userid}/groups", groupid: groupid)
    (@meta = get_meta(response)) && self
  end

  # Remove user from a group
  #
  # @param groupid [String] Group to remove user from
  # @return [Object] Instance with meta information
  def destroy(groupid)
    response = @api.request(:delete, "users/#{@userid}/groups", groupid: groupid)
    (@meta = get_meta(response)) && self
  end

  # Make an user subadmin of a group
  #
  # @return [Object] Instance with meta information
  def promote
    response = @api.request(:post, "users/#{@userid}/subadmins", groupid: @groupid)
    (@meta = get_meta(response)) && self
  end

  # Remove an user from group subadmins
  #
  # @return [Object] Instance with meta information
  def demote
    response = @api.request(:delete, "users/#{@userid}/subadmins", groupid: @groupid)
    (@meta = get_meta(response)) && self
  end
end

#metaHash

Returns Information about API response.

Returns:

  • (Hash)

    Information about API response



141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
# File 'lib/nextcloud/ocs/user.rb', line 141

class Group < User
  include Helpers

  attr_accessor :userid, :groupid, :meta

  # Initializes an User Group instance
  #
  # @param api [Object] Api instance
  # @param userid [String] User identifier
  # @param groupid [String,nil] Group identifier
  def initialize(api, userid, groupid = nil)
    @api = api
    @userid = userid
    @groupid = groupid if groupid
  end

  # Add an user to a group
  #
  # @param groupid [String] Group to add user to
  # @return [Object] Instance with meta information
  def create(groupid)
    response = @api.request(:post, "users/#{@userid}/groups", groupid: groupid)
    (@meta = get_meta(response)) && self
  end

  # Remove user from a group
  #
  # @param groupid [String] Group to remove user from
  # @return [Object] Instance with meta information
  def destroy(groupid)
    response = @api.request(:delete, "users/#{@userid}/groups", groupid: groupid)
    (@meta = get_meta(response)) && self
  end

  # Make an user subadmin of a group
  #
  # @return [Object] Instance with meta information
  def promote
    response = @api.request(:post, "users/#{@userid}/subadmins", groupid: @groupid)
    (@meta = get_meta(response)) && self
  end

  # Remove an user from group subadmins
  #
  # @return [Object] Instance with meta information
  def demote
    response = @api.request(:delete, "users/#{@userid}/subadmins", groupid: @groupid)
    (@meta = get_meta(response)) && self
  end
end

#useridObject

Returns the value of attribute userid.



144
145
146
# File 'lib/nextcloud/ocs/user.rb', line 144

def userid
  @userid
end

Instance Method Details

#create(groupid) ⇒ Object

Add an user to a group

Parameters:

  • groupid (String)

    Group to add user to

Returns:

  • (Object)

    Instance with meta information



161
162
163
164
# File 'lib/nextcloud/ocs/user.rb', line 161

def create(groupid)
  response = @api.request(:post, "users/#{@userid}/groups", groupid: groupid)
  (@meta = get_meta(response)) && self
end

#demoteObject

Remove an user from group subadmins

Returns:

  • (Object)

    Instance with meta information



186
187
188
189
# File 'lib/nextcloud/ocs/user.rb', line 186

def demote
  response = @api.request(:delete, "users/#{@userid}/subadmins", groupid: @groupid)
  (@meta = get_meta(response)) && self
end

#destroy(groupid) ⇒ Object

Remove user from a group

Parameters:

  • groupid (String)

    Group to remove user from

Returns:

  • (Object)

    Instance with meta information



170
171
172
173
# File 'lib/nextcloud/ocs/user.rb', line 170

def destroy(groupid)
  response = @api.request(:delete, "users/#{@userid}/groups", groupid: groupid)
  (@meta = get_meta(response)) && self
end

#promoteObject

Make an user subadmin of a group

Returns:

  • (Object)

    Instance with meta information



178
179
180
181
# File 'lib/nextcloud/ocs/user.rb', line 178

def promote
  response = @api.request(:post, "users/#{@userid}/subadmins", groupid: @groupid)
  (@meta = get_meta(response)) && self
end