# this defines the entity description for membership
membership = \u7528\u4E8E\u7528\u6237\u5728\u7AD9\u70B9\u3001\u5C0F\u7EC4\u4E2D\u7684\u6210\u5458\u5173\u7CFB\uFF0C\u548C\u7AD9\u70B9\u3001\u5C0F\u7EC4\u3001\u7528\u6237\u5B9E\u4F8B\u4E00\u8D77\u5DE5\u4F5C\u3002\u5728\u4E0B\u9762\u7684\u6587\u6863\u4E2D\uFF0C\u6210\u5458\u5173\u7CFBID\u7531\u201CUSER_ID::\u4F4D\u7F6E\u4FE1\u606F\u201D\u7EC4\u6210\uFF0C\uFF08\u4F8B\u5982\uFF1A\u201Czhangsan::site:mySiteId\u201D\uFF09\u3002
membership.view.new = (POST) \u6DFB\u52A0\u6307\u5B9AID\u7684\u6210\u5458\u5173\u7CFB\u3002\u5176\u4E2D\u53EF\u4EE5\u5728\u53C2\u6570\u4E2D\u6307\u5B9A\u7528\u6237ID\uFF08userId\uFF09\u548C\u4F4D\u7F6E\u4FE1\u606F(locationReference)\u3002\u5728\u6240\u6709\u60C5\u51B5\u4E0B\uFF0C\u53EF\u4EE5\u4F7F\u7528\u53EF\u9009\u53C2\u6570\u201CmemberRole\u201D\u6307\u5B9A\u5206\u914D\u7684\u89D2\u8272\uFF08\u82E5\u4E0D\u6307\u5B9A\uFF0C\u4E3A\u9ED8\u8BA4\u52A0\u5165\u89D2\u8272\uFF09\uFF1BBoolean\u503C\u201Cactive\u201D\uFF08\u9ED8\u8BA4true\uFF09\u8BBE\u5B9A\u7528\u6237\u72B6\u6001\u3002\u8FD8\u53EF\u4EE5\u901A\u8FC7\u8BBE\u7F6E\u6570\u7EC4\u53C2\u6570\u201CuserIds\u201D\u6765\u8FDB\u884C\u6279\u91CF\u8BBE\u7F6E\u540C\u4E00\u4F4D\u7F6E\u540C\u4E00\u89D2\u8272\u6210\u5458\u5173\u7CFB\u3002
membership.view.delete = (DELETE) \u5220\u9664\u6307\u5B9AID\u7684\u6210\u5458\u5173\u7CFB\u3002\u53EF\u4EE5\u901A\u8FC7\u8BBE\u7F6E\u6570\u7EC4\u53C2\u6570\u201CuserIds\u201D\u6765\u8FDB\u884C\u6279\u91CF\u79FB\u9664\u540C\u4E00\u4F4D\u7F6E\u540C\u4E00\u89D2\u8272\u6210\u5458\u5173\u7CFB\u3002
membership.view.edit = (POST) \u4FEE\u6539\u6307\u5B9AID\u7684\u6210\u5458\u5173\u7CFB\u3002\u5176\u4E2D\u53EF\u4EE5\u5728\u53C2\u6570\u4E2D\u6307\u5B9A\u7528\u6237ID\uFF08userId\uFF09\u548C\u4F4D\u7F6E\u4FE1\u606F(locationReference)\u3002\u5728\u6240\u6709\u60C5\u51B5\u4E0B\uFF0C\u53EF\u4EE5\u4F7F\u7528\u53EF\u9009\u53C2\u6570\u201CmemberRole\u201D\u6307\u5B9A\u5206\u914D\u7684\u89D2\u8272\uFF08\u82E5\u4E0D\u6307\u5B9A\uFF0C\u4E3A\u9ED8\u8BA4\u52A0\u5165\u89D2\u8272\uFF09\uFF1BBoolean\u503C\u201Cactive\u201D\uFF08\u9ED8\u8BA4true\uFF09\u8BBE\u5B9A\u7528\u6237\u72B6\u6001\u3002\u8FD8\u53EF\u4EE5\u901A\u8FC7\u8BBE\u7F6E\u6570\u7EC4\u53C2\u6570\u201CuserIds\u201D\u6765\u8FDB\u884C\u6279\u91CF\u66F4\u65B0\u540C\u4E00\u4F4D\u7F6E\u540C\u4E00\u89D2\u8272\u6210\u5458\u5173\u7CFB\u3002
membership.view.list = \u9ED8\u8BA4\u60C5\u51B5\u4E0B\uFF0C\u5C06\u83B7\u53D6\u5F53\u524D\u7528\u6237\u5728\u6240\u6709\u7AD9\u70B9\u4E2D\u7684\u6210\u5458\u5173\u7CFB\u3002\u53EF\u9009\u53C2\u6570\uFF1A"includeSites=false"\u5C06\u8FC7\u6EE4\u6389\u7AD9\u70B9\u6210\u5458\u5173\u7CFB\uFF1B"includeGroups=true"\u83B7\u53D6\u5C0F\u7EC4\u6210\u5458\u5173\u7CFB\uFF1B"_locationReference=LOCATION_REFERENCE"\u8FD4\u56DE\u6307\u5B9A\u7AD9\u70B9\u6216\u5C0F\u7EC4\u7684\u6210\u5458\u5173\u7CFB\uFF1B"user=USER_ID"\uFF08\u6216"userId=USER_ID" \u6216 "_userReference=USER_REFERENCE"\uFF09\u8FD4\u56DE\u6307\u5B9A\u7528\u6237\u7684\u6210\u5458\u5173\u7CFB\uFF1B"role=ROLE_STRING"\uFF08\u6216"roleId=ROLE_STRING"\uFF09\u9650\u5B9A\u6307\u5B9A\u6210\u5458\u89D2\u8272\u3002
membership.action.site = URL\u683C\u5F0F\uFF1A"/membership/site/{\u7AD9\u70B9ID}"\u3002<br/> \
(GET) \u8FD4\u56DE\u6307\u5B9A\u7AD9\u70B9\u4E2D\u7684\u6210\u5458\u5173\u7CFB\u3002 <br/> \
(POST) \u6DFB\u52A0\u4E00\u4E2A\u6216\u591A\u4E2A\u7AD9\u70B9\u6210\u5458\u5173\u7CFB\uFF0C\u5176\u4E2D\u901A\u8FC7\u6570\u7EC4\u53C2\u6570"userSearchValues"\u8FDB\u884C\u6279\u91CF\u6DFB\u52A0\uFF08\u6570\u7EC4\u4E2D\u7684\u6570\u636E\u4E3A\u7528\u6237ID\uFF0C\u6216\u7528\u6237EID\uFF0C\u6216email\u5730\u5740\uFF09\uFF0C\u4F7F\u7528"memberRole"\u53C2\u6570\u6307\u5B9A\u89D2\u8272\uFF08\u9ED8\u8BA4\u4E3A\u81EA\u4E3B\u52A0\u5165\u65F6\u7684\u9ED8\u8BA4\u89D2\u8272\uFF09\uFF0CBoolean\u503C"active"\uFF08\u9ED8\u8BA4\u4E3Atrue)\u6307\u5B9A\u7528\u6237\u72B6\u6001\u3002\u76F8\u5E94\u5934\u53EF\u80FD\u5305\u62EC"x-warning-not-found"\uFF08\u5305\u542B\u4E0D\u6B63\u786E\u7684\u7528\u6237\uFF09\u4EE5\u53CA"x-warning-already-members"\uFF08\u5DF2\u7ECF\u5B58\u5728\u7684\u7528\u6237\uFF09\u3002
membership.action.sitebyjson = URL\u683C\u5F0F\u4E3A\uFF1A "/membership/sitebyjson/:SITE_ID:". <br/> \
(POST) \u6839\u636E\u5728json\u53C2\u6570\u4E2D\u63D0\u4F9B\u7684JSON\u4FE1\u606F\uFF0C\u6DFB\u52A0\u7AD9\u70B9\u6210\u5458\u3002<br/> \
<br/>\
JSON\u7684\u683C\u5F0F\u5982\u4E0B\uFF1A<br/> \
<br/>\
[ {"id": "user1", "role": "access"}, {"id": "user2","role": "maintain"} ]<br/> \
<br/>\
\u76F8\u5E94\u5934\u4E2D\u4F1A\u8BBE\u7F6E\u4E09\u9879\u5185\u5BB9\uFF1A<br/> \
<br/>\
<b>x-success-count</b>\uFF0C\u5305\u542B\u6210\u529F\u6DFB\u52A0\u7684\u6570\u91CF<br/> \
<b>x-warning-not-found</b>\uFF0C\u5305\u542B\u4E0D\u5B58\u5728\u7684\u7528\u6237ID\u5217\u8868\uFF0CID\u4E4B\u95F4\u4EE5\u9017\u53F7\u5206\u5272<br/>  \
<b>x-warning-already-members</b>\uFF0C\u5305\u542B\u5DF2\u7ECF\u5728\u7AD9\u70B9\u4E2D\u7684\u7528\u6237ID\uFF0CID\u4E4B\u95F4\u4EE5\u9017\u53F7\u5206\u5272
membership.action.group = URL\u683C\u5F0F\uFF1A"/membership/group/{\u5C0F\u7EC4ID}" <br/> \
(GET) \u8FD4\u56DE\u6307\u5B9A\u5C0F\u7EC4\u4E2D\u7684\u6210\u5458\u5173\u7CFB\u3002<br/> \
(POST) \u66F4\u65B0\u7528\u6237\u5C0F\u7EC4\u5173\u7CFB\u3002\u5FC5\u987BPOST\u53C2\u6570\uFF1A'userIds'\u4EE5\u534A\u89D2\u9017\u53F7\u5206\u9694\u7528\u6237\u5217\u8868(eid\u6216id\uFF09\u3002\
\u53C2\u6570'action'\u53EF\u9009\u503C\uFF1Aupdate\uFF0Cadd\uFF0Cremove\u3002\u901A\u8FC7update\uFF0C\u66F4\u65B0\u7528\u6237\u5217\u8868\u4E2D\u7684\u6210\u5458\u5173\u7CFB\uFF1B\u901A\u8FC7add\uFF0C\u6DFB\u52A0\u76F8\u5E94\u7684\u6210\u5458\u5173\u7CFB\uFF1B\u901A\u8FC7remove\uFF0C\u79FB\u9664\u76F8\u5E94\u7684\u6210\u5458\u5173\u7CFB\u3002
membership.action.join = \u5141\u8BB8\u7528\u6237\u81EA\u4E3B\u52A0\u5165\u7AD9\u70B9\uFF0C\u4EC5\u9488\u5BF9\u5F53\u524D\u7528\u6237\uFF1A/membership/join/site/{\u7AD9\u70B9ID}
membership.action.unjoin = \u5141\u8BB8\u7528\u6237\u9000\u51FA\u81EA\u4E3B\u52A0\u5165\u7AD9\u70B9\uFF0C\u4EC5\u9488\u5BF9\u5F53\u524D\u7528\u6237\uFF1A/membership/unjoin/site/{\u7AD9\u70B9ID}
membership.action.fastroles = \u5141\u8BB8\u6269\u82CF\u83B7\u53D6\u7AD9\u70B9\u4E2D\u7684\u5F53\u524D\u89D2\u8272\u3002\u4F7F\u7528\u683C\u5F0F "/membership/fastroles/:userId:" (\u6216userEid) \u5982\u672A\u8BBE\u7F6E\u53C2\u6570\u5219\u8868\u793A\u5F53\u524D\u7528\u6237\u3002\u8FD9\u662F\u5BF9\u4E8E includeMemberDetail=false \u7684\u5FEB\u6377\u65B9\u5F0F
