Sample code

import (
    //"encoding/json"
    //"errors"
    "smartcloud/common"
    "smartcloud/log"
    "smartcloud/models"
    "strconv"
    "strings"
    //    "github.com/astaxie/beego"
)

type SolutionsUserPermissionController struct {
    SolutionsBaseController
}

func (this *SolutionsUserPermissionController) Get() {

    writelog.WriteDebug("/SolutionsUserPermissionController")
    v := this.GetSession("solutions_account")
    CompanyId := this.MainSetting()
    if CompanyId < 0 {
        return
    }
    //this.MainSetting()
    if !this.ExistSolutionsRolePermission("9") { //角色设置
        this.Ctx.Redirect(302, "/")
        return
    }

    //检查一下审核状态
    //status, reg_date, err := models.GetReviewStatusByEmail(v.(string))
    ReviewStatus, err := models.GetReviewStatusById(CompanyId)
    status := ReviewStatus.Status
    CompInfo, _ := models.GetCompanyCommonInfoById(CompanyId)
    reg_date := CompInfo.RegistTime
    writelog.WriteDebug("home email %s,status %d", v.(string), status)
    if err != nil {
        writelog.WriteWarning("home page not found review status. " + err.Error())
        this.Ctx.Redirect(302, "/")
        return
    } else {
        if status == common.Review_status_reviewing || status == common.Review_status_not_allowed {
            this.Data["date"] = reg_date
            this.TplName = "home_checking.html"
            return
        }
    }
    this.TplName = "solutions/solutions_user_permission.html"
}

type RoleInfoRet struct {
    RoleId          int    `json:"role_id"`
    RoleName        string `json:"role_name"`
    RoleDescription string `json:"role_description"`
    RolePermission  string `json:"role_permission"`
}

func (this *SolutionsUserPermissionController) Post() {
    companyId := this.MainSetting()
    if companyId < 0 {
        return
    }
    this.functionName = "solutions_user_permission"
    act := this.GetString("act")
    if act == "role_list" {
        RoleList(this)
        return
    } else if act == "role_add" {
        RoleAdd(this)
        return
    } else if act == "role_edit" {
        RoleEdit(this)
        return
    } else if act == "role_del" {
        RoleDel(this)
        return
    } else if act == "getall_companymodle" {
        GetAllCompanyModle(this)
        return
    } else if act == "check_role_name" {
        CheckRoleName(this)
        return
    }
}

func RoleList(this *SolutionsUserPermissionController) {
    companyId := this.MainSetting()
    page, _ := strconv.Atoi(this.GetString("page"))     //是否分页获取数据,页数
    rownum, _ := strconv.Atoi(this.GetString("rownum")) //是否分页获取数据,每页获取的数据条数
    recordcount, currentcount, res := models.GetAllCompanyRolesByCompanyId(companyId, page, rownum)

    info := make([]RoleInfoRet, currentcount)

    for i := int64(0); i < currentcount; i++ {
        info[i].RoleId = (*res)[i].RoleId
        info[i].RoleName = (*res)[i].RoleName
        info[i].RoleDescription = (*res)[i].RoleDescription
        info[i].RolePermission = (*res)[i].RolePermission
    }
    this.Data["json"] = struct {
        Ret         int           `json:"ret"`
        Msg         string        `json:"msg"`
        Recordcount int64         `json:"recordcount"`
        Data        []RoleInfoRet `json:"data"`
    }{
        Ret:         0,
        Msg:         "ok",
        Recordcount: recordcount,
        Data:        info,
    }
    this.ServeJSON()
    return
}
func RoleDel(this *SolutionsUserPermissionController) {
    companyId := this.MainSetting()
    id, _ := strconv.Atoi(this.GetString("id"))
    if id == 0 {
        msg := models.ReturnMsg(this.Lang, this.functionName, "not_found")
        this.jsonStandardResult(-1, msg, "")
        return
    }
    err := models.DelCompanyRoleById(id)
    if err != nil {
        msg := models.ReturnMsg(this.Lang, this.functionName, "delete_err")
        this.jsonStandardResult(-2, msg, "")
        return
    }
    CompanyUserDelPermission(nil, companyId, id)
    this.jsonStandardResult(0, "ok", "")
    return
}

