// User Type Info... /** * Created by: sturm * Creation date: 09.11.2016 * * DXL Editor is provided by SODIUS (www.sodius.com) */ pragma encoding, "UTF-8" const string Empty[] = {} const string UserTypes[] = { "(all user)", "Standard", "Project Manager", "Database Manager", "Custom" } DB UTBox DBE UserTypeBox DBE UserDisabledToggle DBE UserListView DBE WriteFileButton DBE OutputFileName void fillColumns(DBE ulv, bool showDisaUser, int usrTypNbr) { User usr int i = 0 for usr in userList do { bool udisab = usr.disabled if (showDisaUser == false && udisab == true) continue UserClass uclass = usr.class string utype = stringOf(uclass) if (usrTypNbr != 0 && UserTypes[usrTypNbr] != utype) continue string uname = usr.name string uemail = usr.email bool uarch = usr.mayArchive bool uproj = usr.mayCreateTopLevelFolders bool ugroup = usr.mayEditGroupList bool uuser = usr.mayEditUserList bool umng = usr.mayManage bool upart = usr.mayPartition insert(ulv, i, uname, udisab ? iconUserDisabled : iconUser) set(ulv, i, 1, uemail) set(ulv, i, 2, uproj ? "X" : "") set(ulv, i, 3, uarch ? "X" : "") set(ulv, i, 4, upart ? "X" : "") set(ulv, i, 5, ugroup ? "X" : "") set(ulv, i, 6, uuser ? "X" : "") set(ulv, i, 7, umng ? "X" : "") i++ } } void writeToFile(const string fname, bool showDisaUser, int usrTypNbr) { Stream out = write(fname, CP_UTF8) int i for (i = 0; i < noElems(UserListView); i++) { int j for (j = 0; j < 7; j++) { out << getColumnValue(UserListView, i, j) ";" } out << getColumnValue(UserListView, i, 7) "\n" } close out infoBox(i " user types written to '" fname "'.") } void fillColumnsCB(DBE elem) { empty(UserListView) fillColumns(UserListView, get(UserDisabledToggle), get(UserTypeBox)) } void writeFileCB(DB elem) { string fname = get(OutputFileName) writeToFile(fname, get(UserDisabledToggle), get(UserTypeBox)) } void selectFilenameCB(DB elem) { DB fnBox = create "Select a file name" string uprof = getenv("USERPROFILE") OutputFileName = fileName(fnBox, uprof "\\Desktop\\" goodFileName (getDatabaseName) ".csv", "*.csv", "User types") DBE writeButton = apply(fnBox, "Write file", writeFileCB) show fnBox } int sortUserCB(string sOne, string sTwo) { return cistrcmp(sOne, sTwo) } UTBox = create "User Type Info" UserTypeBox = radioBox(UTBox, "Select user type ", UserTypes, 0) UserDisabledToggle = toggle(UTBox, "Show disabled users", false) UserListView = listView(UTBox, listViewOptionSortText, 923, 20, Empty) WriteFileButton = apply(UTBox, "Write to file", selectFilenameCB) realize UTBox set(UserTypeBox, fillColumnsCB) set(UserDisabledToggle, fillColumnsCB) insertColumn(UserListView, 0, "User", 100, iconNone) insertColumn(UserListView, 1, "Email", 200, iconNone) insertColumn(UserListView, 2, "Create projects", 100, iconNone) insertColumn(UserListView, 3, "Archive data", 100, iconNone) insertColumn(UserListView, 4, "Partition data", 100, iconNone) insertColumn(UserListView, 5, "Edit groups", 100, iconNone) insertColumn(UserListView, 6, "Edit user ", 100, iconNone) insertColumn(UserListView, 7, "Manage database", 100, iconNone) set(UserListView, 0, sortUserCB) set(UserListView, 1, sortUserCB) setSortColumn(UserListView, 0) fillColumns(UserListView, get(UserDisabledToggle), get(UserTypeBox)) show UTBox