Utdrag av användare och dess behörigheter

Här beskrivs hur du kan sätta upp och trigga ett utdrag av användare och dess roll + grupp tillhörigheter i csv format som enkelt kan öppnas i excel. Vi gör detta genom att använda Script/simple effekten tillsammans med några funktioner från Selfpoint API

Gå först till "Datadumpar" i den vänstra menyn och skapa en ny datadump, jag döper min till "Utdrag av användare". I effektkedkan väljer jag Script/simple effekten

Inne i effekten kan följande kod klistras in, denna använder standardiserade variebler som ska fungera i samtliga installationer. Jag har delat upp scriptet i 4 delar, varje del förklaras under scriptet.

let user = sp3.user()
let role = sp3.role()
let group = sp3.group()

//PART 1
//_________________________________________________________________
const adminsByEmails = await user.gets(
  "admin",   // The admin application has applicationRef = "admin".
             // Use _id for other applications.
)
//_________________________________________________________________

//PART 2
//_________________________________________________________________
let allRoles = await role.gets(
  null,// <-- Dont forget to put something here
       // Value does not matter.
  { asMap: true }
)
//_________________________________________________________________

//PART 3
//_________________________________________________________________
let allGroups = await group.gets(
  null, // <-- Dont forget to put something here
  {     // Value does not matter.
    fields: {
      name: 1,
      _id: 1,
      parentId: 1
    },
    asMap: true
  }
)
//_________________________________________________________________
  
  
//PART 4
//_________________________________________________________________
const list = adminsByEmails.map( i => {
    return {
      id: i._id?.toString() || "saknas",
      email: i.email || "saknas",
      mainRole: i.role || "saknas",
      roles: i.roles?.map(r => allRoles?.[r.toString()]?.name) || "saknas",
      groups: i.groups?.map(g => allGroups?.[g.toString()]?.name) || "saknas"
  }
})
//_________________________________________________________________


return list
  1. Hämtar alla användare i den valda applikationen med hjälp av user.gets() funktionen, denna ger samtliga users i den angedda applikationen. Vill du hämta användare från en annan applikation än admin så används applikationens ID. Applikationens id hittar du genom att navigera till den och kopiera från URL:en

  2. Hämtar alla roller med hjälp av role.gets() funktionen. Här används "asMap" parametern för enklare matchning mellan användare och rollnamn

  3. Hämtar alla grupper med hjälp av group.gets() funktionen. Här används "asMap" parametern för enklare matchning mellan användare och gruppnamn.

  4. Konstruerar en lista med alla användare med deras ID, email, huvudroll, sekundära roller samt grupper. Skulle någon av dessa värden vara tomma skrivs "saknas" till cellen i den resulterande csv filen.

Klart! Spara nu rapporten och kör den för att hämta ut användare och deras behörigheter i den applikation du valt i steg 1. Efter körningen kan filen laddas ner via "notifications" klockan till höger i toolbaren högst upp på sidan.

Last updated