Documentation
¶
Index ¶
- Constants
- Variables
- func CreateGroupChangeFromGroupActions(actions []byte) []byte
- func CreatePromotePendingMemberAction(uuid []byte, group string) []byte
- func GetGroupAuthCredentials(startDay int64, endDay int64) error
- func GetGroupExternalCredential(credential *GroupCredential) (*signalservice.GroupExternalCredential, error)
- func GetMemberPendingAdminApproval(user *entities.GroupUser, group *GroupV2) *signalservice.DecryptedRequestingMember
- func GetMemberPendingProfileKey(user *entities.GroupUser, group *GroupV2) *signalservice.DecryptedPendingMember
- func GetSourceMember(user *entities.GroupUser, group *GroupV2) *signalservice.DecryptedMember
- func GroupInviteLinkUrl()
- func GroupLinkPassword()
- func HexToUUID(id string) string
- func IsAccessRequiredOneOf(valueToTest signalservice.AccessControl_AccessRequired, ...) bool
- func IsMember(user *entities.GroupUser, group *GroupV2) bool
- func IsMemberPendingAdminApproval(user *entities.GroupUser, group *GroupV2) bool
- func IsMemberPendingProfileKey(user *entities.GroupUser, group *GroupV2) bool
- func PatchGroupV2(out []byte, groupsV2Authorization *GroupsV2Authorization) error
- func SetupGroups(path string) error
- type GroupChangeApplicator
- func (g *GroupChangeApplicator) ApplyAddMembers(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, ...) error
- func (g *GroupChangeApplicator) ApplyAddMembersPendingAdminApproval(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, ...) error
- func (g *GroupChangeApplicator) ApplyAddMembersPendingProfileKeys(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, ...) error
- func (g *GroupChangeApplicator) ApplyDeleteMembers(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, ...) error
- func (g *GroupChangeApplicator) ApplyDeleteMembersPendingAdminApproval(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, ...) error
- func (g *GroupChangeApplicator) ApplyDeleteMembersPendingProfileKey(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, ...) error
- func (g *GroupChangeApplicator) ApplyModifyAddFromInviteLinkAccess(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, ...) error
- func (g *GroupChangeApplicator) ApplyModifyAnnouncementsOnly(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, ...) error
- func (g *GroupChangeApplicator) ApplyModifyAttributesAccess(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, ...) error
- func (g *GroupChangeApplicator) ApplyModifyAvatar(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, ...) error
- func (g *GroupChangeApplicator) ApplyModifyDescription(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, ...) error
- func (g *GroupChangeApplicator) ApplyModifyDisappearingMessageTimer(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, ...) error
- func (g *GroupChangeApplicator) ApplyModifyInviteLinkPassword(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, ...) error
- func (g *GroupChangeApplicator) ApplyModifyMemberProfileKeys(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, ...) error
- func (g *GroupChangeApplicator) ApplyModifyMemberRoles(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, ...) error
- func (g *GroupChangeApplicator) ApplyModifyMembersAccess(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, ...) error
- func (g *GroupChangeApplicator) ApplyModifyTitle(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, ...) error
- func (g *GroupChangeApplicator) ApplyPromoteMembersPendingProfileKey(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, ...) error
- func (g *GroupChangeApplicator) ApplyPromotePendingAdminApproval(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, ...) error
- type GroupCredential
- type GroupCredentials
- type GroupExternalCredential
- type GroupV2
- func (g *GroupV2) AddPendingMembers(uuid []byte) error
- func (g *GroupV2) CheckJoinStatus() error
- func (g *GroupV2) EncryptUUID(uuid []byte) ([]byte, error)
- func (g *GroupV2) JoinGroup() error
- func (g *GroupV2) ModifyGroup(user *entities.GroupUser, params ModifyGroupParams, ...) (*entities.Resp, error)
- func (g *GroupV2) UpdateGroupFromServer() error
- type GroupV2MessageContext
- type GroupValidator
- func (g *GroupValidator) IsValidAvatarUrl(url string, groupId []byte) bool
- func (g *GroupValidator) ValidateAccessControl(group *signalservice.DecryptedGroup) error
- func (g *GroupValidator) ValidateAddMember(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, ...) error
- func (g *GroupValidator) ValidateAddMembersPendingAdminApproval(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, ...) error
- func (g *GroupValidator) ValidateAddMembersPendingProfileKey(user *entities.GroupUser, group *GroupV2, ...) error
- func (g *GroupValidator) ValidateFinalGroupState(group *signalservice.DecryptedGroup) error
- func (g *GroupValidator) ValidateMember(group *GroupV2, member *signalservice.Member, publicKey []byte) (*signalservice.Member, error)
- func (g *GroupValidator) ValidateMemberPendingAdminApproval(user *entities.GroupUser, group *GroupV2, ...) (*signalservice.RequestingMember, error)
- func (g *GroupValidator) ValidateMemberPendingProfileKey(group *GroupV2, member *signalservice.DecryptedMember, ...) (*signalservice.PendingMember, error)
- func (g *GroupValidator) ValidatePresentationUpdate(source *entities.GroupUser, group *GroupV2, presentationData []byte) (zkgroup.ProfileKeyCredentialPresentation, error)
- func (g *GroupValidator) ValidateRoles(group *signalservice.DecryptedGroup) error
- type GroupsV2Authorization
- type ModifyGroupParams
Constants ¶
View Source
const ( GROUPSV2_CREDENTIAL = "/v1/certificate/group/%d/%d" GROUPSV2_TOKEN = "/v1/groups/token" )
View Source
const ( HIGHEST_KNOWN_EPOCH = 1 GROUPSV2_GROUP = "/v1/groups/" GROUPSV2_GROUP_JOIN = "/v1/groups/join/%s" )
View Source
const ( GroupV2JoinsStatusMember = 0 GroupV2JoinsStatusInvite = 1 GroupV2JoinsStatusRequest = 2 GroupV2JoinsStatusRemoved = 3 )
Variables ¶
View Source
var INVITE_LINK_PASSWORD_SIZE_BYTES = 16
Functions ¶
func GetGroupAuthCredentials ¶
func GetGroupExternalCredential ¶
func GetGroupExternalCredential(credential *GroupCredential) (*signalservice.GroupExternalCredential, error)
func GetMemberPendingAdminApproval ¶
func GetMemberPendingAdminApproval(user *entities.GroupUser, group *GroupV2) *signalservice.DecryptedRequestingMember
func GetMemberPendingProfileKey ¶
func GetMemberPendingProfileKey(user *entities.GroupUser, group *GroupV2) *signalservice.DecryptedPendingMember
func GetSourceMember ¶
func GetSourceMember(user *entities.GroupUser, group *GroupV2) *signalservice.DecryptedMember
func GroupInviteLinkUrl ¶
func GroupInviteLinkUrl()
func GroupLinkPassword ¶
func GroupLinkPassword()
func IsAccessRequiredOneOf ¶
func IsAccessRequiredOneOf(valueToTest signalservice.AccessControl_AccessRequired, acceptableValues ...signalservice.AccessControl_AccessRequired) bool
func PatchGroupV2 ¶
func PatchGroupV2(out []byte, groupsV2Authorization *GroupsV2Authorization) error
func SetupGroups ¶
Types ¶
type GroupChangeApplicator ¶
type GroupChangeApplicator struct {
// contains filtered or unexported fields
}
func NewGroupChangeApplicator ¶
func NewGroupChangeApplicator(g *GroupValidator) *GroupChangeApplicator
func (*GroupChangeApplicator) ApplyAddMembers ¶
func (g *GroupChangeApplicator) ApplyAddMembers(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, addMembers []*signalservice.GroupChange_Actions_AddMemberAction, groupImmut *GroupV2) error
func (*GroupChangeApplicator) ApplyAddMembersPendingAdminApproval ¶
func (g *GroupChangeApplicator) ApplyAddMembersPendingAdminApproval(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, actions []*signalservice.GroupChange_Actions_AddRequestingMemberAction, groupImmut *GroupV2) error
func (*GroupChangeApplicator) ApplyAddMembersPendingProfileKeys ¶
func (g *GroupChangeApplicator) ApplyAddMembersPendingProfileKeys(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, addMembersPendingProfileKeys []*signalservice.GroupChange_Actions_AddPendingMemberAction, groupImmut *GroupV2) error
func (*GroupChangeApplicator) ApplyDeleteMembers ¶
func (g *GroupChangeApplicator) ApplyDeleteMembers(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, deleteMembers []*signalservice.GroupChange_Actions_DeleteMemberAction, groupImmut *GroupV2) error
func (*GroupChangeApplicator) ApplyDeleteMembersPendingAdminApproval ¶
func (g *GroupChangeApplicator) ApplyDeleteMembersPendingAdminApproval(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, actions []*signalservice.GroupChange_Actions_DeleteRequestingMemberAction, groupImmut *GroupV2) error
func (*GroupChangeApplicator) ApplyDeleteMembersPendingProfileKey ¶
func (g *GroupChangeApplicator) ApplyDeleteMembersPendingProfileKey(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, deleteMembersPendingProfileKeys []*signalservice.GroupChange_Actions_DeletePendingMemberAction, groupImmut *GroupV2) error
func (*GroupChangeApplicator) ApplyModifyAddFromInviteLinkAccess ¶
func (g *GroupChangeApplicator) ApplyModifyAddFromInviteLinkAccess(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, action *signalservice.GroupChange_Actions_ModifyAddFromInviteLinkAccessControlAction, groupImmut *GroupV2) error
func (*GroupChangeApplicator) ApplyModifyAnnouncementsOnly ¶
func (g *GroupChangeApplicator) ApplyModifyAnnouncementsOnly(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, action *signalservice.GroupChange_Actions_ModifyAnnouncementsOnlyAction, groupImmut *GroupV2) error
func (*GroupChangeApplicator) ApplyModifyAttributesAccess ¶
func (g *GroupChangeApplicator) ApplyModifyAttributesAccess(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, modifyAttributesAccess *signalservice.GroupChange_Actions_ModifyAttributesAccessControlAction, groupImmut *GroupV2) error
func (*GroupChangeApplicator) ApplyModifyAvatar ¶
func (g *GroupChangeApplicator) ApplyModifyAvatar(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, modifyAvatar *signalservice.GroupChange_Actions_ModifyAvatarAction, groupImmut *GroupV2) error
func (*GroupChangeApplicator) ApplyModifyDescription ¶
func (g *GroupChangeApplicator) ApplyModifyDescription(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, action *signalservice.GroupChange_Actions_ModifyDescriptionAction, groupImmut *GroupV2) error
func (*GroupChangeApplicator) ApplyModifyDisappearingMessageTimer ¶
func (g *GroupChangeApplicator) ApplyModifyDisappearingMessageTimer(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, modifyDisappearingMessageTimer *signalservice.GroupChange_Actions_ModifyDisappearingMessagesTimerAction, groupImmut *GroupV2) error
func (*GroupChangeApplicator) ApplyModifyInviteLinkPassword ¶
func (g *GroupChangeApplicator) ApplyModifyInviteLinkPassword(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, action *signalservice.GroupChange_Actions_ModifyInviteLinkPasswordAction, groupImmut *GroupV2) error
func (*GroupChangeApplicator) ApplyModifyMemberProfileKeys ¶
func (g *GroupChangeApplicator) ApplyModifyMemberProfileKeys(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, modifyMembers []*signalservice.GroupChange_Actions_ModifyMemberProfileKeyAction, groupImmut *GroupV2) error
func (*GroupChangeApplicator) ApplyModifyMemberRoles ¶
func (g *GroupChangeApplicator) ApplyModifyMemberRoles(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, modifyMembers []*signalservice.GroupChange_Actions_ModifyMemberRoleAction, groupImmut *GroupV2) error
func (*GroupChangeApplicator) ApplyModifyMembersAccess ¶
func (g *GroupChangeApplicator) ApplyModifyMembersAccess(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, modifyMembersAccess *signalservice.GroupChange_Actions_ModifyMembersAccessControlAction, groupImmut *GroupV2) error
func (*GroupChangeApplicator) ApplyModifyTitle ¶
func (g *GroupChangeApplicator) ApplyModifyTitle(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, modifyTitle *signalservice.GroupChange_Actions_ModifyTitleAction, groupImmut *GroupV2) error
func (*GroupChangeApplicator) ApplyPromoteMembersPendingProfileKey ¶
func (g *GroupChangeApplicator) ApplyPromoteMembersPendingProfileKey(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, promoteMembersPendingProfileKeys []*signalservice.GroupChange_Actions_PromotePendingMemberAction, groupImmut *GroupV2) error
func (*GroupChangeApplicator) ApplyPromotePendingAdminApproval ¶
func (g *GroupChangeApplicator) ApplyPromotePendingAdminApproval(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, actions []*signalservice.GroupChange_Actions_PromoteRequestingMemberAction, groupImmut *GroupV2) error
type GroupCredential ¶
func GetCredentialForRedemption ¶
func GetCredentialForRedemption(day int64) (*GroupCredential, error)
func GetCredentialForToday ¶
func GetCredentialForToday() (*GroupCredential, error)
type GroupCredentials ¶
type GroupCredentials struct {
Credentials []GroupCredential `json:"credentials"`
}
var Credentials *GroupCredentials
type GroupExternalCredential ¶
type GroupExternalCredential struct {
Token []byte `json:"token"`
}
type GroupV2 ¶
type GroupV2 struct { MasterKey []byte Hexid string GroupContext signalservice.Group DecryptedGroup *signalservice.DecryptedGroup GroupAction *signalservice.DecryptedGroupChange JoinStatus int Revision uint32 AnnouncementsOnly bool // contains filtered or unexported fields }
GroupV2 holds group metadata.
func HandleGroupsV2 ¶
func HandleGroupsV2(src string, dm *signalservice.DataMessage) (*GroupV2, error)
func (*GroupV2) AddPendingMembers ¶
func (*GroupV2) CheckJoinStatus ¶
todo handle group join requests via link
func (*GroupV2) ModifyGroup ¶
func (g *GroupV2) ModifyGroup(user *entities.GroupUser, params ModifyGroupParams, submittedActions *signalservice.GroupChange_Actions) (*entities.Resp, error)
func (*GroupV2) UpdateGroupFromServer ¶
type GroupV2MessageContext ¶
type GroupV2MessageContext struct { MasterKey []byte // Masterkey is the unique identifier Revision uint32 // holds the current revision number, if mismatch fetch the steps in between GroupChange []byte // protobuf of signalservice.GroupChange }
GroupV2Message defines a group v2 message type
type GroupValidator ¶
type GroupValidator struct {
// contains filtered or unexported fields
}
func NewGroupValidator ¶
func NewGroupValidator(profileOp *zkgroup.ServerZkProfileOperations, config *config.Config) *GroupValidator
func (*GroupValidator) IsValidAvatarUrl ¶
func (g *GroupValidator) IsValidAvatarUrl(url string, groupId []byte) bool
func (*GroupValidator) ValidateAccessControl ¶
func (g *GroupValidator) ValidateAccessControl(group *signalservice.DecryptedGroup) error
func (*GroupValidator) ValidateAddMember ¶
func (g *GroupValidator) ValidateAddMember(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, actions []*signalservice.GroupChange_Actions_AddMemberAction, groupPublicKey []byte) error
func (*GroupValidator) ValidateAddMembersPendingAdminApproval ¶
func (g *GroupValidator) ValidateAddMembersPendingAdminApproval(user *entities.GroupUser, inviteLinkPassword []byte, group *GroupV2, actions []*signalservice.GroupChange_Actions_AddRequestingMemberAction) error
func (*GroupValidator) ValidateAddMembersPendingProfileKey ¶
func (g *GroupValidator) ValidateAddMembersPendingProfileKey(user *entities.GroupUser, group *GroupV2, actions []*signalservice.GroupChange_Actions_AddPendingMemberAction) error
func (*GroupValidator) ValidateFinalGroupState ¶
func (g *GroupValidator) ValidateFinalGroupState(group *signalservice.DecryptedGroup) error
func (*GroupValidator) ValidateMember ¶
func (g *GroupValidator) ValidateMember(group *GroupV2, member *signalservice.Member, publicKey []byte) (*signalservice.Member, error)
func (*GroupValidator) ValidateMemberPendingAdminApproval ¶
func (g *GroupValidator) ValidateMemberPendingAdminApproval(user *entities.GroupUser, group *GroupV2, memberPendingAdminApproval *signalservice.RequestingMember) (*signalservice.RequestingMember, error)
func (*GroupValidator) ValidateMemberPendingProfileKey ¶
func (g *GroupValidator) ValidateMemberPendingProfileKey(group *GroupV2, member *signalservice.DecryptedMember, memberPendingProfileKey *signalservice.PendingMember) (*signalservice.PendingMember, error)
func (*GroupValidator) ValidatePresentationUpdate ¶
func (g *GroupValidator) ValidatePresentationUpdate(source *entities.GroupUser, group *GroupV2, presentationData []byte) (zkgroup.ProfileKeyCredentialPresentation, error)
func (*GroupValidator) ValidateRoles ¶
func (g *GroupValidator) ValidateRoles(group *signalservice.DecryptedGroup) error
type GroupsV2Authorization ¶
func NewGroupsV2Authorization ¶
func NewGroupsV2Authorization(uuid []byte, groupSecretParams zkgroup.GroupSecretParams) (*GroupsV2Authorization, error)
func NewGroupsV2AuthorizationForGroup ¶
func NewGroupsV2AuthorizationForGroup(uuid []byte, hexid string) (*GroupsV2Authorization, error)
type ModifyGroupParams ¶
type ModifyGroupParams struct {
InviteLinkPassword string `form:"inviteLinkPassword,optional"`
}
Click to show internal directories.
Click to hide internal directories.