Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 22 additions & 1 deletion libs/go/zmscli/cli.go
Original file line number Diff line number Diff line change
Expand Up @@ -679,6 +679,14 @@ func (cli Zms) EvalCommand(params []string) (*string, error) {
if argc >= 2 {
return cli.AddGroupMembers(dn, args[0], args[1:])
}
case "add-temporary-group-member":
if argc == 3 {
expiration, err := getTimestamp(args[2])
if err == nil {
return cli.AddDueDateGroupMember(dn, args[0], args[1], &expiration)
}
return nil, err
}
case "delete-group-member", "delete-group-members":
if argc >= 2 {
return cli.DeleteGroupMembers(dn, args[0], args[1:])
Expand Down Expand Up @@ -2415,7 +2423,7 @@ func (cli Zms) HelpSpecificCommand(interactive bool, cmd string) string {
buf.WriteString(" " + domainExample + " add-group readers -audit-enabled\n")
case "add-group-member":
buf.WriteString(" syntax:\n")
buf.WriteString(" " + domainParam + " add-member group user_or_service [user_or_service ...]\n")
buf.WriteString(" " + domainParam + " add-group-member group user_or_service [user_or_service ...]\n")
buf.WriteString(" parameters:\n")
if !interactive {
buf.WriteString(" domain : name of the domain that group belongs to\n")
Expand All @@ -2424,6 +2432,18 @@ func (cli Zms) HelpSpecificCommand(interactive bool, cmd string) string {
buf.WriteString(" user_or_service : users or services to be added as members\n")
buf.WriteString(" examples:\n")
buf.WriteString(" " + domainExample + " add-member readers " + cli.UserDomain + ".john " + cli.UserDomain + ".joe media.sports.storage\n")
case "add-temporary-group-member":
buf.WriteString(" syntax:\n")
buf.WriteString(" " + domainParam + " add-temporary-group-member group user_or_service expiration\n")
buf.WriteString(" parameters:\n")
if !interactive {
buf.WriteString(" domain : name of the domain that group belongs to\n")
}
buf.WriteString(" group : name of the group to add member to\n")
buf.WriteString(" user_or_service : user or service to be added as member\n")
buf.WriteString(" expiration : expiration date format yyyy-mm-ddThh:mm:ss.msecZ\n")
buf.WriteString(" examples:\n")
buf.WriteString(" " + domainExample + " add-temporary-group-member readers-team " + cli.UserDomain + ".john 2017-03-02T15:04:05.999Z\n")
case "check-group-member":
buf.WriteString(" syntax:\n")
buf.WriteString(" " + domainParam + " check-group-member group user_or_service [user_or_service ...]\n")
Expand Down Expand Up @@ -3853,6 +3873,7 @@ func (cli Zms) HelpListCommand() string {
buf.WriteString(" list-groups-for-review [principal]\n")
buf.WriteString(" add-group group [-audit-enabled] [member ... ]\n")
buf.WriteString(" add-group-member group user_or_service [user_or_service ...]\n")
buf.WriteString(" add-temporary-group-member group user_or_service expiration\n")
buf.WriteString(" check-group-member group user_or_service [user_or_service ...]\n")
buf.WriteString(" check-active-group-member group user_or_service\n")
buf.WriteString(" delete-group-member group user_or_service [user_or_service ...]\n")
Expand Down
29 changes: 29 additions & 0 deletions libs/go/zmscli/group.go
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,35 @@ func (cli Zms) AddGroupMembers(dn string, group string, members []string) (*stri
return cli.dumpByFormat(message, cli.buildYAMLOutput)
}

func (cli Zms) AddDueDateGroupMember(dn string, group string, member string, expiration *rdl.Timestamp) (*string, error) {
fullResourceName := dn + ":group." + group
validatedUser := cli.validatedUser(member)

var membership zms.GroupMembership
membership.MemberName = zms.GroupMemberName(validatedUser)
membership.GroupName = zms.ResourceName(group)
if expiration != nil {
membership.Expiration = expiration
}
returnObject := false
_, err := cli.Zms.PutGroupMembership(zms.DomainName(dn), zms.EntityName(group), zms.GroupMemberName(validatedUser), cli.AuditRef, &returnObject, cli.ResourceOwner, &membership)
if err != nil {
return nil, err
}
var s string
if cli.Verbose {
s = "[Added to " + fullResourceName + ": " + validatedUser + "]"
} else {
s = "[Added to " + group + ": " + validatedUser + "]"
}
message := SuccessMessage{
Status: 200,
Message: s,
}

return cli.dumpByFormat(message, cli.buildYAMLOutput)
}

func (cli Zms) DeleteGroupMembers(dn string, group string, members []string) (*string, error) {
fullResourceName := dn + ":group." + group
ms := cli.validatedUsers(members, false)
Expand Down
Loading