8fffafde47
Translations are provided in *.arb* format. Some keys have descriptions (indicated by leading @-symbol). Descriptions should not be copied into the translation itself. Currently only English is supported (app_en.arb), but German is planned. Apparently weblate merged .arb support at some time, so it would be nice to enable community translations at some point.
150 lines
3.1 KiB
Dart
150 lines
3.1 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
|
// implementation of permission types
|
|
// according to the server permissions.ts
|
|
// https://codeberg.org/outbag/server/src/branch/dev/src/server/permissions.ts
|
|
|
|
// same as javascript 0b prefix
|
|
// pronounced o-b
|
|
int oB(String binary) {
|
|
return int.parse(binary, radix: 2);
|
|
}
|
|
|
|
class ServerPermission {
|
|
static int get none {
|
|
return oB("0000000000000000");
|
|
}
|
|
|
|
// default permission set
|
|
static int get def {
|
|
return oB("0000000000000011");
|
|
}
|
|
|
|
static int get canUseAPI {
|
|
return oB("0000000000000001");
|
|
}
|
|
|
|
static int get provideCert {
|
|
return oB("0000000000000010");
|
|
}
|
|
|
|
static int get manageOTA {
|
|
return oB("0000010000000000");
|
|
}
|
|
|
|
static int get manageServerProductList {
|
|
return oB("0000100000000000");
|
|
}
|
|
|
|
static int get viewUsersAndLists {
|
|
return oB("0001000000000000");
|
|
}
|
|
|
|
static int get editSettings {
|
|
return oB("0010000000000000");
|
|
}
|
|
|
|
static int get editPermissions {
|
|
return oB("0100000000000000");
|
|
}
|
|
|
|
static int get editUsers {
|
|
return oB("1000000000000000");
|
|
}
|
|
|
|
static int get allManagement {
|
|
return oB("1111110000000000");
|
|
}
|
|
|
|
static int get all {
|
|
return oB("1111111111111111");
|
|
}
|
|
}
|
|
|
|
class RoomPermission {
|
|
static int get addArticles {
|
|
return oB("0000001");
|
|
}
|
|
|
|
static int get removeArticles {
|
|
return oB("0000010");
|
|
}
|
|
|
|
static int get listGroupsItems {
|
|
return oB("0000100");
|
|
}
|
|
|
|
static int get changeMeta {
|
|
return oB("0001000");
|
|
}
|
|
|
|
static int get ota {
|
|
return oB("0010000");
|
|
}
|
|
|
|
static int get changeAdmin {
|
|
return oB("0100000");
|
|
}
|
|
|
|
static int get manageMembers {
|
|
return oB("1000000");
|
|
}
|
|
|
|
static List<int> get asList {
|
|
return [
|
|
addArticles,
|
|
removeArticles,
|
|
listGroupsItems,
|
|
changeMeta,
|
|
ota,
|
|
changeAdmin,
|
|
manageMembers
|
|
];
|
|
}
|
|
|
|
static String name(int permission, BuildContext context) {
|
|
final trans = AppLocalizations.of(context);
|
|
|
|
switch (permission) {
|
|
case 1:
|
|
return trans!.roomPermissionAddArticles;
|
|
case 2:
|
|
return trans!.roomPermissionRemoveArticles;
|
|
case 4:
|
|
return trans!.roomPermissionList;
|
|
case 8:
|
|
return trans!.roomPermissionChangeMeta;
|
|
case 16:
|
|
return trans!.roomPermissionManageOTA;
|
|
case 32:
|
|
return trans!.roomPermissionManageAdmins;
|
|
case 64:
|
|
return trans!.roomPermissionManageMembers;
|
|
}
|
|
|
|
return trans!.roomPermissionUnknown;
|
|
}
|
|
|
|
static String describe(int permission, BuildContext context) {
|
|
final trans = AppLocalizations.of(context);
|
|
|
|
switch (permission) {
|
|
case 1:
|
|
return trans!.roomPermissionAddArticlesSubtitle;
|
|
case 2:
|
|
return trans!.roomPermissionRemoveArticlesSubtitle;
|
|
case 4:
|
|
return trans!.roomPermissionListSubtitle;
|
|
case 8:
|
|
return trans!.roomPermissionChangeMetaSubtitle;
|
|
case 16:
|
|
return trans!.roomPermissionManageOTASubtitle;
|
|
case 32:
|
|
return trans!.roomPermissionManageAdminsSubtitle;
|
|
case 64:
|
|
return trans!.roomPermissionManageMembersSubtitle;
|
|
}
|
|
|
|
return trans!.roomPermissionUnknownSubtitle;
|
|
}
|
|
}
|