HumHub Documentation (unofficial)

SpaceModelMembership extends Behavior
in package

SpaceModelMemberBehavior bundles all membership related methods of the Space model.

Tags
author

Lucas Bartholemy lucas@bartholemy.com

Table of Contents

Properties

$owner  : Component|null
$owner  : Space
$_attachedEvents  : array<string|int, mixed>
$_spaceOwner  : mixed

Methods

__call()  : mixed
Calls the named method which is not a class method.
__construct()  : mixed
Constructor.
__get()  : mixed
Returns the value of an object property.
__isset()  : bool
Checks if a property is set, i.e. defined and not null.
__set()  : mixed
Sets value of an object property.
__unset()  : mixed
Sets an object property to null.
addMember()  : bool
Adds an member to this space.
attach()  : mixed
Attaches the behavior object to the component.
canDelete()  : bool
canGetProperty()  : bool
Returns a value indicating whether a property can be read.
canLeave()  : bool
Checks if a given Userid is allowed to leave this space.
canSetProperty()  : bool
Returns a value indicating whether a property can be set.
className()  : string
Returns the fully qualified name of this class.
detach()  : mixed
Detaches the behavior object from the component.
events()  : array<string|int, mixed>
Declares event handlers for the [[owner]]'s events.
getAdmins()  : array<string|int, User>
Returns the admins of the space
getAdminsQuery()  : ActiveQueryUser
Returns user query for admins of the space
getMembership()  : Membership|null
Returns the SpaceMembership Record for this Space
getSpaceOwner()  : User
Gets Owner for this workspace
hasMethod()  : bool
Returns a value indicating whether a method is defined.
hasProperty()  : bool
Returns a value indicating whether a property is defined.
init()  : mixed
Initializes the object.
inviteMember()  : mixed
Invites a registered user to this space
inviteMemberByEMail()  : mixed
Invites a not registered member to this space
isAdmin()  : bool
Checks if given Userid is Admin of this Space or has the permission to manage spaces.
isMember()  : bool
Checks if given userId is Member of this Space.
isSpaceOwner()  : bool
Is given User owner of this Space
removeMember()  : bool
Remove Membership
requestMembership()  : mixed
Requests Membership
setAdmin()  : bool
Sets Owner for this workspace
setSpaceOwner()  : bool
Sets Owner for this workspace
sendInviteNotification()  : mixed
Sends an Invite Notification to the given user.
handleCancelApplicantEvent()  : mixed
Handles the cancellation of an space application. An application can be canceled by the applicant himself or declined by an space admin.
handleCancelInvitationEvent()  : mixed
Handles the cancellation of an invitation. An invitation can be declined by the invited user or canceled by a space admin.
handleCancelMemberEvent()  : mixed
handleRemoveMembershipEvent()  : mixed
Responsible for event,activity and notification handling in case of a space membership removal.

Properties

$_attachedEvents

private array<string|int, mixed> $_attachedEvents = []

Attached events handlers

Methods

__call()

Calls the named method which is not a class method.

public __call(string $name, array<string|int, mixed> $params) : mixed

Do not call this method directly as it is a PHP magic method that will be implicitly called when an unknown method is being invoked.

Parameters
$name : string

the method name

$params : array<string|int, mixed>

method parameters

Tags
throws
UnknownMethodException

when calling unknown method

Return values
mixed —

the method return value

__construct()

Constructor.

public __construct([array<string|int, mixed> $config = [] ]) : mixed

The default implementation does two things:

  • Initializes the object with the given configuration $config.
  • Call [[init()]].

If this method is overridden in a child class, it is recommended that

  • the last parameter of the constructor is a configuration array, like $config here.
  • call the parent implementation at the end of the constructor.
Parameters
$config : array<string|int, mixed> = []

name-value pairs that will be used to initialize the object properties

__get()

Returns the value of an object property.

public __get(string $name) : mixed

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing $value = $object->property;.

Parameters
$name : string

the property name

Tags
throws
UnknownPropertyException

