MCPcopy Create free account
hub / github.com/error311/FileRise / loadUserPermissionsList

Function loadUserPermissionsList

public/js/adminFolderAccess.js:1240–1495  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1238}
1239
1240async function loadUserPermissionsList() {
1241 const listContainer = document.getElementById("userPermissionsList");
1242 if (!listContainer) return;
1243 listContainer.innerHTML = `<p>${t("loading")}…</p>`;
1244 const sourceId = getFolderAccessSourceId();
1245
1246 try {
1247 const [usersRes, groupsMap] = await Promise.all([
1248 fetch("/api/admin/getUsers.php", { credentials: "include" }).then(safeJson),
1249 fetchAllGroups().catch(() => ({}))
1250 ]);
1251
1252 const users = Array.isArray(usersRes) ? usersRes : (usersRes.users || []);
1253 const groups = groupsMap && typeof groupsMap === "object" ? groupsMap : {};
1254
1255 if (!users.length && !Object.keys(groups).length) {
1256 listContainer.innerHTML = `<p>${t("no_users_found")}</p>`;
1257 return;
1258 }
1259
1260 __groupsCache = groups || {};
1261
1262 const folders = await getAllFolders(true, sourceId);
1263 const orderedFolders = ["root", ...folders.filter(f => f !== "root")];
1264
1265 const userGroupMap = {};
1266 Object.keys(groups).forEach(gName => {
1267 const g = groups[gName] || {};
1268 const members = Array.isArray(g.members) ? g.members : [];
1269 members.forEach(m => {
1270 const u = String(m || "").trim();
1271 if (!u) return;
1272 if (!userGroupMap[u]) userGroupMap[u] = [];
1273 userGroupMap[u].push(gName);
1274 });
1275 });
1276
1277 listContainer.innerHTML = "";
1278
1279 const groupNames = Object.keys(groups).sort((a, b) => a.localeCompare(b));
1280 if (groupNames.length) {
1281 const groupHeader = document.createElement("div");
1282 groupHeader.className = "muted";
1283 groupHeader.style.margin = "4px 0 6px";
1284 groupHeader.textContent = tf("groups_header", "Groups");
1285 listContainer.appendChild(groupHeader);
1286
1287 groupNames.forEach(name => {
1288 const g = groups[name] || {};
1289 const label = g.label || name;
1290 const members = Array.isArray(g.members) ? g.members : [];
1291 const membersSummary = members.length
1292 ? members.join(", ")
1293 : tf("no_members", "No members yet");
1294
1295 const row = document.createElement("div");
1296 row.classList.add("user-permission-row", "group-permission-row");
1297 row.setAttribute("data-group-name", name);

Callers 1

openUserPermissionsModalFunction · 0.70

Calls 7

tFunction · 0.85
getFolderAccessSourceIdFunction · 0.85
fetchAllGroupsFunction · 0.85
getAllFoldersFunction · 0.85
isAdminUserFunction · 0.85
tfFunction · 0.70
toggleOpenFunction · 0.70

Tested by

no test coverage detected