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

class onGroupsContentViewHidden extends cmsAction {

    public function 
run($data){

        
$viewable     $data['viewable'];
        
$item         $data['item'];
        
$is_moderator = !empty($data['is_moderator']);
        
$ctype        = !empty($data['ctype']) ? $data['ctype'] : array();

        if (!
$viewable) { return $data; }

        if (
$item['parent_type'] != 'group') { return $data; }

        if (
$item['is_parent_hidden'] || in_array($item['is_private'], array(345))){

            if (!
$this->cms_user->is_logged){ $data['viewable'] = false; return $data; }

            
$membership $this->model->getMembership($item['parent_id'], $this->cms_user->id);

            if(
$this->cms_user->is_admin || $is_moderator || $this->cms_user->id == $item['user_id']){
                return 
$data;
            }

            if (
$membership === false ||
                    (
$item['is_private'] == && !cmsUser::isAllowed($ctype['name'], 'add')) ||
                    (
$item['is_private'] == && !empty($item['allow_groups_roles']))){

                
$group $this->model->getGroup($item['parent_id']);

                if(
$group){

                    if(
$membership){
                        if(
$item['is_private'] == 5){

                            
$roles $this->model->getUserRoles($group['id'], $this->cms_user->id);

                            
$allow_groups_roles cmsModel::yamlToArray($item['allow_groups_roles']);

                            
$is_can_view $roles && $this->cms_user->isUserInGroups($roles$allow_groups_roles);

                            if(
$is_can_view){
                                return 
$data;
                            }

                            
$allow_roles_name = array();

                            foreach (
$group['roles'] as $role_id => $name) {
                                if(
in_array($role_id$allow_groups_roles)){
                                    
$allow_roles_name[] = $name;
                                }
                            }

                            
$data['access_text'] = sprintf(LANG_GROUPS_ROLES_ACCESS$group['title'], implode(', '$allow_roles_name));

                        } else {
                            
$data['access_text'] = LANG_ACCESS_DENIED;
                        }
                    } else {
                        
$data['access_text'] = sprintf(LANG_GROUPS_CTYPE_ACCESS'<a href="'.href_to('groups'$group['slug']).'">'.$group['title'].'</a>');
                    }

                    
$data['access_redirect_url'] = href_to('groups'$group['slug']);

                    
$data['viewable'] = false;

                    return 
$data;

                }

            }

        }

        return 
$data;

    }

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