管理员可以对Masterlab进行系统管理,事项设置,以及所有的项目和用户管理

全局(系统)管理

系统管理包括了`基本配置、时间设置、附件设置、界面设置、安全设置、邮件配置、缓存管理、日志查看等模块

基本设置

基本设置可以设置页面标题、登录次数、项目名称键值长度,其他设置暂时没用启用。

时间设置

时间设置可以自定义置日期格式、时间格式、星期格式、完整日期/时间格式。 格式参考说明:时间格式说明

附件设置

附件设置可以设置最大上传附件的大小,其他建议不做修改。
要真正提高附件的上传大小,除了在这里设置最大上传附件的大小外,还要修改php.ini 的 upload_max_filesize , post_max_size

界面设置

界面设置包括了用户默认设置、公告栏

  • 用户默认设置可以设置默认发送邮件格式、问题导航每页显示的问题数量、页面布局、项目首页

  • 公告栏可以发布/禁用在首页显示的公告信息`

邮件设置

  • SMTP配置 配置好邮件设置并开启后,事项的更新将会自动发送邮件通知给相关的团队成员,系统仅支持SMTP。
    发送邮件方式有同步和异步发送,同步是直接使用php进行发送,异步则是交由Masterlab_socket进行后台发送,提高性能
    和效率。如果使用非异步发送,那么 可以忽略"MasterlabSocket服务器端口"和"MasterlabSocket服务器地址"设置。配置界面:
    10000cut-201907101607507215.png 要检查邮件是否配置成功,可通过 "发送测试" 按钮进行测试和排查原因

  • 邮件队列提供了已发送的邮件队列状态查看和错误原因

  • 发送邮件,可以给某个项目的所有成员或特定的用户组群发邮件

缓存管理

当升级新的版本或出现一些数据异常时,可以在 "管理/系统/缓存"页面中,删除redis中的缓存数据。

日志

