/** * Allows us to test if the user has access to the album * */ public function hasAccess($userId, $permissionType) { // @rule: For super admin, regardless of what permission, they should be able to access if (COwnerHelper::isCommunityAdmin()) { return true; } switch ($this->type) { case PHOTOS_PROFILE_TYPE: case PHOTOS_USER_TYPE: if ($permissionType == 'upload') { return $this->creator == $userId; } if ($permissionType == 'deletephotos') { return $this->creator == $userId; } break; case PHOTOS_GROUP_TYPE: $group = JTable::getInstance('Group', 'CTable'); $group->load($this->groupid); if ($permissionType == 'upload') { return CGroupHelper::allowManagePhoto($group->id); } if ($permissionType == 'deletephotos') { return $this->creator == $userId || $group->isAdmin($userId); } return false; break; case PHOTOS_EVENT_TYPE: $event = JTable::getInstance('Event', 'CTable'); $event->load($this->eventid); if ($permissionType == 'upload') { return CEventHelper::allowManagePhoto($event->id); } if ($permissionType == 'deletephotos') { return $this->creator == $userId || $event->isAdmin($userId); } return false; break; } }
public function setSubmenus() { //CFactory::load( 'helpers' , 'group' ); //CFactory::load( 'helpers' , 'owner' ); $jinput = JFactory::getApplication()->input; $task = $userid = $jinput->get('task', '', 'WORD'); //JRequest::getVar( 'task', '', 'GET' ); $albumId = $userid = $jinput->get('albumid', 0, 'INT'); //JRequest::getInt( 'albumid', 0 , 'REQUEST'); $eventid = $userid = $jinput->get('eventid', 0, 'INT'); //JRequest::getInt( 'eventid', '', 'REQUEST' ); if (!empty($albumId)) { $album = JTable::getInstance('Album', 'CTable'); $album->load($albumId); $eventid = $album->eventid; } $config = CFactory::getConfig(); $event = JTable::getInstance('Event', 'CTable'); $event->load($eventid); $my = CFactory::getUser(); $albumId = $albumId != 0 ? $albumId : ''; // Check if the current user is banned from this event $isBanned = false; $allowManagePhotos = CEventHelper::allowManagePhoto($this->eventid); if (($task == 'uploader' || $task == 'photo' || $task == 'album') && !empty($albumId)) { $this->view->addSubmenuItem('index.php?option=com_community&view=photos&eventid=' . $this->eventid . '&task=display&albumid=' . $albumId, JText::_('COM_COMMUNITY_PHOTOS_BACK_TO_ALBUM')); } if ($allowManagePhotos && $task != 'photo' && !$isBanned) { /* Event: Upload Photos */ if ($task != 'newalbum' && $task != 'editAlbum') { //$this->view->addSubmenuItem('javascript:void(0);', JText::_('COM_COMMUNITY_PHOTOS_UPLOAD_PHOTOS'), 'joms.notifications.showUploadPhoto(\'' . $albumId . '\',' . $this->eventid . '); return false;', true, '', ''); } if ($task == 'album' && ($my->id == $album->creator && $allowManagePhotos || $event->isAdmin($my->id) || COwnerHelper::isCommunityAdmin())) { if (!CAlbumsHelper::isFixedAlbum($album)) { $this->view->addSubmenuItem('javascript:', JText::_('COM_COMMUNITY_PHOTOS_ALBUM_DELETE'), "joms.api.albumRemove('" . $album->id . "', '" . $task . "');", true); $this->view->addSubmenuItem('index.php?option=com_community&view=photos&task=editAlbum&albumid=' . $album->id . '&eventid=' . $event->id . '&referrer=albumgrp', JText::_('COM_COMMUNITY_EDIT_ALBUM'), '', true); } //$this->view->addSubmenuItem('index.php?option=com_community&view=photos&task=group', JText::_('COM_COMMUNITY_PHOTOS_ALL_EVENT_PHOTOS'), '' , false , '' , 'joms-right'); //$this->view->addSubmenuItem('index.php?option=com_community&view=photos&task=event', JText::_('COM_COMMUNITY_PHOTOS_ALL_EVENT_PHOTOS'), '' , false , '' , 'joms-right'); //->view->addSubmenuItem('index.php?option=com_community&view=photos&task=display', JText::_('COM_COMMUNITY_PHOTOS_ALL_PHOTOS'), '' , false , '' , 'joms-right'); if ($my->id != 0) { //$this->view->addSubmenuItem('index.php?option=com_community&view=photos&task=myphotos&userid=' . $my->id, JText::_('COM_COMMUNITY_PHOTOS_MY_PHOTOS'), '' , false , '' , 'joms-right'); } } //$this->view->addSubmenuItem('index.php?option=com_community&view=photos&task=newalbum&eventid=' . $this->eventid, JText::_('COM_COMMUNITY_PHOTOS_CREATE_PHOTO_ALBUM'), '', true, '', ''); } if ($task == 'photo') { if ($album->hasAccess($my->id, 'deletephotos')) { $this->view->addSubmenuItem('', JText::_('COM_COMMUNITY_PHOTOS_DELETE'), "joms_delete_photo();", true); } if ($my->id == $album->creator) { $this->view->addSubmenuItem('', JText::_('COM_COMMUNITY_PHOTOS_SET_AVATAR'), "joms_set_as_profile_picture();", true); } if ($my->id == $album->creator && $allowManagePhotos || $event->isAdmin($my->id) || COwnerHelper::isCommunityAdmin()) { $this->view->addSubmenuItem('', JText::_('COM_COMMUNITY_PHOTOS_SET_AS_ALBUM_COVER'), "joms_set_as_album_cover();", true); } if (!$config->get('deleteoriginalphotos')) { $this->view->addSubmenuItem('', JText::_('COM_COMMUNITY_DOWNLOAD_IMAGE'), "joms_download_photo();", true); } if ($eventid != '' && $task == 'myphotos') { $this->view->addSubmenuItem('index.php?option=com_community&view=photos&task=newalbum&eventid=' . $eventid, JText::_('COM_COMMUNITY_PHOTOS_CREATE_PHOTO_ALBUM'), '', true); } elseif ($task == 'myphotos') { $this->view->addSubmenuItem('index.php?option=com_community&view=photos&task=newalbum&userid=' . $my->id, JText::_('COM_COMMUNITY_PHOTOS_CREATE_PHOTO_ALBUM'), '', true); } } if ($task == "display" && $task == 'myphotos') { $this->view->addSubmenuItem('index.php?option=com_community&view=photos&task=newalbum&eventid=' . $eventid, JText::_('COM_COMMUNITY_PHOTOS_CREATE_PHOTO_ALBUM'), '', true); } //$this->view->addSubmenuItem('index.php?option=com_community&view=groups&task=viewgroup&eventid=' . $this->eventid, JText::_('COM_COMMUNITY_EVENTS_BACK_TO_EVENT')); }
public function isAllowedAlbumCreation() { $allowManagePhotos = CEventHelper::allowManagePhoto($this->eventid); return $allowManagePhotos; }