* @copyright Copyright (C) 2002-2005 Markus Westphal, * 2006-2008 Malcolm Cowe, 2010 Matteo Lucarelli, * 2010-2012 Uwe Steinmann * @version Release: @package_version@ */ /** * Include parent class */ require_once("class.Bootstrap.php"); /** * Class which outputs the html page for UsrMgr view * * @category DMS * @package SeedDMS * @author Markus Westphal, Malcolm Cowe, Uwe Steinmann * @copyright Copyright (C) 2002-2005 Markus Westphal, * 2006-2008 Malcolm Cowe, 2010 Matteo Lucarelli, * 2010-2012 Uwe Steinmann * @version Release: @package_version@ */ class SeedDMS_View_UsrMgr extends SeedDMS_Bootstrap_Style { function js() { /* {{{ */ $seluser = $this->params['seluser']; $strictformcheck = $this->params['strictformcheck']; header('Content-Type: application/javascript'); ?> function checkForm() { msg = new Array(); if($("#login").val() == "") msg.push(""); if(($("#userid").val() == "0") && ($("#pwd").val() == "")) msg.push(""); if(($("#pwd").val() != $("#pwdconf").val())&&($("#pwd").val() != "")&&($("#pwdconf").val() != "")) msg.push(""); if($("#name").val() == "") msg.push(""); if($("#email").val() == "") msg.push(""); if($("#comment").val() == "") msg.push(""); if (msg != "") { noty({ text: msg.join('
'), type: 'error', dismissQueue: true, layout: 'topRight', theme: 'defaultTheme', _timeout: 1500, }); return false; } else return true; } $(document).ready( function() { $('body').on('submit', '#form', function(ev){ if(checkForm()) return; ev.preventDefault(); }); $( "#selector" ).change(function() { $('div.ajax').trigger('update', {userid: $(this).val()}); }); }); printFileChooserJs(); } /* }}} */ function info() { /* {{{ */ $dms = $this->params['dms']; $user = $this->params['user']; $seluser = $this->params['seluser']; $quota = $this->params['quota']; $workflowmode = $this->params['workflowmode']; if($seluser) { $sessionmgr = new SeedDMS_SessionMgr($dms->getDB()); $this->contentHeading(getMLText("user_info")); echo "\n"; echo "\n"; $documents = $seluser->getDocuments(); echo "\n"; $documents = $seluser->getDocumentsLocked(); echo "\n"; $categories = $seluser->getKeywordCategories(); echo "\n"; $dnot = $seluser->getNotifications(T_DOCUMENT); echo "\n"; $fnot = $seluser->getNotifications(T_FOLDER); echo "\n"; if($workflowmode == "traditional") { $resArr = $dms->getDocumentList('ReviewByMe', $seluser); if($resArr) { foreach ($resArr as $res) { $document = $dms->getDocument($res["id"]); if($document->getAccessMode($user) >= M_READ && $document->getLatestContent()) { $tasks['review'][] = array('id'=>$res['id'], 'name'=>$res['name']); } } echo "\n"; } } if($workflowmode == "traditional" || $workflowmode == 'traditional_only_approval') { $resArr = $dms->getDocumentList('ApproveByMe', $seluser); if($resArr) { foreach ($resArr as $res) { $document = $dms->getDocument($res["id"]); if($document->getAccessMode($user) >= M_READ && $document->getLatestContent()) { $tasks['approval'][] = array('id'=>$res['id'], 'name'=>$res['name']); } } echo "\n"; } $resArr = $seluser->isMandatoryReviewerOf(); if($resArr) { echo "\n"; } $resArr = $seluser->isMandatoryApproverOf(); if($resArr) { echo "\n"; } } if($workflowmode == 'advanced') { $workflows = $seluser->getWorkflowsInvolved(); echo "\n"; $workflowStatus = $seluser->getWorkflowStatus(); if($workflowStatus['u']) echo "\n"; } $sessions = $sessionmgr->getUserSessions($seluser); if($sessions) { $session = array_shift($sessions); echo "\n"; } echo "
".getMLText('discspace').""; if($quota) { $qt = $seluser->getQuota() ? $seluser->getQuota() : $quota; echo SeedDMS_Core_File::format_filesize($seluser->getUsedDiskSpace())." / ".SeedDMS_Core_File::format_filesize($qt)."
"; echo $this->getProgressBar($seluser->getUsedDiskSpace(), $qt); } else { echo SeedDMS_Core_File::format_filesize($seluser->getUsedDiskSpace())."
"; } echo "
".getMLText('documents')."".count($documents)."
".getMLText('documents_locked')."".count($documents)."
".getMLText('personal_default_keywords')."".count($categories)."
".getMLText('documents_with_notification')."".count($dnot)."
".getMLText('folders_with_notification')."".count($fnot)."
".getMLText('pending_reviews')."".count($tasks['review'])."
".getMLText('pending_approvals')."".count($tasks['approval'])."
".getMLText('mandatory_reviewers')."".count($resArr)."
".getMLText('mandatory_approvers')."".count($resArr)."
".getMLText('workflows_involded')."".count($workflows)."
".getMLText('pending_workflows')."".count($workflowStatus['u'])."
".getMLText('lastaccess')."".getLongReadableDate($session->getLastAccess())."
"; } } /* }}} */ function actionmenu() { /* {{{ */ $dms = $this->params['dms']; $user = $this->params['user']; $seluser = $this->params['seluser']; $quota = $this->params['quota']; $undeluserids = $this->params['undeluserids']; $enableemail = $this->params['enableemail']; if($seluser) { ?>
params['seluser']; $this->showUserForm($seluser); } /* }}} */ function showUserForm($currUser) { /* {{{ */ $dms = $this->params['dms']; $user = $this->params['user']; $users = $this->params['allusers']; $groups = $this->params['allgroups']; $passwordstrength = $this->params['passwordstrength']; $passwordexpiration = $this->params['passwordexpiration']; $httproot = $this->params['httproot']; $enableuserimage = $this->params['enableuserimage']; $undeluserids = $this->params['undeluserids']; $workflowmode = $this->params['workflowmode']; $quota = $this->params['quota']; ?>
formField( getMLText("user_login"), array( 'element'=>'input', 'type'=>'text', 'id'=>'login', 'name'=>'login', 'value'=>($currUser ? htmlspecialchars($currUser->getLogin()) : '') ) ); $this->formField( getMLText("password"), ''.(($currUser && $currUser->isGuest()) ? ' '.getMLText('clear_password') : '') ); if($passwordstrength > 0) { $this->formField( getMLText("password_strength"), '
' ); } $this->formField( getMLText("confirm_pwd"), array( 'element'=>'input', 'type'=>'password', 'id'=>'pwdconf', 'name'=>'pwdconf', ) ); if($passwordexpiration > 0) { $options = array(); if($currUser) $options[] = array('', getMLText("keep")); $options[] = array('now', getMLText('now')); $options[] = array(date('Y-m-d H:i:s', time()+$passwordexpiration*86400), getMLText("according_settings")); $options[] = array('never', getMLText("never")); $this->formField( getMLText("password_expiration"), array( 'element'=>'select', 'name'=>'pwdexpiration', 'options'=>$options ) ); } $this->formField( getMLText("user_name"), array( 'element'=>'input', 'type'=>'text', 'id'=>'name', 'name'=>'name', 'value'=>($currUser ? htmlspecialchars($currUser->getFullName()) : '') ) ); $this->formField( getMLText("email"), array( 'element'=>'input', 'type'=>'text', 'id'=>'email', 'name'=>'email', 'value'=>($currUser ? htmlspecialchars($currUser->getEmail()) : '') ) ); $this->formField( getMLText("comment"), array( 'element'=>'textarea', 'name'=>'comment', 'id'=>'comment', 'rows'=>4, 'cols'=>50, 'value'=>($currUser ? htmlspecialchars($currUser->getComment()) : '') ) ); $options = array(); $options[] = array(SeedDMS_Core_User::role_user, getMLText('role_user')); $options[] = array(SeedDMS_Core_User::role_admin, getMLText('role_admin'), $currUser && $currUser->getRole() == SeedDMS_Core_User::role_admin); $options[] = array(SeedDMS_Core_User::role_guest, getMLText('role_guest'), $currUser && $currUser->getRole() == SeedDMS_Core_User::role_guest); $this->formField( getMLText("role"), array( 'element'=>'select', 'name'=>'role', 'options'=>$options ) ); $options = array(); foreach($groups as $group) { $options[] = array($group->getID(), $group->getName(), ($currUser && $group->isMember($currUser))); } $this->formField( getMLText("groups"), array( 'element'=>'select', 'name'=>'groups[]', 'class'=>'chzn-select', 'multiple'=>true, 'attributes'=>array(array('data-placeholder', getMLText('select_groups'))), 'options'=>$options ) ); $this->formField(getMLText("home_folder"), $this->getFolderChooserHtml("form".($currUser ? $currUser->getId() : '0'), M_READ, -1, $currUser ? $dms->getFolder($currUser->getHomeFolder()) : 0, 'homefolder')); echo ''; $this->formField( getMLText("quota"), array( 'element'=>'input', 'type'=>'text', 'id'=>'quota', 'name'=>'quota', 'value'=>($currUser ? $currUser->getQuota() : '') ) ); if($quota > 0) $this->warningMsg(getMLText('current_quota', array('quota'=>SeedDMS_Core_File::format_filesize($quota)))); else $this->warningMsg(getMLText('quota_is_disabled')); $this->formField( getMLText("is_hidden"), array( 'element'=>'input', 'type'=>'checkbox', 'name'=>'ishidden', 'value'=>1, 'checked'=>$currUser && $currUser->isHidden() ) ); $this->formField( getMLText("is_disabled"), array( 'element'=>'input', 'type'=>'checkbox', 'name'=>'isdisabled', 'value'=>1, 'checked'=>$currUser && $currUser->isDisabled() ) ); if ($enableuserimage) { if ($currUser) { $this->formField( getMLText("user_image"), ($currUser->hasImage() ? "getId()."\">" : getMLText('no_user_image')) ); $this->formField( getMLText("new_user_image"), $this->getFileChooserHtml('userfile', false, "image/jpeg") ); } else { $this->formField( getMLText("user_image"), $this->getFileChooserHtml('userfile', false, "image/jpeg") ); } } if($workflowmode == "traditional" || $workflowmode == 'traditional_only_approval') { if($workflowmode == "traditional") { $this->contentSubHeading(getMLText("mandatory_reviewers")); $options = array(); if($currUser) $res=$currUser->getMandatoryReviewers(); else $res = array(); foreach ($users as $usr) { if ($usr->isGuest() || ($currUser && $usr->getID() == $currUser->getID())) continue; $checked=false; foreach ($res as $r) if ($r['reviewerUserID']==$usr->getID()) $checked=true; $options[] = array($usr->getID(), htmlspecialchars($usr->getLogin()." - ".$usr->getFullName()), $checked); } $this->formField( getMLText("individuals"), array( 'element'=>'select', 'name'=>'usrReviewers[]', 'class'=>'chzn-select', 'attributes'=>array(array('data-placeholder', getMLText('select_users'))), 'multiple'=>true, 'options'=>$options ) ); $options = array(); foreach ($groups as $grp) { $checked=false; foreach ($res as $r) if ($r['reviewerGroupID']==$grp->getID()) $checked=true; $options[] = array($grp->getID(), htmlspecialchars($grp->getName()), $checked); } $this->formField( getMLText("groups"), array( 'element'=>'select', 'name'=>'grpReviewers[]', 'class'=>'chzn-select', 'attributes'=>array(array('data-placeholder', getMLText('select_groups'))), 'multiple'=>true, 'options'=>$options ) ); } $this->contentSubHeading(getMLText("mandatory_approvers")); $options = array(); if($currUser) $res=$currUser->getMandatoryApprovers(); else $res = array(); foreach ($users as $usr) { if ($usr->isGuest() || ($currUser && $usr->getID() == $currUser->getID())) continue; $checked=false; foreach ($res as $r) if ($r['approverUserID']==$usr->getID()) $checked=true; $options[] = array($usr->getID(), htmlspecialchars($usr->getLogin()." - ".$usr->getFullName()), $checked); } $this->formField( getMLText("individuals"), array( 'element'=>'select', 'name'=>'usrApprovers[]', 'class'=>'chzn-select', 'attributes'=>array(array('data-placeholder', getMLText('select_users'))), 'multiple'=>true, 'options'=>$options ) ); $options = array(); foreach ($groups as $grp) { $checked=false; foreach ($res as $r) if ($r['approverGroupID']==$grp->getID()) $checked=true; $options[] = array($grp->getID(), htmlspecialchars($grp->getName()), $checked); } $this->formField( getMLText("groups"), array( 'element'=>'select', 'name'=>'grpApprovers[]', 'class'=>'chzn-select', 'attributes'=>array(array('data-placeholder', getMLText('select_groups'))), 'multiple'=>true, 'options'=>$options ) ); } else { $workflows = $dms->getAllWorkflows(); if($workflows) { $this->contentSubHeading(getMLText("workflow")); $options = array(); $mandatoryworkflows = $currUser ? $currUser->getMandatoryWorkflows() : array(); foreach ($workflows as $workflow) { $checked = false; if($mandatoryworkflows) foreach($mandatoryworkflows as $mw) if($mw->getID() == $workflow->getID()) $checked = true; $options[] = array($workflow->getID(), htmlspecialchars($workflow->getName()), $checked); } $this->formField( getMLText("workflow"), array( 'element'=>'select', 'name'=>'workflows[]', 'class'=>'chzn-select', 'attributes'=>array(array('data-placeholder', getMLText('select_workflow'))), 'multiple'=>true, 'options'=>$options ) ); } } $this->formSubmit(" ".getMLText($currUser ? "save" : "add_user")); ?>
params['dms']; $user = $this->params['user']; $seluser = $this->params['seluser']; $users = $this->params['allusers']; $groups = $this->params['allgroups']; $passwordstrength = $this->params['passwordstrength']; $passwordexpiration = $this->params['passwordexpiration']; $httproot = $this->params['httproot']; $enableuserimage = $this->params['enableuserimage']; $undeluserids = $this->params['undeluserids']; $workflowmode = $this->params['workflowmode']; $quota = $this->params['quota']; $this->htmlStartPage(getMLText("admin_tools")); $this->globalNavigation(); $this->contentStart(); $this->pageNavigation(getMLText("admin_tools"), "admin_tools"); $this->contentHeading(getMLText("user_management")); ?>
getID(), htmlspecialchars($currUser->getLogin()), $seluser && $currUser->getID()==$seluser->getID(), array(array('data-subtitle', htmlspecialchars($currUser->getFullName())))); } $this->formField( null, //getMLText("selection"), array( 'element'=>'select', 'id'=>'selector', 'class'=>'chzn-select', 'options'=>$options ) ); ?>
getID()."\"" : "") ?>>
getID()."\"" : "") ?>>
contentContainerStart(); ?>
getID()."\"" : "") ?>>
contentContainerEnd(); ?>
contentEnd(); $this->htmlEndPage(); } /* }}} */ } ?>