diff --git a/agents/meshinstall-linux.sh b/agents/meshinstall-linux.sh index d18f0797..2b256187 100644 --- a/agents/meshinstall-linux.sh +++ b/agents/meshinstall-linux.sh @@ -152,7 +152,7 @@ DownloadAgent() { then # upstart echo -e "start on runlevel [2345]\nstop on runlevel [016]\n\nrespawn\n\nchdir /usr/local/mesh\nexec /usr/local/mesh/meshagent\n\n" > /etc/init/meshagent.conf - service meshagent start + initctl start meshagent echo 'meshagent installed as upstart/init.d service.' echo 'To start service: sudo initctl start meshagent' echo 'To stop service: sudo initctl stop meshagent' @@ -193,7 +193,7 @@ UninstallAgent() { rm -f /sbin/meshcmd /etc/init.d/meshagent elif [ $starttype -eq 2 ]; then # upstart - service meshagent stop + initctl stop meshagent rm -f /sbin/meshcmd rm -f /etc/init/meshagent.conf rm -f /etc/rc2.d/S20mesh /etc/rc3.d/S20mesh /etc/rc5.d/S20mesh diff --git a/meshuser.js b/meshuser.js index d434ba8c..df7baea0 100644 --- a/meshuser.js +++ b/meshuser.js @@ -19,6 +19,24 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use const path = require('path'); const common = parent.common; + // Mesh Rights + const MESHRIGHT_EDITMESH = 1; + const MESHRIGHT_MANAGEUSERS = 2; + const MESHRIGHT_MANAGECOMPUTERS = 4; + const MESHRIGHT_REMOTECONTROL = 8; + const MESHRIGHT_AGENTCONSOLE = 16; + const MESHRIGHT_SERVERFILES = 32; + const MESHRIGHT_WAKEDEVICE = 64; + const MESHRIGHT_SETNOTES = 128; + + // Site rights + const SITERIGHT_SERVERBACKUP = 1; + const SITERIGHT_MANAGEUSERS = 2; + const SITERIGHT_SERVERRESTORE = 4; + const SITERIGHT_FILEACCESS = 8; + const SITERIGHT_SERVERUPDATE = 16; + const SITERIGHT_LOCKED = 32; + var obj = {}; obj.user = user; obj.domain = domain; @@ -1696,7 +1714,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use db.Get(command.nodeid, function (err, nodes) { // TODO: Make a NodeRights(user) method that also does not do a db call if agent is connected (???) if (nodes.length == 1) { meshlinks = user.links[nodes[0].meshid]; - if ((meshlinks) && (meshlinks.rights) && (meshlinks.rights & parent.MESHRIGHT_REMOTECONTROL != 0)) { + if ((meshlinks) && (meshlinks.rights) && ((meshlinks.rights & MESHRIGHT_REMOTECONTROL) != 0)) { // Add a user authentication cookie to a url var cookieContent = { userid: user._id, domainid: user.domain }; if (command.nodeid) { cookieContent.nodeid = command.nodeid; } diff --git a/package.json b/package.json index 95fe0a6e..b9efe18b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "meshcentral", - "version": "0.3.1-x", + "version": "0.3.1-z", "keywords": [ "Remote Management", "Intel AMT", diff --git a/public/styles/style.css b/public/styles/style.css index 2c621ffc..b0c0183f 100644 --- a/public/styles/style.css +++ b/public/styles/style.css @@ -30,6 +30,15 @@ border-left: 0px none #b7b7b7; } + .fulldesk #container { + width: 100%; + min-width: 700px; + min-height: 0px; + border-right: 0px none #b7b7b7; + border-left: 0px none #b7b7b7; + position: unset; + } + #masthead { width: auto; margin: 0; @@ -50,6 +59,16 @@ width: 100%; } + .fulldesk #masthead { + display: none; + } + .fulldesk #mastheadx { + display: none; + } + .fulldesk #p11deviceNameHeader { + display: none; + } + #masthead .title { float: left; height: 66px; @@ -85,6 +104,13 @@ .arg_hide #page_content { left: 0px; } + .fulldesk #page_content { + position: static; + top: 0; + left: 0; + right: 0; + bottom: 0; + } #page_leftbar { height: calc(100vh - 66px); @@ -101,11 +127,19 @@ .arg_hide #page_leftbar { display: none; } + .fulldesk #page_leftbar { + display: none; + } #topbar { /* height: 24px; */ position: relative; } + + .fulldesk #topbar { + display: none; + } + .topbar_td { width: 100px; height: 24px; @@ -129,6 +163,16 @@ height: 22px } +#MainMenuSpan { + display: table; +} + .fullscreen #MainMenuSpan { + display: none; + } + .fulldesk #MainMenuSpan { + display: none; + } + #column_l { position: relative; float: left; @@ -139,13 +183,28 @@ /*max-height: calc(100vh - 111px);*/ min-width: unset; } +.room4submenu { + max-height: calc(100vh - 159px) !important; +} .fullscreen #column_l { - height: calc(100vh - 111px); + height: calc(100vh - 135px); width: calc(100% - 30px); overflow-y: auto; } + .fulldesk #column_l { + width: 100%; + height: unset; + margin-left: unset; + overflow-y: unset; + padding: 0; + max-height: unset; + } + .fulldesk #column_l_bottomgap { + display: none; + } + #centralTable { width: 100%; } @@ -203,6 +262,9 @@ padding-top: 5px; padding-bottom: 5px; } + .fulldesk #footer { + display: none; + } /* Support for footer made with table */ #footer table { @@ -277,6 +339,17 @@ margin-left: 8px; } +.dialogText { + width: 100%; + max-height: 260px; + overflow-x: hidden; + overflow-y: auto; + line-height: 160% +} +.dialogTextLog { + font-size:10px +} + #dialog1 { margin: auto; text-align: center; @@ -312,11 +385,392 @@ width: 80px; } +#ua_fileaccessquota { + width: 80px; + text-align: right +} + +#broadcastMessage { + width: 370px; + height: 100px; + resize: none; +} + +#idx_deskFullBtn2 { + float: left; + font-size: large; + cursor: pointer; + display: none; +} + .fulldesk #idx_deskFullBtn2 { + display: block; + } + .fulldesk #deskFullBtn { + display: none; + } + #p0message { margin: 50px; text-align: center; } +#devListToolbarViewIcons { + float:right; +} + +#devListToolbarSpan { + width: 100%; + height: 24px; + background-color: #d3d9d6; + vertical-align: middle; + border-spacing: 0 +} + +#SearchInput { + width:120px; +} + +#devListToolbarView, #devListToolbarSort, #devListToolbarSize { + float: right; +} + +#refreshmap { + margin-left:5px; +} + +/* Example if
My Devices | My Account | My Events | My Files |
{{{logoutControl}}}
My Devices | My Account | My Events | My Files | My Users | My Server |
{{{logoutControl}}}