
import store from '@/store'

export function getUserOrgCode() {
  return store.state.user.orgCode;
}

export function getUserDeptId() {
  return store.state.user.deptId;
}

export function getUserName() {
  return store.state.user.name;
}

export function getUserRoles() {
  return store.state.user.roles;
}

export const ROLE = {
  ADMIN: 'admin', // 总部管理员
  COMMON: 'common', // 县级管理员
  TOWN: 'town', // 镇级管理员
  VILLAGE: 'village', // 村级管理员
  VILLAGE_SOCRE: 'village_socre', // 村委
  FARMER: 'farmer', // 村民

  in_roles(/*myRoles: string|array, roleA, roleC, roleC...*/)
  {
    if(arguments.length <= 1)
      return false;
    // if(!Array.isArray(myRoles))
    //   myRoles = myRoles.split(',');
    // return myRoles.indexOf(requireRole) !== -1;
    let myRoles = arguments[0];
    if(!Array.isArray(myRoles))
      myRoles = myRoles.split(',');
    for(let i = 1; i < arguments.length; i++)
    {
      let data = arguments[i];
      if(!data)
        continue;
      if(!Array.isArray(data))
        data = data.split(',');
      for(let r of data)
      {
        if(myRoles.includes(r))
          return true;
      }
    }
    return false;
  },
};

export function user_in_roles(/*roleA, roleC, roleC...*/)
{
  if(arguments.length < 1)
    return false;
  //console.log(getUserRoles());
  return ROLE.in_roles(getUserRoles(), ...arguments);
}

// 用户是否是系统管理员
export function user_is_admin()
{
  return ROLE.in_roles(getUserRoles(), ROLE.ADMIN);
}

// 用户是否是镇级管理员以上角色
export function user_is_above_town()
{
  return user_in_roles(ROLE.TOWN, ROLE.COMMON, ROLE.ADMIN);
}

// 用户是否是村级管理员以上角色
export function user_is_above_village()
{
  return user_in_roles(ROLE.VILLAGE, ROLE.TOWN, ROLE.COMMON, ROLE.ADMIN);
}