if the property is not defined

throws
InvalidCallException

if the property is write-only

see
__set()
Return values
mixed —

the property value

__isset()

Checks if a property is set, i.e. defined and not null.

public __isset(string $name) : bool

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing isset($object->property).

Note that if the property is not defined, false will be returned.

Parameters
$name : string

the property name or the event name

Tags
see
https://www.php.net/manual/en/function.isset.php
Return values
bool —

whether the named property is set (not null).

__set()

Sets value of an object property.

public __set(string $name, mixed $value) : mixed

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing $object->property = $value;.

Parameters
$name : string

the property name or the event name

$value : mixed

the property value

Tags
throws
UnknownPropertyException

if the property is not defined

throws
InvalidCallException

if the property is read-only

see
__get()

__unset()

Sets an object property to null.

public __unset(string $name) : mixed

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing unset($object->property).

Note that if the property is not defined, this method will do nothing. If the property is read-only, it will throw an exception.

Parameters
$name : string

the property name

Tags
throws
InvalidCallException

if the property is read only.

see
https://www.php.net/manual/en/function.unset.php

addMember()

Adds an member to this space.

public addMember(int $userId[, int $canLeave = 1 ][, bool $silent = false ][, string $groupId = Space::USERGROUP_MEMBER ][, bool $showAtDashboard = true ]) : bool

This can happens after an clicking "Request Membership" Link after Approval or accepting an invite.

Parameters
$userId : int
$canLeave : int = 1

0: user cannot cancel membership | 1: can cancel membership | 2: depending on space flag members_can_leave

$silent : bool = false

add member without any notifications

$groupId : string = Space::USERGROUP_MEMBER
$showAtDashboard : bool = true

add member without any notifications

Tags
throws
Throwable
throws
InvalidConfigException
Return values
bool

attach()

Attaches the behavior object to the component.

public attach(Component $owner) : mixed

The default implementation will set the [[owner]] property and attach event handlers as declared in [[events]]. Make sure you call the parent implementation if you override this method.

Parameters
$owner : Component

the component that this behavior is to be attached to.

canDelete()

public canDelete() : bool
Tags
since
1.3
Return values
bool —

checks if the current user is allowed to delete this space

canGetProperty()

Returns a value indicating whether a property can be read.

public canGetProperty(string $name[, bool $checkVars = true ]) : bool

A property is readable if:

  • the class has a getter method associated with the specified name (in this case, property name is case-insensitive);
  • the class has a member variable with the specified name (when $checkVars is true);
Parameters
$name : string

the property name

$checkVars : bool = true

whether to treat member variables as properties

Tags
see
canSetProperty()
Return values
bool —

whether the property can be read

canLeave()

Checks if a given Userid is allowed to leave this space.

public canLeave([number $userId = '' ]) : bool

A User is allowed to leave, if the can_cancel_membership flag in the space_membership table is 1. If it is 2, the decision is delegated to the space.

Parameters
$userId : number = ''

, if empty hte currently logged in user is taken.

Return values
bool

canSetProperty()

Returns a value indicating whether a property can be set.

public canSetProperty(string $name[, bool $checkVars = true ]) : bool

A property is writable if:

  • the class has a setter method associated with the specified name (in this case, property name is case-insensitive);
  • the class has a member variable with the specified name (when $checkVars is true);
Parameters
$name : string

the property name

$checkVars : bool = true

whether to treat member variables as properties

Tags
see
canGetProperty()
Return values
bool —

whether the property can be written

className()

Returns the fully qualified name of this class.

public static className() : string
Tags
deprecated

since 2.0.14. On PHP >=5.5, use ::class instead.

Return values
string —

the fully qualified name of this class.

detach()

Detaches the behavior object from the component.

public detach() : mixed

The default implementation will unset the [[owner]] property and detach event handlers declared in [[events]]. Make sure you call the parent implementation if you override this method.

events()

Declares event handlers for the [[owner]]'s events.

public events() : array<string|int, mixed>

