mirror of
				https://gitlab.bertha.cloud/partitio/Nextcloud-Partitio/gonextcloud
				synced 2025-11-04 05:11:46 +00:00 
			
		
		
		
	Added User's group actions
This commit is contained in:
		
							
								
								
									
										35
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								README.md
									
									
									
									
									
								
							@@ -15,12 +15,12 @@ A simple Client for Nextcloud's API in Go.
 | 
				
			|||||||
  - ~~delete~~
 | 
					  - ~~delete~~
 | 
				
			||||||
  - ~~enable~~
 | 
					  - ~~enable~~
 | 
				
			||||||
  - ~~disable~~
 | 
					  - ~~disable~~
 | 
				
			||||||
  - get groups
 | 
					  - ~~get groups~~
 | 
				
			||||||
  - add to group
 | 
					  - ~~add to group~~
 | 
				
			||||||
  - remove from group
 | 
					  - ~~remove from group~~
 | 
				
			||||||
  - get subadmin group
 | 
					  - ~~get subadmin group~~
 | 
				
			||||||
  - promote subadmin
 | 
					  - ~~promote subadmin~~
 | 
				
			||||||
  - demote subadmin
 | 
					  - ~~demote subadmin~~
 | 
				
			||||||
  - ~~send welcome mail~~ 
 | 
					  - ~~send welcome mail~~ 
 | 
				
			||||||
- [Groups](#groups)
 | 
					- [Groups](#groups)
 | 
				
			||||||
  - create
 | 
					  - create
 | 
				
			||||||
@@ -104,6 +104,29 @@ func (c *Client) UserUpdatePassword(name string, password string) error
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
func (c *Client) UserUpdateQuota(name string, quota string) error
 | 
					func (c *Client) UserUpdateQuota(name string, quota string) error
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					Groups
 | 
				
			||||||
 | 
					```go
 | 
				
			||||||
 | 
					func (c *Client) UserGroupList(name string) ([]string, error)
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					```go
 | 
				
			||||||
 | 
					func (c *Client) UserGroupAdd(name string, group string) error 
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					```go
 | 
				
			||||||
 | 
					func (c *Client) UserGroupRemove(name string, group string) error 
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					```go
 | 
				
			||||||
 | 
					func (c *Client) UserGroupPromote(name string, group string) error 
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					```go
 | 
				
			||||||
 | 
					func (c *Client) UserGroupDemote(name string, group string) error 
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					```go
 | 
				
			||||||
 | 
					func (c *Client) UserGroupSubAdminList(name string) ([]string, error) 
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					Welcome Mail
 | 
				
			||||||
 | 
					```go
 | 
				
			||||||
 | 
					func (c *Client) UserSendWelcomeEmail(name string) error 
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
## Groups
 | 
					## Groups
 | 
				
			||||||
TODO
 | 
					TODO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -41,6 +41,19 @@ type UserResponse struct {
 | 
				
			|||||||
	} `json:"ocs"`
 | 
						} `json:"ocs"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type SubAdminResponse struct {
 | 
				
			||||||
 | 
						Ocs struct {
 | 
				
			||||||
 | 
							Meta struct {
 | 
				
			||||||
 | 
								Status       string `json:"status"`
 | 
				
			||||||
 | 
								Statuscode   int    `json:"statuscode"`
 | 
				
			||||||
 | 
								Message      string `json:"message"`
 | 
				
			||||||
 | 
								Totalitems   string `json:"totalitems"`
 | 
				
			||||||
 | 
								Itemsperpage string `json:"itemsperpage"`
 | 
				
			||||||
 | 
							} `json:"meta"`
 | 
				
			||||||
 | 
							Data []string `json:"data"`
 | 
				
			||||||
 | 
						} `json:"ocs"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type GroupListResponse struct {
 | 
					type GroupListResponse struct {
 | 
				
			||||||
	Ocs struct {
 | 
						Ocs struct {
 | 
				
			||||||
		Meta struct {
 | 
							Meta struct {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -124,6 +124,78 @@ func (c *Client) UserUpdateQuota(name string, quota string) error {
 | 
				
			|||||||
	return c.userUpdateAttribute(name, "quota", quota)
 | 
						return c.userUpdateAttribute(name, "quota", quota)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (c *Client) UserGroupList(name string) ([]string, error) {
 | 
				
			||||||
 | 
						if !c.loggedIn() {
 | 
				
			||||||
 | 
							return nil, unauthorized
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						u := c.baseURL.ResolveReference(routes.users)
 | 
				
			||||||
 | 
						u.Path = path.Join(u.Path, name, "groups")
 | 
				
			||||||
 | 
						res, err := c.session.Get(u.String(), nil)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						var r types.GroupListResponse
 | 
				
			||||||
 | 
						res.JSON(&r)
 | 
				
			||||||
 | 
						if r.Ocs.Meta.Statuscode != 100 {
 | 
				
			||||||
 | 
							return nil, fmt.Errorf(r.Ocs.Meta.Message)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return r.Ocs.Data.Groups, nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (c *Client) UserGroupAdd(name string, group string) error {
 | 
				
			||||||
 | 
						ro := &req.RequestOptions{
 | 
				
			||||||
 | 
							Data: map[string]string{
 | 
				
			||||||
 | 
								"groupid": group,
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return c.userBaseRequest(name, "groups", ro, http.MethodPost)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (c *Client) UserGroupRemove(name string, group string) error {
 | 
				
			||||||
 | 
						ro := &req.RequestOptions{
 | 
				
			||||||
 | 
							Data: map[string]string{
 | 
				
			||||||
 | 
								"groupid": group,
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return c.userBaseRequest(name, "groups", ro, http.MethodDelete)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (c *Client) UserGroupPromote(name string, group string) error {
 | 
				
			||||||
 | 
						ro := &req.RequestOptions{
 | 
				
			||||||
 | 
							Data: map[string]string{
 | 
				
			||||||
 | 
								"groupid": group,
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return c.userBaseRequest(name, "subadmins", ro, http.MethodPost)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (c *Client) UserGroupDemote(name string, group string) error {
 | 
				
			||||||
 | 
						ro := &req.RequestOptions{
 | 
				
			||||||
 | 
							Data: map[string]string{
 | 
				
			||||||
 | 
								"groupid": group,
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return c.userBaseRequest(name, "subadmins", ro, http.MethodDelete)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (c *Client) UserGroupSubAdminList(name string) ([]string, error) {
 | 
				
			||||||
 | 
						if !c.loggedIn() {
 | 
				
			||||||
 | 
							return nil, unauthorized
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						u := c.baseURL.ResolveReference(routes.users)
 | 
				
			||||||
 | 
						u.Path = path.Join(u.Path, name, "subadmins")
 | 
				
			||||||
 | 
						res, err := c.session.Get(u.String(), nil)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						var r types.SubAdminResponse
 | 
				
			||||||
 | 
						res.JSON(&r)
 | 
				
			||||||
 | 
						if r.Ocs.Meta.Statuscode != 100 {
 | 
				
			||||||
 | 
							return nil, fmt.Errorf(r.Ocs.Meta.Message)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return r.Ocs.Data, nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (c *Client) userUpdateAttribute(name string, key string, value string) error {
 | 
					func (c *Client) userUpdateAttribute(name string, key string, value string) error {
 | 
				
			||||||
	ro := &req.RequestOptions{
 | 
						ro := &req.RequestOptions{
 | 
				
			||||||
		Data: map[string]string{
 | 
							Data: map[string]string{
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user