func CheckRoleName(this *SolutionsUserPermissionController) {
    companyId := this.MainSetting()
    role_name := this.GetString("role_name")
    if role_name != "" {
        var msg string
        if CompanyRoleIsExist(companyId, role_name) {
            msg = "true"
        } else {
            msg = "false"
        }
        this.jsonStandardResult(0, msg, "")
        return
    }
    this.jsonStandardResult(0, "false", "")
    return
}

func CompanyRoleIsExist(companyId int, RoleName string) bool {
    id, _ := models.GetCompanyRoleIdByName(RoleName, companyId)
    if id > 0 {
        return true
    }
    return false
}

type RetCompanyModleInfo struct {
    ModuleId       string `json:"module_id"`
    ModuleParentId string `json:"parentid"`
    MenuId         string `json:"menu_id"`
    MenuName       string `json:"menu_name"`
}

func GetAllCompanyModle(this *SolutionsUserPermissionController) {
    var page, rownum int
    page = -1 //负数表示取所有
    rownum = 1000
    recordcount, currcount, res := models.GetAllSolutionsModuleAndMenu(page, rownum)

    info := make([]RetCompanyModleInfo, currcount)
    for i := int64(0); i < currcount; i++ {
        info[i].ModuleId = res[i]["module_id"].(string)
        info[i].ModuleParentId = res[i]["module_parent_id"].(string)
        info[i].MenuId = res[i]["menu_id"].(string)
        info[i].MenuName = this.I18n.GetSectionMap("main")[res[i]["menu_name_flag"].(string)]
    }

    this.Data["json"] = struct {
        Ret         int                   `json:"ret"`
        Msg         string                `json:"msg"`
        Recordcount int64                 `json:"recordcount"`
        Data        []RetCompanyModleInfo `json:"data"`
    }{
        Ret:         0,
        Msg:         "ok",
        Recordcount: recordcount,
        Data:        info,
    }
    this.ServeJSON()
    return
}

为企业子用户增加权限角色

func CompanyUserAddPermission(CompanyUserId int, RoleId int) {
    if CompanyUserId == 0 && RoleId == 0 {
        return
    }
    sRoleId := strconv.Itoa(RoleId)
    CompanyUserInfo, err := models.GetCompanyUserById(CompanyUserId)
    if err != nil {
        return
    }

    if CompanyUserInfo.CompanyRoleIds == "" {
        CompanyUserInfo.CompanyRoleIds = sRoleId
    } else {
        CompanyRoleIds := strings.Split(CompanyUserInfo.CompanyRoleIds, ",")
        for _, v := range CompanyRoleIds {
            if v == sRoleId {
                return
            }
        }
        CompanyUserInfo.CompanyRoleIds = CompanyUserInfo.CompanyRoleIds + "," + sRoleId
    }
    models.UpdateCompanyUserById(CompanyUserInfo)
    return
}

删除企业子用户中的某个角色 / 删除企业子用户中角色 ID 为 RoleId 的角色

func CompanyUserDelPermission(CompanyUserIds []string, CompanyId, RoleId int) {
    recordcount, _, CompanyUsers := models.GetCompanySubUser("", CompanyId)
    for i := int64(0); i < recordcount; i++ {
        if CompanyUsers[i]["company_user_id"] != nil {
            flag := 0
            for _, v := range CompanyUserIds {
                if CompanyUsers[i]["company_user_id"].(string) == v {
                    flag = 1
                    break
                }
            }
            if flag == 1 {
                continue
            } else {
                companyuserid, _ := strconv.Atoi(CompanyUsers[i]["company_user_id"].(string))
                companyuser, _ := models.GetCompanyUserById(companyuserid)
                sRoleId := strconv.Itoa(RoleId)
                if companyuser != nil {
                    CompanyRoleIds := strings.Split(companyuser.CompanyRoleIds, ",")
                    var tmp []string
                    for _, roleid := range CompanyRoleIds {
                        if roleid == sRoleId {
                            continue
                        }
                        tmp = append(tmp, roleid)
                    }
                    companyuser.CompanyRoleIds = strings.Join(tmp, ",")
                    models.UpdateCompanyUserById(companyuser)
                }
            }
        }

    }
    return
}

results matching ""

    No results matching ""