/**
  * Constructor
  *
  * @param Request $request
  * @return FilesController
  */
 function __construct($request)
 {
     parent::__construct($request);
     if ($this->logged_user->getProjectPermission('file', $this->active_project) < PROJECT_PERMISSION_ACCESS) {
         $this->httpError(HTTP_ERR_FORBIDDEN);
     }
     // if
     $files_url = files_module_url($this->active_project);
     $attachments_url = files_module_url($this->active_project, array('show_attachments' => true));
     $this->wireframe->addBreadCrumb(lang('Files'), $files_url);
     $upload_url = false;
     if (File::canAdd($this->logged_user, $this->active_project)) {
         if ($this->active_category->isLoaded()) {
             $upload_url = files_module_upload_url($this->active_project, array('category_id' => $this->active_category->getId()));
         } else {
             $upload_url = files_module_upload_url($this->active_project);
         }
         // if
         $this->wireframe->addPageAction(lang('Upload Files'), $upload_url);
     }
     // if
     $file_id = $this->request->getId('file_id');
     if ($file_id) {
         $this->active_file = ProjectObjects::findById($file_id);
     }
     // if
     if (instance_of($this->active_file, 'File')) {
         $this->wireframe->addBreadCrumb($this->active_file->getName(), $this->active_file->getViewUrl());
     } else {
         $this->active_file = new File();
     }
     // if
     $this->smarty->assign(array('active_file' => $this->active_file, 'files_url' => $files_url, 'attachments_url' => $attachments_url, 'upload_url' => $upload_url, 'page_tab' => 'files'));
 }
/**
 * Handle on_milestone_add_links event
 *
 * @param Milestone $milestone
 * @param User $user
 * @param array $links
 * @return null
 */
function files_handle_on_milestone_add_links($milestone, $user, &$links)
{
    if ($user->getProjectPermission('file', $milestone->getProject()) >= PROJECT_PERMISSION_CREATE) {
        $links[lang('File')] = files_module_upload_url($milestone->getProject(), array('milestone_id' => $milestone->getId()));
    }
    // if
}