首頁>技術>

商家角色管理設計

商家的許可權管理是透過角色管理實現的,角色與資源能表建立大聯大爾就衣小以用巴八該資源具有訪問許可權。一個使用者擁有哪些角色,就表示這個使用者對這些角色所關聯的資源具

有訪問許可權。

角色管理主要是透過RoleRestService等元件訪問商家服務提供的介面,從而實現對角色的資料配置進行管理的。角色管理包括角色的增刪改查等操作內容,下面以角色修改的設計為例進行說明。

在角色管理控制器MerchantRoleController中,有關角色修改部分的設計如下所示:

@Controller@RequestMapping("/merchantrole")public class MerchantRoleController {private static Logger logger =LoggerFactory.getLogger(MerchantRoleController.class);@Autowiredprivate ResourceRestService resourceRestService;@Autowiredprivate RoleRestService roleRestService;@RequestMapping ("/edit/{id} ")public String edit (CPathvariable Long id, ModelMap model,HttpServletRequestrequest) {String json = roleRestService. findById(id);RoleQo roleQo = new Gson() .fromJson(json,RoleQo.class);String resources = resourceRestService.findList()List<ResourceQo> resourceVoList = new Gson().fromJson(resources, newTypeToken<List<ResourceQ0>>(){(}.getType());//快取資源列表request.getSession().setAttribute("resources", resourceVoList);List<Long> rids = new ArrayList<>();for(ResourceQo resource : roleQo.getResources()){rids.add(resource.getId());}model.addAttribute("resources", resourceVoList);model.addAttribute( "role", roleQo);mode1.addAttribute("rids", rids);return""merchantrole/edit";}@RequestMapping (method = RequestMethod.POST, value="/update")@ResponseBodypublic String update (RoleQ0 roleQ0, HttpServletRequest request)throwsException {//透過資源ID指定關聯物件String[] rids = request. getParameterValues ("rids");//獲取資源列表List<ResourceQo>resourceQoList = (List<ResourceQ0>)request.getSession() .getAttribute ("resources");List<ResourceQ0> resourceQos = new ArrayList<ResourceQo>();for (String rid :rids) {for (ResourceQo resourceVo :resourceQoList) {if (resourceVo.getId().compareTo(new Long(rid)) == 0)resourceQos .add(resourceVo);}}}roleQo.setResources (resourceQ0s);String ret =roleRestService.update (roleQo);logger.info("修改=" +ret);return ret;}}

其中,對於角色已經關聯的資源,可以使用一個由資源ID構成的列表rids在頁面的多項選擇下拉列表框中對已經選擇的資源進行判斷。如果是已經關聯的角色,就設定為選中的樣式。

對應的頁面檢視 edit.html的實現程式碼如下所示:

完成設計後,顯示的效果如圖11-6所示。

商家資訊和選單資源管理功能的資料可以從本篇的專案merchant-microservice中獲取,這樣將更方便讀者進行測試。

小結

本文主要實現了平臺管理後臺的訪問控制設計、商家註冊及其許可權,以及選單的配置和管理等方面的功能。其中,商家註冊及其許可權、選單的配置和管理,都是透過呼叫商家服務的REST API微服務實現的。

實際上,在我們的微服務架構設計中,Web UI微服務的開發都是透過呼叫Rest API微服務實現的,當需要在平臺管理後臺中對電商平臺的各個服務功能進行管理時,都可以透過呼叫各種微服務介面來實現。

有關微服務的開發至此告一段落,從下篇開始,我們將從運維的角度探討微服務的部署及微服務執行環境的構建等方面的內容。

9
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 如何在Windows上安裝和渲染OpenAI-Gym