package controllers import ( "oc-auth/infrastructure" beego "github.com/beego/beego/v2/server/web" ) // Operations about auth type RoleController struct { beego.Controller } // @Title Create // @Description create role // @Param id path string true "the id you want to get" // @Success 200 {auth} create success! // @router /:id [post] func (o *RoleController) Post() { // store and return Id or post with UUID id := o.Ctx.Input.Param(":id") role, code, err := infrastructure.GetPermissionConnector().CreateRole(id) if err != nil { o.Data["json"] = map[string]interface{}{ "data": nil, "error": err.Error(), "code": code, } } else { o.Data["json"] = map[string]interface{}{ "data": role, "error": nil, "code": 200, } } o.ServeJSON() } // @Title GetByUser // @Description find role by user id // @Param id path string true "the id you want to get" // @Success 200 {auth} string // @router /user/:id [get] func (o *RoleController) GetByUser() { id := o.Ctx.Input.Param(":id") role, err := infrastructure.GetPermissionConnector().GetRoleByUser(id) if err != nil { o.Data["json"] = map[string]interface{}{ "data": nil, "error": err.Error(), "code": 200, } } else { o.Data["json"] = map[string]interface{}{ "data": role, "error": nil, "code": 200, } } o.ServeJSON() } // @Title GetAll // @Description find roles // @Success 200 {role} string // @router / [get] func (o *RoleController) GetAll() { role, err := infrastructure.GetPermissionConnector().GetRole("") if err != nil { o.Data["json"] = map[string]interface{}{ "data": nil, "error": err.Error(), "code": 200, } } else { o.Data["json"] = map[string]interface{}{ "data": role, "error": nil, "code": 200, } } o.ServeJSON() } // @Title Get // @Description find role by id // @Param id path string true "the id you want to get" // @Success 200 {role} string // @router /:id [get] func (o *RoleController) Get() { id := o.Ctx.Input.Param(":id") role, err := infrastructure.GetPermissionConnector().GetRole(id) if err != nil { o.Data["json"] = map[string]interface{}{ "data": nil, "error": err.Error(), "code": 200, } } else { o.Data["json"] = map[string]interface{}{ "data": role, "error": nil, "code": 200, } } o.ServeJSON() } // @Title Delete // @Description delete the role // @Param id path string true "The id you want to delete" // @Success 200 {string} delete success! // @router /:id [delete] func (o *RoleController) Delete() { id := o.Ctx.Input.Param(":id") role, code, err := infrastructure.GetPermissionConnector().DeleteRole(id) if err != nil { o.Data["json"] = map[string]interface{}{ "data": nil, "error": err.Error(), "code": code, } } else { o.Data["json"] = map[string]interface{}{ "data": role, "error": nil, "code": 200, } } o.ServeJSON() } // @Title Clear // @Description clear the role // @Success 200 {string} delete success! // @router /clear [delete] func (o *RoleController) Clear() { role, code, err := infrastructure.GetPermissionConnector().DeleteRole("") if err != nil { o.Data["json"] = map[string]interface{}{ "data": nil, "error": err.Error(), "code": code, } } else { o.Data["json"] = map[string]interface{}{ "data": role, "error": nil, "code": 200, } } o.ServeJSON() } // @Title Bind // @Description bind the role to user // @Param user_id path string true "The user_id you want to bind" // @Param role_id path string true "The role_id you want to bind" // @Success 200 {string} bind success! // @router /:user_id/:role_id [post] func (o *RoleController) Bind() { user_id := o.Ctx.Input.Param(":user_id") role_id := o.Ctx.Input.Param(":role_id") role, code, err := infrastructure.GetPermissionConnector().BindRole(user_id, role_id) if err != nil { o.Data["json"] = map[string]interface{}{ "data": nil, "error": err.Error(), "code": code, } } else { o.Data["json"] = map[string]interface{}{ "data": role, "error": nil, "code": 200, } } o.ServeJSON() } // @Title UnBind // @Description unbind the role to user // @Param role_id path string true "The role_id you want to unbind" // @Param user_id path string true "The user_id you want to unbind" // @Success 200 {string} bind success! // @router /:user_id/:role_id [delete] func (o *RoleController) UnBind() { user_id := o.Ctx.Input.Param(":user_id") role_id := o.Ctx.Input.Param(":role_id") role, code, err := infrastructure.GetPermissionConnector().UnBindRole(user_id, role_id) if err != nil { o.Data["json"] = map[string]interface{}{ "data": nil, "error": err.Error(), "code": code, } } else { o.Data["json"] = map[string]interface{}{ "data": role, "error": nil, "code": 200, } } o.ServeJSON() }