diff --git a/README.md b/README.md index 19d33eb..7625536 100644 --- a/README.md +++ b/README.md @@ -6,15 +6,15 @@ ## 问题列表: ### 1、如何使用git管理代码,能够做到拉取、提交、修改、创建合并分支,了解github,能够fork项目然后进行开发等,了解正常生产环境当中的代码管理流程。 如果有同学了解了,可以写一个自己的markdown文件写明白,命名为你的名字,上传到这个仓库。 - - + ### 2、熟练使用markdown语法编写markdown文件。并且提交一个完整的数据库设计文档到Question2中。 - -#### markdown基础语法:https://www.appinn.com/markdown/ +#### markdown基础语法:https://www.appinn.com/markdown/ #### (建议只看快速入门)快速入门:https://www.appinn.com/markdown/basic.html -#### 使用有道云编写markdown: 简单篇:http://note.youdao.com/iyoudao/?p=2411 +#### 使用有道云编写markdown: +#### 简单篇:http://note.youdao.com/iyoudao/?p=2411 #### 进阶篇:http://note.youdao.com/iyoudao/?p=2445 -#### 其他markdown编辑软件:小书匠、jetBrains出品的软件,如idea、pycharm都有markdown组件、阿童木 +#### 其他markdown编辑软件:小书匠、jetBrains出品的软件,如idea、pycharm都有markdown组件、阿童木 - 注意:先新建一个以自己名字为文件名的文件夹,再把问题的解决方案放到自己文件夹里 + diff --git "a/question1/lichangan/\346\235\216\346\230\214\345\256\211\347\255\224\346\241\2101.md" "b/question1/lichangan/\346\235\216\346\230\214\345\256\211\347\255\224\346\241\2101.md" new file mode 100644 index 0000000..e3c3aa8 --- /dev/null +++ "b/question1/lichangan/\346\235\216\346\230\214\345\256\211\347\255\224\346\241\2101.md" @@ -0,0 +1,31 @@ +# 正确的工作流 +## 之前的介绍是有错误的,正确的工作流应该是: +### 1、先从主仓库,也就是tjut-scce-developer/Question-Answer上clone最新代码,进入到项目 +``` +git clone git@github.com:tjut-scce-developer/Question-Answer.git +cd Question-Answer/ +``` +### 2、再把自己fork的仓库的ssh链接添加到remote对象,如我的: +``` +git remote add upstream git@github.com:aninstein/Question-Answer.git +``` +### 3、新建一个分支为dev-0.0.1-<你的名字拼音>,然后切换到该分支上 +``` +git branch dev-0.0.1-lichangan +git checkout dev-0.0.1-lichangan + +git branch -vv #可以查看当前在哪个分支 +``` +### 4、修改 +Question-Answer项目提供解决方案的提交方案是,在question【序号】里面新建自己名字的文件夹,然后把解决方案放在你的文件夹里面 +### 5、提交到本地 +``` +git status #这个可以看到你的修改,就是你都做了哪些操作 +git add -A #这个是添加所有到提交列表里面,把-A换成单个文件或者一个文件夹,就只会添加单个文件或者文件夹 + +git commit -m "在双引号里简单描述本次提交的修改内容" +``` +### 6、上面只是提交到本地了,还要吧代码push到github上,现在需要push到我fork的仓库上 +``` +git push upstream dev-0.0.1-lichangan #这样在你fork的仓库上就有了一个dev-0.0.1-lichangan分支 +``` \ No newline at end of file diff --git "a/question2/lichangan/\347\273\204\347\273\207-\350\247\222\350\211\262-\347\224\250\346\210\267-\350\265\204\346\272\220\347\256\241\347\220\206\350\256\276\350\256\241\346\226\207\346\241\243.md" "b/question2/lichangan/\347\273\204\347\273\207-\350\247\222\350\211\262-\347\224\250\346\210\267-\350\265\204\346\272\220\347\256\241\347\220\206\350\256\276\350\256\241\346\226\207\346\241\243.md" new file mode 100644 index 0000000..162dc3a --- /dev/null +++ "b/question2/lichangan/\347\273\204\347\273\207-\350\247\222\350\211\262-\347\224\250\346\210\267-\350\265\204\346\272\220\347\256\241\347\220\206\350\256\276\350\256\241\346\226\207\346\241\243.md" @@ -0,0 +1,151 @@ +# 角色-用户-资源管理设计文档 +## 角色(role)-用户(user)-资源(resource) manager +--- +## 修改记录 +|序号|日期|修改人|主要修改内容| +| :-: | :-: | :-: | :-: | +|1|2018-1-11|李昌安|新建| +|2|2018-1-17|李昌安|删除了多余的字段| +--- +### 1、权限格式(power format) +#### 权限补充描述 +1.权限操作对象:权限操作的==资源对象== + +2.权限标签:标签命名格式:**[操作范围(\|"all")].[可执行行为].[针对类型(restype)]** + +3.权限描述:简要的文字描述 + +#### 对应权限的格式 +|字段名|字段类型|描述|必要性| +| :-: | :-: | :-: | :-: | +|id|int|表格索引号|必选| +|powerobject|string|权限操作对象|必选| +|powername|string|权限名称|必选| +|powerid|string|权限id|必选| +|powertag|string|权限标签|可选| +|powerdescribe|string|权限描述|可选| +##### 例如: +```json +{ + "powerobject":"fileinfo", + "powername": "static_visit", + "powerid": 1, + "powertag": "all.visit.file", + "powerdescribe": "静态访问权限" +} +``` +--- +### 角色 +|字段名|字段类型|描述|必要性| +| :-: | :-: | :-: | :-: | +|id|int|表格索引号|必选| +|rolename|string|角色名|必选| +|roleid|string|角色id|必选| +|rolepreid|string|父角色id|可选| +|rolepower|jsonArray|角色拥有权限的资源|可选| + +#### 角色字段补充描述 +1.角色权限(rolepower):主要为CRUD和其他类型 + +#### 例如 +```json +{ + "id": 1, + "rolename": "super_admin", + "roleid": 2, + "rolepreid": 1, + "rolepower": [ + { + "powerobject": "fileinfo", + "powername": "static_visit", + "powerid": 1, + "powertag": "all.visit.file", + "powerdescribe": "静态访问权限" + }, + { + "powerobject": "history", + "powername": "update", + "powerid": 2, + "powertag": "all.update.file", + "powerdescribe": "更新历史记录权限" + } + ] +} +``` + +--- +### 用户 +|字段名|字段类型|描述|必要性| +| :-: | :-: | :-: |:-:| +|id|int|表格索引号|必选| +|username|string|用户名|必选| +|userid|string|用户编号|必选| +|userrole|string array|用户扮演的角色|必选| +|userotherpower|jsonArray|用户除去角色拥有的权限外,还被赋予的其他权限|可选| + +#### 角色字段补充描述 +1.用户角色(userrole):一个用户可以扮演多个角色,扮演一个角色之后继承角色的所有权限 + +2.用户其他权限(userotherpower):一个用户除去扮演的权限外,本身还拥有的其他权限 + +#### 例如 +```json +{ + "id": 1, + "username": "lichangan", + "userid": 111, + "userrole": ["1","2"], + "userotherpower": [ + { + "powerobject": "fileinfo", + "powername": "delete", + "powerid": 3, + "powertag": "all.delete.file", + "powerdescribe": "删除文档信息权限" + } + ] +} +``` + + +--- +### 资源 +|字段名|字段类型|描述|必要性| +| :-: | :-: | :-: |:-:| +|id|int|表格索引号|必选| +|resname|string|资源名|必选| +|resid|string|资源编号|必选| +|restype|string|资源类型|必选| +|resstatu|int|资源状态|可选| +|resdescribe|string|资源描述|可选| +|resattr|string|资源属性| 可选| +|respath|string|系统存放资源的路径|必选| + +#### 角色字段补充描述 +1.资源类型(restype):资源类型有以下几种: +#### +- 文件类型(==file==):属于文件类型 +- 操作权限(==control==):操作模块,比如菜单、表格 +- 数据(==data==):数据 + +2.资源状态(resstatu):==1== 为可用,==0== 为不可用 + +3.资源属性(resattr):资源属性是对资源所存在的位置,主要有以下几种: +#### +- 静态属性(==static==):静态文件,比如图片、字体等 +- 动态属性(==dynamic==):一般为比如菜单、数据库数据、代码完成的行为 +- 系统属性(==system==):系统资源,只读 + +#### 例如 +```json +{ + "id": 1, + "resname": "menu", + "resid": "menu", + "restype": "control", + "resstatu": 1, + "resdescribe": "菜单管理", + "resattr": "dynamic", + "respath": "/menu" +} +```