Example #1
0
 function getUserName($userid)
 {
     global $database;
     switch ($userid) {
         case _DM_PERMIT_EDITOR:
             return _DML_GROUP_EDITOR;
             break;
         case _DM_PERMIT_AUTHOR:
             return _DML_GROUP_AUTHOR;
             break;
         case _DM_PERMIT_PUBLISHER:
             return _DML_GROUP_PUBLISHER;
             break;
         case _DM_PERMIT_EVERYBODY:
             return _DML_EVERYBODY;
             break;
         case _DM_PERMIT_REGISTERED:
             return _DML_ALL_REGISTERED;
             break;
         case _DM_PERMIT_CREATOR:
             return _DML_CREATOR;
             break;
         default:
             if ($userid > '0') {
                 $user =& DOCMAN_users::get($userid);
                 return $user->username;
             }
             if ($userid < '-5') {
                 $calcgroups = abs($userid) - 10;
                 $group =& DOCMAN_groups::get($calcgroups);
                 return $group->groups_name;
             }
             break;
     }
     return '*' . _DML_UNKNOWN . '*';
 }
Example #2
0
 function addUsers()
 {
     global $_DOCMAN;
     // only add users if 'Allow individual user permissions' is set to ON
     if (!$_DOCMAN->getCfg('individual_perm', 1)) {
         return;
     }
     $this->addLabel(_DML_USERS, _DM_PERMIT_NOOWNER);
     $users =& DOCMAN_users::getList();
     foreach ($users as $user) {
         $this->addOption($user->username . "(" . $user->name . ")", $user->id);
     }
 }
function fetchEditDocumentForm($uid, $filename = null, $catid = 0)
{
    global $_DOCMAN, $_DMUSER;
    $database = JFactory::getDBO();
    $doc = new mosDMDocument($database);
    if ($uid) {
        $doc->load($uid);
        //Load the document
        //check user permissions
        $err = $_DMUSER->canPreformTask($doc, 'Edit');
        if ($err) {
            _returnTo('cat_view', $err, $doc->catid);
        }
    } else {
        $doc->init_record();
        //Initialise a document
        //check user permissions
        $err = $_DMUSER->canPreformTask($doc, 'Upload');
        if ($err) {
            _returnTo('cat_view', $err, $doc->catid);
        }
    }
    //checkout the document
    $doc->checkout($_DMUSER->userid);
    // Set document filename
    if (!is_null($filename)) {
        $filename = DOCMAN_Utils::safeDecodeURL($filename);
        $doc->dmfilename = $filename;
    }
    // Set document url
    $prefix = substr($doc->dmfilename, 0, _DM_DOCUMENT_LINK_LNG);
    if (strcasecmp($prefix, _DM_DOCUMENT_LINK) == 0) {
        $doc->dmlink = substr($doc->dmfilename, _DM_DOCUMENT_LINK_LNG);
        $doc->dmfilename = _DM_DOCUMENT_LINK;
    }
    $lists = array();
    // Set filename
    $lists['dmfilename'] = filesSelectList($doc, 'class="inputbox" size="1" disabled="disabled"');
    // Built category select list
    $options = array(JHTML::_('select.option', '0', _DML_SELECT_CAT));
    if ($uid) {
        $lists['catid'] = dmHTML::categoryList($doc->catid, "", $options);
    } else {
        $lists['catid'] = dmHTML::categoryList($catid, "", $options);
    }
    // Build select lists
    $lists['approved'] = JHTML::_('select.booleanlist', 'approved', 'class="inputbox"', $doc->approved, _DML_YES, _DML_NO);
    $lists['published'] = JHTML::_('select.booleanlist', 'published', 'class="inputbox"', $doc->published, _DML_YES, _DML_NO);
    $lists['viewer'] = dmHTML::viewerList($doc, 'dmowner');
    $lists['maintainer'] = dmHTML::maintainerList($doc, 'dmmantainedby');
    $lists['licenses'] = licenseSelectList($doc);
    $lists['licenses_display'] = licenseDisplayList($doc);
    // Built image list
    $lists['dmthumbnail'] = dmHTML::imageList('dmthumbnail', $doc->dmthumbnail);
    $lists['dmthumbnail_preview'] = $doc->dmthumbnail;
    // Find lastupdate user
    $last = array();
    if ($doc->dmlastupdateby > _DM_PERMIT_USER) {
        $last[0] = DOCMAN_users::get($doc->dmlastupdateby);
        // the array is for BC 1.5.2, could be refactored in 1.6
    } else {
        $last[0]->name = "Super Administrator";
    }
    // Find createdby user
    $created = array();
    if ($doc->dmsubmitedby > _DM_PERMIT_USER) {
        $created[0] = DOCMAN_users::get($doc->dmsubmitedby);
        // the array is for BC 1.5.2, could be refactored in 1.6
    } else {
        $created[0]->name = "Super Administrator";
    }
    // update 'dmlastupdateon'
    $doc->dmlastupdateon = date("Y-m-d H:i:s");
    // Params definitions
    $params = null;
    $params_path = JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_docman' . DS . 'docman.params.xml';
    if (file_exists($params_path)) {
        $params = new dmParameters($doc->attribs, $params_path, 'params');
    }
    /* ------------------------------ *
     *   MAMBOT - Setup All Mambots   *
     * ------------------------------ */
    $prebot = new DOCMAN_mambot('onBeforeEditDocument');
    $prebot->setParm('document', $doc);
    $prebot->setParm('filename', $filename);
    $prebot->setParm('user', $_DMUSER);
    if (!$uid) {
        $prebot->copyParm('process', 'new document');
    } else {
        $prebot->copyParm('process', 'edit document');
    }
    $prebot->trigger();
    if ($prebot->getError()) {
        _returnTo('cat_view', $prebot->getErrorMsg());
    }
    return HTML_DMDocuments::editDocumentForm($doc, $lists, $last, $created, $params);
}
 function _formatUserName($userid)
 {
     global $_DOCMAN;
     $database = JFactory::getDBO();
     require_once $_DOCMAN->getPath('classes', 'user');
     require_once $_DOCMAN->getPath('classes', 'groups');
     switch ($userid) {
         case '-1':
             return _DML_EVERYBODY;
             break;
         case '0':
             return _DML_ALL_REGISTERED;
             break;
         case _DM_PERMIT_PUBLISHER:
             return _DML_GROUP_PUBLISHER;
             break;
         case _DM_PERMIT_EDITOR:
             return _DML_GROUP_EDITOR;
             break;
         case _DM_PERMIT_AUTHOR:
             return _DML_GROUP_AUTHOR;
             break;
         default:
             if ($userid > 0) {
                 $user = DOCMAN_users::get($userid);
                 return $user->username;
             }
             if ($userid < -5) {
                 $calcgroups = abs($userid) - 10;
                 $user = DOCMAN_groups::get($calcgroups);
                 return $user->groups_name;
             }
             break;
     }
     return "USER ID?";
 }