包括了操作日志、sql慢查询`

  • 操作日志可以查看Masterlab中所有用户的操作日志
  • sql慢查询可以查看所有的慢查询日志

事项设置

Masterlab可以对事项进行自定义设置,以满足不同公司的个性化需求。可以自定义的事项功能有: 事项类型,状态,解决结果,工作流和事项表单界面。

事项类型及方案

当项目创建时所选择的项目类型,决定了其拥有的事项类型。
系统默认了8种事项类型,如有需要可以添加事项类型。
系统默认了3中事项类型方案,每个方案绑定这不同的事项类型,同时项目类型和事项类型方案是一对一对应的。 项目和事项类型及方案的关系是:
项目-->类型-->事项类型方案-->拥有的事项类型
例如,项目xxx的类型为"敏捷开发",而敏捷开发采用的是"敏捷开发事项类型方案","敏捷开发事项类型方案"拥有的类型是: Bug、新功能、优化改进、用户故事、技术任务、史诗任务,那么项目xxx就是包含了这些事项类型。

优先级

优先级是事项的紧急和重要程度的标识,系统默认了5种优先级,如有需要可以添加优先级。
10000cut-201907101607211097.png

解决结果

解决结果是对事项的结果进行定义或评定,一般交由QA或产品经理进行操作。
系统默认了多种解决结果,如有需要可以新增。
10000cut-201907101607441721.png

状态、工作流及方案

事项有着不同的阶段,通过状态进行标识,系统默认了8种事项状态,如有需要可以添加事项状态。
10000cut-201907101507206995.png

工作流在Masterlab中其实就是状态流,是不同状态下一阶段的设定。可以设定多个工作流。
10000cut-201907101507398915.png

点击工作流列表的右侧"编辑"链接,再点"下一步",进行工作流编辑页面,常用操作有:
新增跳转操作:按住某一个状态的黄点可以出现一个箭头,以指定下一个要转变的状态
10000cut-201907101507488161.png

删除跳转操作:对准要删除的箭头的圆点,按住拖出到空白处即可
10000cut-201907101507471639.png
工作流方案定义着不同事项类型所采用的工作流。如下显示:
10000cut-201907101507174106.png

自定义事项表单

通过字段、事项类型界面方案可以自定义创建/编辑事项时填写的表单。

  • 点击字段菜单,可以看到系统默认提供了标题、描述、状态、优先级、经办人、模块、标签等20个事项表单显示的字段,点击新增字段,如下图所示:

  • 创建了字段以后,我们就可以根据事项类型来自定义事项的表单,点击事项类型的创建界面配置编辑界面配置,定义事项表单要显示的标签页,及增加、编辑、删除事项表单的字段,如下图所示:

项目管理

项目管理 可以新增、编辑、删除项目,只有管理员才能拥有此权限。
删除项目是一个风险很大的操作,目前还没有做软删除和归档功能。
所以删除项目需要以管理员用户登录,在"管理/项目"才能删除

用户管理

除了administrators,其他用户组只是只是起到分类的作用,administrators 是管理员的用户组,加入该用户表明该用户具备管理员权限,要谨慎操作

在安装完 Masterlab 系统后,系统中只有一个系统管理员帐号;创建完项目后,通常需要在 Masterlab 系统中添加其他的用户,在管理界面上点击 用户管理菜单,在用户界面上再点击创建用户就可以添加新用户,如下图所示:

Masterlab - 404
404
您所访问的页面不存在或出错了
help->pageIndex no found;
debug
Sql:
Array
(
)
TRACE:
Array
(
)
GET:
Array
(
    [md] => system
    [_target] => Array
        (
            [0] => help
        )

)
POST:
Array
(
)
FILES:
Array
(
)
Include: 113
Array
(
    [0] => /data/www/masterlab-site/public/index.php
    [1] => /data/www/masterlab-site/app/globals.php
    [2] => /data/www/masterlab-site/vendor/autoload.php
    [3] => /data/www/masterlab-site/vendor/composer/autoload_real.php
    [4] => /data/www/masterlab-site/vendor/composer/ClassLoader.php
    [5] => /data/www/masterlab-site/vendor/composer/autoload_static.php
    [6] => /data/www/masterlab-site/vendor/ralouphie/getallheaders/src/getallheaders.php
    [7] => /data/www/masterlab-site/vendor/guzzlehttp/promises/src/functions_include.php
    [8] => /data/www/masterlab-site/vendor/guzzlehttp/promises/src/functions.php
    [9] => /data/www/masterlab-site/vendor/guzzlehttp/psr7/src/functions_include.php
    [10] => /data/www/masterlab-site/vendor/guzzlehttp/psr7/src/functions.php
    [11] => /data/www/masterlab-site/vendor/symfony/polyfill-mbstring/bootstrap.php
    [12] => /data/www/masterlab-site/vendor/guzzlehttp/guzzle/src/functions_include.php
    [13] => /data/www/masterlab-site/vendor/guzzlehttp/guzzle/src/functions.php
    [14] => /data/www/masterlab-site/vendor/adbario/php-dot-notation/src/helpers.php
    [15] => /data/www/masterlab-site/vendor/symfony/polyfill-php80/bootstrap.php
    [16] => /data/www/masterlab-site/vendor/danielstjules/stringy/src/Create.php
    [17] => /data/www/masterlab-site/vendor/symfony/polyfill-ctype/bootstrap.php
    [18] => /data/www/masterlab-site/vendor/mtdowling/jmespath.php/src/JmesPath.php
    [19] => /data/www/masterlab-site/vendor/songshenzong/support/src/StringsHelpers.php
    [20] => /data/www/masterlab-site/vendor/songshenzong/support/src/BashEchoHelpers.php
    [21] => /data/www/masterlab-site/vendor/hornet/framework/src/framework/bootstrap.php
    [22] => /data/www/masterlab-site/vendor/hornet/framework/src/framework/function.php
    [23] => /data/www/masterlab-site/vendor/hornet/framework/src/framework/FilterSqlInject.php
    [24] => /data/www/masterlab-site/vendor/hornet/framework/src/framework/HornetCoreException.php
    [25] => /data/www/masterlab-site/vendor/hornet/framework/src/framework/HornetLogicException.php
    [26] => /data/www/masterlab-site/vendor/hornet/framework/src/framework/ErrorHandler.php
    [27] => /data/www/masterlab-site/vendor/hornet/framework/src/framework/HornetEngine.php
    [28] => /data/www/masterlab-site/vendor/hornet/framework/src/framework/protocol/Iprotocol.php
    [29] => /data/www/masterlab-site/vendor/hornet/framework/src/framework/protocol/Api.php
    [30] => /data/www/masterlab-site/vendor/hornet/framework/src/framework/protocol/Ajax.php
    [31] => /data/www/masterlab-site/app/function/autoload.php
    [32] => /data/www/masterlab-site/app/function/array.php
    [33] => /data/www/masterlab-site/app/function/common.php
    [34] => /data/www/masterlab-site/app/function/cryptojs-aes.php
    [35] => /data/www/masterlab-site/app/function/sql.php
    [36] => /data/www/masterlab-site/app/function/string.php
    [37] => /data/www/masterlab-site/app/function/system.php
    [38] => /data/www/masterlab-site/app/function/time.php
    [39] => /data/www/masterlab-site/app/function/upload_image.php
    [40] => /data/www/masterlab-site/app/function/web.php
    [41] => /data/www/masterlab-site/app/function/response_error.php
    [42] => /data/www/masterlab-site/app/function/excel.php
    [43] => /data/www/masterlab-site/vendor/symfony/yaml/Yaml.php
    [44] => /data/www/masterlab-site/vendor/symfony/yaml/Parser.php
    [45] => /data/www/masterlab-site/vendor/symfony/yaml/Inline.php
    [46] => /data/www/masterlab-site/vendor/symfony/yaml/Unescaper.php
    [47] => /data/www/masterlab-site/app/config/app.cfg.php
    [48] => /data/www/masterlab-site/app/constants.php
    [49] => /data/www/masterlab-site/app/config/common.cfg.php
    [50] => /data/www/masterlab-site/app/config/session.cfg.php
    [51] => /data/www/masterlab-site/app/ctrl/Help.php
    [52] => /data/www/masterlab-site/app/ctrl/BaseCtrl.php
    [53] => /data/www/masterlab-site/vendor/symfony/event-dispatcher/EventDispatcher.php
    [54] => /data/www/masterlab-site/vendor/symfony/event-dispatcher/EventDispatcherInterface.php
    [55] => /data/www/masterlab-site/vendor/symfony/event-dispatcher-contracts/EventDispatcherInterface.php
    [56] => /data/www/masterlab-site/app/model/SettingModel.php
    [57] => /data/www/masterlab-site/app/model/BaseDictionaryModel.php
    [58] => /data/www/masterlab-site/app/model/CacheModel.php
    [59] => /data/www/masterlab-site/app/model/DbModel.php
    [60] => /data/www/masterlab-site/app/model/BaseModel.php
    [61] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/DriverManager.php
    [62] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/Configuration.php
    [63] => /data/www/masterlab-site/vendor/doctrine/event-manager/lib/Doctrine/Common/EventManager.php
    [64] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDO/MySQL/Driver.php
    [65] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php
    [66] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php
    [67] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver.php
    [68] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/ExceptionConverterDriver.php
    [69] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/VersionAwarePlatformDriver.php
    [70] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php
    [71] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Connection.php
    [72] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/TransactionIsolationLevel.php
    [73] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/ParameterType.php
    [74] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/FetchMode.php
    [75] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/Query/Expression/ExpressionBuilder.php
    [76] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDO/Connection.php
    [77] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php
    [78] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/ServerInfoAwareConnection.php
    [79] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOQueryImplementation.php
    [80] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDO/Statement.php
    [81] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php
    [82] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Statement.php
    [83] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/ResultStatement.php
    [84] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Result.php
    [85] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatementImplementations.php
    [86] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/Events.php
    [87] => /data/www/masterlab-site/lib/MyRedis.php
    [88] => /data/www/masterlab-site/vendor/doctrine/dbal/lib/Doctrine/DBAL/SQLParserUtils.php
    [89] => /data/www/masterlab-site/app/classes/UserAuth.php
    [90] => /data/www/masterlab-site/app/ctrl/Resource.php
    [91] => /data/www/masterlab-site/lib/parsedown/Parsedown.php
    [92] => /data/www/masterlab-site/app/view/help.php
    [93] => /data/www/masterlab-site/app/view/common/header-meta.php
    [94] => /data/www/masterlab-site/app/view/common/header-style.php
    [95] => /data/www/masterlab-site/app/view/common/header-script.php
    [96] => /data/www/masterlab-site/app/view/common/body-header.php
    [97] => /data/www/masterlab-site/app/view/common/common-footer.php
    [98] => /data/www/masterlab-site/app/view/common/siteFooter.php
    [99] => /data/www/masterlab-site/app/view/modal/login.php
    [100] => /data/www/masterlab-site/app/view/modal/signup.php
    [101] => /data/www/masterlab-site/app/view/modal/get-started.php
    [102] => /data/www/masterlab-site/app/view/modal/try.php
    [103] => /data/www/masterlab-site/app/view/modal/trial.php
    [104] => /data/www/masterlab-site/app/view/modal/buy-premium.php
    [105] => /data/www/masterlab-site/app/view/modal/loading.php
    [106] => /data/www/masterlab-site/app/view/modal/signup-failed.php
    [107] => /data/www/masterlab-site/app/view/modal/existing-account.php
    [108] => /data/www/masterlab-site/app/view/modal/unsupported-browser.php
    [109] => /data/www/masterlab-site/app/view/modal/calculate.php
    [110] => /data/www/masterlab-site/app/view/modal/sso-signup.php
    [111] => /data/www/masterlab-site/app/view/modal/i18n.php
    [112] => /data/www/masterlab-site/app/view/exception.php
)