Child classes may override this method to declare what PHP callbacks should be attached to the events of the [[owner]] component.

The callbacks will be attached to the [[owner]]'s events when the behavior is attached to the owner; and they will be detached from the events when the behavior is detached from the component.

The callbacks can be any of the following:

  • method in this behavior: 'handleClick', equivalent to [$this, 'handleClick']
  • object method: [$object, 'handleClick']
  • static method: ['Page', 'handleClick']
  • anonymous function: function ($event) { ... }

The following is an example:

[
    Model::EVENT_BEFORE_VALIDATE => 'myBeforeValidate',
    Model::EVENT_AFTER_VALIDATE => 'myAfterValidate',
]
Return values
array<string|int, mixed> —

events (array keys) and the corresponding event handler methods (array values).

getAdmins()

Returns the admins of the space

public getAdmins() : array<string|int, User>
Return values
array<string|int, User> —

the admin users of the space

getMembership()

Returns the SpaceMembership Record for this Space

public getMembership([mixed $userId = null ]) : Membership|null

If none Record is found, null is given

Parameters
$userId : mixed = null
Return values
Membership|null —

the membership

hasMethod()

Returns a value indicating whether a method is defined.

public hasMethod(string $name) : bool

The default implementation is a call to php function method_exists(). You may override this method when you implemented the php magic method __call().

Parameters
$name : string

the method name

Return values
bool —

whether the method is defined

hasProperty()

Returns a value indicating whether a property is defined.

public hasProperty(string $name[, bool $checkVars = true ]) : bool

A property is defined if:

  • the class has a getter or setter method associated with the specified name (in this case, property name is case-insensitive);
  • the class has a member variable with the specified name (when $checkVars is true);
Parameters
$name : string

the property name

$checkVars : bool = true

whether to treat member variables as properties

Tags
see
canGetProperty()
see
canSetProperty()
Return values
bool —

whether the property is defined

init()

Initializes the object.

public init() : mixed

This method is invoked at the end of the constructor after the object is initialized with the given configuration.

inviteMember()

Invites a registered user to this space

public inviteMember(int $userId, int $originatorId[, bool $sendInviteNotification = true ]) : mixed

If user is already invited, retrigger invitation. If user is applicant approve it.

Parameters
$userId : int
$originatorId : int
$sendInviteNotification : bool = true

inviteMemberByEMail()

Invites a not registered member to this space

public inviteMemberByEMail(string $email, int $originatorUserId) : mixed
Parameters
$email : string
$originatorUserId : int

isAdmin()

Checks if given Userid is Admin of this Space or has the permission to manage spaces.

public isAdmin([User|int|null $user = null ]) : bool

If no UserId is given, current UserId will be used

Parameters
$user : User|int|null = null

User instance or userId

Return values
bool

isMember()

Checks if given userId is Member of this Space.

public isMember([int $userId = '' ]) : bool
Parameters
$userId : int = ''
Return values
bool

isSpaceOwner()

Is given User owner of this Space

public isSpaceOwner([User|int|null $userId = null ]) : bool
Parameters
$userId : User|int|null = null
Return values
bool

removeMember()

Remove Membership

public removeMember([int|null $userId = null ]) : bool
Parameters
$userId : int|null = null

of User to Remove

Tags
throws
InvalidConfigException
throws
Throwable
Return values
bool

requestMembership()

Requests Membership

public requestMembership(int $userId[, string $message = '' ]) : mixed
Parameters
$userId : int
$message : string = ''

setAdmin()

Sets Owner for this workspace

public setAdmin([int $userId = null ]) : bool
Parameters
$userId : int = null
Return values
bool

setSpaceOwner()

Sets Owner for this workspace

public setSpaceOwner([mixed $user = null ]) : bool
Parameters
$user : mixed = null
Return values
bool

sendInviteNotification()

Sends an Invite Notification to the given user.

protected sendInviteNotification(int $userId, int $originatorId) : mixed
Parameters
$userId : int
$originatorId : int

        
On this page

Search results