Вход Регистрация
Файл: system/controllers/groups/actions/accept_request.php
Строк: 53
<?php

class actionGroupsAcceptRequest extends cmsAction {

    public function 
run($group_id$invited_id){

        
$group $this->model->getGroup($group_id);
        if (!
$group) { return $this->successRequest(false); }

        
$group['access'] = $this->getGroupAccess($group);

        if (
$group['access']['member_role'] != groups::ROLE_STAFF && !$this->cms_user->is_admin){
            return 
$this->successRequest(false);
        }

        
$send_request $this->model->getInviteRequest($group['id'], $invited_id);
        if(!
$send_request){ return $this->successRequest(false); }

        
$this->model->filterEqual('user_id'$invited_id)->filterIsNull('invited_id');
        
$this->model->deleteFiltered('groups_invites');

        
$this->model->addMembership($group['id'], $invited_id);

        
// роли по умолчанию
        
if(!empty($group['join_roles'])){
            
$this->model->setUserRoles($group['id'], $group['join_roles'], $invited_id);
        }

        
cmsCore::getController('activity')->addEntry($this->name'join', array(
            
'subject_title' => $group['title'],
            
'subject_id'    => $group['id'],
            
'subject_url'   => href_to_rel($this->name$group['slug']),
            
'group_id'      => $group['id'],
            
'user_id'       => $invited_id
        
));

        
$messenger cmsCore::getController('messages');

        
$messenger->addRecipient($invited_id);

        
$group_link '<a href="'.href_to('groups'$group['id']).'">'.$group['title'].'</a>';

        
$notice = array(
            
'content' => sprintf(LANG_GROUPS_REQUEST_NOTICE_ACCEPT$group_link),
            
'options' => array(
                
'is_closeable' => true
            
)
        );

        
$messenger->sendNoticePM($notice'groups_invite');

        return 
$this->successRequest(true);

    }

    private function 
successRequest($success) {

        if (
$this->request->isInternal()){ return $success; }

        if(
$success){

            return 
$this->cms_template->renderJSON(array(
                
'error' => false
            
));

        } else {

            
cmsCore::error404();

        }

    }

}
Онлайн: 1
Реклама