/** * Determine if the given user has appropriate privileges to kick a user from a project * Checks if user is a admin for the project and the user to be kicked is not a admin or the project owner * * @param User $user * @param Project $project * @param ProjectMember $member * @return bool */ public function authToKick(User $user, Project $project, ProjectMember $member) { return $project->isUserAuthor($user) || $project->isProjectAdmin($user->id) && !$project->isProjectAdmin($member->user->id) && !$project->isUserAuthor($member->user); }