function editDocument($uid)
{
    require_once JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_docman' . DS . 'classes' . DS . 'DOCMAN_utils.class.php';
    require_once JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_docman' . DS . 'classes' . DS . 'DOCMAN_params.class.php';
    global $_DOCMAN, $_DMUSER;
    $database = JFactory::getDBO();
    $my = JFactory::getUser();
    $mainframe = JFactory::getApplication();
    // disable the main menu to force user to use buttons
    $_REQUEST['hidemainmenu'] = 1;
    $uploaded_file = JRequest::getString('uploaded_file', '');
    $doc = new mosDMDocument($database);
    if ($uid) {
        $doc->load($uid);
        if ($doc->checked_out) {
            if ($doc->checked_out != $my->id) {
                $mainframe->redirect("index.php?option={$option}", _DML_THE_MODULE . " {$row->title} " . _DML_IS_BEING);
            }
        } else {
            // check out document...
            $doc->checkout($my->id);
        }
    } else {
        $doc->init_record();
    }
    // Begin building interface information...
    $lists = array();
    $lists['document_url'] = '';
    //make sure
    $lists['original_dmfilename'] = $doc->dmfilename;
    if (strcasecmp(substr($doc->dmfilename, 0, _DM_DOCUMENT_LINK_LNG), _DM_DOCUMENT_LINK) == 0) {
        $lists['document_url'] = substr($doc->dmfilename, _DM_DOCUMENT_LINK_LNG);
        $doc->dmfilename = _DM_DOCUMENT_LINK;
    }
    // category select list
    $options = array(JHTML::_('select.option', '0', _DML_SELECT_CAT));
    $lists['catid'] = dmHTML::categoryList($doc->catid, "", $options);
    // check if we have at least one category defined
    $database->setQuery("SELECT id " . "\n FROM #__categories " . "\n WHERE section='com_docman'", 0, 1);
    if (!($checkcats = $database->loadObjectList())) {
        $mainframe->redirect("index.php?option=com_docman&section=categories", _DML_PLEASE_SEL_CAT);
    }
    // select lists
    $lists['approved'] = JHTML::_('select.booleanlist', 'approved', 'class="inputbox"', $doc->approved);
    $lists['published'] = JHTML::_('select.booleanlist', 'published', 'class="inputbox"', $doc->published);
    // licenses list
    $database->setQuery("SELECT id, name " . "\n FROM #__docman_licenses " . "\n ORDER BY name ASC");
    $licensesTemp = $database->loadObjectList();
    $licenses[] = JHTML::_('select.option', '0', _DML_NO_LICENSE);
    foreach ($licensesTemp as $licensesTemp) {
        $licenses[] = JHTML::_('select.option', $licensesTemp->id, $licensesTemp->name);
    }
    $lists['licenses'] = JHTML::_('select.genericlist', $licenses, 'dmlicense_id', 'class="inputbox" size="1"', 'value', 'text', $doc->dmlicense_id);
    // licenses display list
    $licenses_display[] = JHTML::_('select.option', '0', _DML_NO);
    $licenses_display[] = JHTML::_('select.option', '1', _DML_YES);
    $lists['licenses_display'] = JHTML::_('select.genericlist', $licenses_display, 'dmlicense_display', 'class="inputbox" size="1"', 'value', 'text', $doc->dmlicense_display);
    if ($uploaded_file == '') {
        // Create docs List
        $dm_path = $_DOCMAN->getCfg('dmpath');
        $fname_reject = $_DOCMAN->getCfg('fname_reject');
        $docFiles = DOCMAN_Compat::mosReadDirectory($dm_path);
        $docs = array(JHTML::_('select.option', '', _DML_SELECT_FILE));
        $docs[] = JHTML::_('select.option', _DM_DOCUMENT_LINK, _DML_LINKED);
        if (count($docFiles)) {
            foreach ($docFiles as $file) {
                if (substr($file, 0, 1) == '.') {
                    continue;
                }
                //ignore files starting with .
                if (@is_dir($dm_path . '/' . $file)) {
                    continue;
                }
                //ignore directories
                if ($fname_reject && preg_match("/^(" . $fname_reject . ")\$/i", $file)) {
                    continue;
                }
                //ignore certain filenames
                if (preg_match("/^(" . _DM_FNAME_REJECT . ")\$/i", $file)) {
                    continue;
                }
                //ignore certain filenames
                $docs[] = JHTML::_('select.option', htmlspecialchars($file));
            }
        }
        if (!count($docs)) {
            $mainframe->redirect("index.php?option={$option}&task=upload", _DML_YOU_MUST_UPLOAD);
        }
        $lists['dmfilename'] = JHTML::_('select.genericlist', $docs, 'dmfilename', 'class="inputbox" size="1"', 'value', 'text', htmlspecialchars($doc->dmfilename));
    } else {
        $filename = preg_split("/\\./", $uploaded_file);
        $row->dmname = $filename[0];
        $docs = array(JHTML::_('select.option', htmlspecialchars($uploaded_file)));
        $lists['dmfilename'] = JHTML::_('select.genericlist', $docs, 'dmfilename', 'class="inputbox" size="1"', 'value', 'text', htmlspecialchars($doc->dmfilename));
    }
    // endif uploaded_file
    // permissions lists
    $lists['viewer'] = dmHTML::viewerList($doc, 'dmowner');
    $lists['maintainer'] = dmHTML::maintainerList($doc, 'dmmantainedby');
    // updater user information
    $last = array();
    if ($doc->dmlastupdateby > 0 && $doc->dmlastupdateby != $my->id) {
        $last[0] = DOCMAN_users::get($doc->dmlastupdateby);
        // the array is for BC 1.5.2, could be refactored in 1.6
    } else {
        $last[0]->name = $my->name ? $my->name : $my->username;
        // "Super Administrator"
    }
    // creator user information
    $created = array();
    if ($doc->dmsubmitedby > 0 && $doc->dmsubmitedby != $my->id) {
        $created[0] = DOCMAN_users::get($doc->dmsubmitedby);
        // the array is for BC 1.5.2, could be refactored in 1.6
    } else {
        $created[0]->name = $my->name ? $my->name : $my->username;
        // "Super Administrator"
    }
    // Imagelist
    $lists['image'] = dmHTML::imageList('dmthumbnail', $doc->dmthumbnail);
    // Params definitions
    $params_path = JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_docman' . DS . 'docman.params.xml';
    if (file_exists($params_path)) {
        $params = new dmParameters($doc->attribs, $params_path, 'params');
    }
    // plugins
    $prebot = new DOCMAN_mambot('onBeforeEditDocument');
    $prebot->setParm('document', $doc);
    $prebot->setParm('filename', $filename);
    $prebot->setParm('user', $_DMUSER);
    if (!$uid) {
        $prebot->copyParm('process', 'new document');
    } else {
        $prebot->copyParm('process', 'edit document');
    }
    $prebot->trigger();
    if ($prebot->getError()) {
        $mainframe->redirect("index.php?option=com_docman&section=documents", $prebot->getErrorMsg());
    }
    HTML_DMDocuments::editDocument($doc, $lists, $last, $created, $params);
}