github.com/mattermosttest/mattermost-server/v5@v5.0.0-20200917143240-9dfa12e121f9/model/permission.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package model 5 6 const ( 7 PERMISSION_SCOPE_SYSTEM = "system_scope" 8 PERMISSION_SCOPE_TEAM = "team_scope" 9 PERMISSION_SCOPE_CHANNEL = "channel_scope" 10 ) 11 12 type Permission struct { 13 Id string `json:"id"` 14 Name string `json:"name"` 15 Description string `json:"description"` 16 Scope string `json:"scope"` 17 } 18 19 var PERMISSION_INVITE_USER *Permission 20 var PERMISSION_ADD_USER_TO_TEAM *Permission 21 var PERMISSION_USE_SLASH_COMMANDS *Permission 22 var PERMISSION_MANAGE_SLASH_COMMANDS *Permission 23 var PERMISSION_MANAGE_OTHERS_SLASH_COMMANDS *Permission 24 var PERMISSION_CREATE_PUBLIC_CHANNEL *Permission 25 var PERMISSION_CREATE_PRIVATE_CHANNEL *Permission 26 var PERMISSION_MANAGE_PUBLIC_CHANNEL_MEMBERS *Permission 27 var PERMISSION_MANAGE_PRIVATE_CHANNEL_MEMBERS *Permission 28 var PERMISSION_ASSIGN_SYSTEM_ADMIN_ROLE *Permission 29 var PERMISSION_MANAGE_ROLES *Permission 30 var PERMISSION_MANAGE_TEAM_ROLES *Permission 31 var PERMISSION_MANAGE_CHANNEL_ROLES *Permission 32 var PERMISSION_CREATE_DIRECT_CHANNEL *Permission 33 var PERMISSION_CREATE_GROUP_CHANNEL *Permission 34 var PERMISSION_MANAGE_PUBLIC_CHANNEL_PROPERTIES *Permission 35 var PERMISSION_MANAGE_PRIVATE_CHANNEL_PROPERTIES *Permission 36 var PERMISSION_LIST_PUBLIC_TEAMS *Permission 37 var PERMISSION_JOIN_PUBLIC_TEAMS *Permission 38 var PERMISSION_LIST_PRIVATE_TEAMS *Permission 39 var PERMISSION_JOIN_PRIVATE_TEAMS *Permission 40 var PERMISSION_LIST_TEAM_CHANNELS *Permission 41 var PERMISSION_JOIN_PUBLIC_CHANNELS *Permission 42 var PERMISSION_DELETE_PUBLIC_CHANNEL *Permission 43 var PERMISSION_DELETE_PRIVATE_CHANNEL *Permission 44 var PERMISSION_EDIT_OTHER_USERS *Permission 45 var PERMISSION_READ_CHANNEL *Permission 46 var PERMISSION_READ_PUBLIC_CHANNEL *Permission 47 var PERMISSION_ADD_REACTION *Permission 48 var PERMISSION_REMOVE_REACTION *Permission 49 var PERMISSION_REMOVE_OTHERS_REACTIONS *Permission 50 var PERMISSION_PERMANENT_DELETE_USER *Permission 51 var PERMISSION_UPLOAD_FILE *Permission 52 var PERMISSION_GET_PUBLIC_LINK *Permission 53 var PERMISSION_MANAGE_WEBHOOKS *Permission 54 var PERMISSION_MANAGE_OTHERS_WEBHOOKS *Permission 55 var PERMISSION_MANAGE_INCOMING_WEBHOOKS *Permission 56 var PERMISSION_MANAGE_OUTGOING_WEBHOOKS *Permission 57 var PERMISSION_MANAGE_OTHERS_INCOMING_WEBHOOKS *Permission 58 var PERMISSION_MANAGE_OTHERS_OUTGOING_WEBHOOKS *Permission 59 var PERMISSION_MANAGE_OAUTH *Permission 60 var PERMISSION_MANAGE_SYSTEM_WIDE_OAUTH *Permission 61 var PERMISSION_MANAGE_EMOJIS *Permission 62 var PERMISSION_MANAGE_OTHERS_EMOJIS *Permission 63 var PERMISSION_CREATE_EMOJIS *Permission 64 var PERMISSION_DELETE_EMOJIS *Permission 65 var PERMISSION_DELETE_OTHERS_EMOJIS *Permission 66 var PERMISSION_CREATE_POST *Permission 67 var PERMISSION_CREATE_POST_PUBLIC *Permission 68 var PERMISSION_CREATE_POST_EPHEMERAL *Permission 69 var PERMISSION_EDIT_POST *Permission 70 var PERMISSION_EDIT_OTHERS_POSTS *Permission 71 var PERMISSION_DELETE_POST *Permission 72 var PERMISSION_DELETE_OTHERS_POSTS *Permission 73 var PERMISSION_REMOVE_USER_FROM_TEAM *Permission 74 var PERMISSION_CREATE_TEAM *Permission 75 var PERMISSION_MANAGE_TEAM *Permission 76 var PERMISSION_IMPORT_TEAM *Permission 77 var PERMISSION_VIEW_TEAM *Permission 78 var PERMISSION_LIST_USERS_WITHOUT_TEAM *Permission 79 var PERMISSION_MANAGE_JOBS *Permission 80 var PERMISSION_CREATE_USER_ACCESS_TOKEN *Permission 81 var PERMISSION_READ_USER_ACCESS_TOKEN *Permission 82 var PERMISSION_REVOKE_USER_ACCESS_TOKEN *Permission 83 var PERMISSION_CREATE_BOT *Permission 84 var PERMISSION_ASSIGN_BOT *Permission 85 var PERMISSION_READ_BOTS *Permission 86 var PERMISSION_READ_OTHERS_BOTS *Permission 87 var PERMISSION_MANAGE_BOTS *Permission 88 var PERMISSION_MANAGE_OTHERS_BOTS *Permission 89 var PERMISSION_VIEW_MEMBERS *Permission 90 var PERMISSION_INVITE_GUEST *Permission 91 var PERMISSION_PROMOTE_GUEST *Permission 92 var PERMISSION_DEMOTE_TO_GUEST *Permission 93 var PERMISSION_USE_CHANNEL_MENTIONS *Permission 94 var PERMISSION_USE_GROUP_MENTIONS *Permission 95 96 // General permission that encompasses all system admin functions 97 // in the future this could be broken up to allow access to some 98 // admin functions but not others 99 var PERMISSION_MANAGE_SYSTEM *Permission 100 101 var ALL_PERMISSIONS []*Permission 102 103 var CHANNEL_MODERATED_PERMISSIONS []string 104 var CHANNEL_MODERATED_PERMISSIONS_MAP map[string]string 105 106 func initializePermissions() { 107 PERMISSION_INVITE_USER = &Permission{ 108 "invite_user", 109 "authentication.permissions.team_invite_user.name", 110 "authentication.permissions.team_invite_user.description", 111 PERMISSION_SCOPE_TEAM, 112 } 113 PERMISSION_ADD_USER_TO_TEAM = &Permission{ 114 "add_user_to_team", 115 "authentication.permissions.add_user_to_team.name", 116 "authentication.permissions.add_user_to_team.description", 117 PERMISSION_SCOPE_TEAM, 118 } 119 PERMISSION_USE_SLASH_COMMANDS = &Permission{ 120 "use_slash_commands", 121 "authentication.permissions.team_use_slash_commands.name", 122 "authentication.permissions.team_use_slash_commands.description", 123 PERMISSION_SCOPE_CHANNEL, 124 } 125 PERMISSION_MANAGE_SLASH_COMMANDS = &Permission{ 126 "manage_slash_commands", 127 "authentication.permissions.manage_slash_commands.name", 128 "authentication.permissions.manage_slash_commands.description", 129 PERMISSION_SCOPE_TEAM, 130 } 131 PERMISSION_MANAGE_OTHERS_SLASH_COMMANDS = &Permission{ 132 "manage_others_slash_commands", 133 "authentication.permissions.manage_others_slash_commands.name", 134 "authentication.permissions.manage_others_slash_commands.description", 135 PERMISSION_SCOPE_TEAM, 136 } 137 PERMISSION_CREATE_PUBLIC_CHANNEL = &Permission{ 138 "create_public_channel", 139 "authentication.permissions.create_public_channel.name", 140 "authentication.permissions.create_public_channel.description", 141 PERMISSION_SCOPE_TEAM, 142 } 143 PERMISSION_CREATE_PRIVATE_CHANNEL = &Permission{ 144 "create_private_channel", 145 "authentication.permissions.create_private_channel.name", 146 "authentication.permissions.create_private_channel.description", 147 PERMISSION_SCOPE_TEAM, 148 } 149 PERMISSION_MANAGE_PUBLIC_CHANNEL_MEMBERS = &Permission{ 150 "manage_public_channel_members", 151 "authentication.permissions.manage_public_channel_members.name", 152 "authentication.permissions.manage_public_channel_members.description", 153 PERMISSION_SCOPE_CHANNEL, 154 } 155 PERMISSION_MANAGE_PRIVATE_CHANNEL_MEMBERS = &Permission{ 156 "manage_private_channel_members", 157 "authentication.permissions.manage_private_channel_members.name", 158 "authentication.permissions.manage_private_channel_members.description", 159 PERMISSION_SCOPE_CHANNEL, 160 } 161 PERMISSION_ASSIGN_SYSTEM_ADMIN_ROLE = &Permission{ 162 "assign_system_admin_role", 163 "authentication.permissions.assign_system_admin_role.name", 164 "authentication.permissions.assign_system_admin_role.description", 165 PERMISSION_SCOPE_SYSTEM, 166 } 167 PERMISSION_MANAGE_ROLES = &Permission{ 168 "manage_roles", 169 "authentication.permissions.manage_roles.name", 170 "authentication.permissions.manage_roles.description", 171 PERMISSION_SCOPE_SYSTEM, 172 } 173 PERMISSION_MANAGE_TEAM_ROLES = &Permission{ 174 "manage_team_roles", 175 "authentication.permissions.manage_team_roles.name", 176 "authentication.permissions.manage_team_roles.description", 177 PERMISSION_SCOPE_TEAM, 178 } 179 PERMISSION_MANAGE_CHANNEL_ROLES = &Permission{ 180 "manage_channel_roles", 181 "authentication.permissions.manage_channel_roles.name", 182 "authentication.permissions.manage_channel_roles.description", 183 PERMISSION_SCOPE_CHANNEL, 184 } 185 PERMISSION_MANAGE_SYSTEM = &Permission{ 186 "manage_system", 187 "authentication.permissions.manage_system.name", 188 "authentication.permissions.manage_system.description", 189 PERMISSION_SCOPE_SYSTEM, 190 } 191 PERMISSION_CREATE_DIRECT_CHANNEL = &Permission{ 192 "create_direct_channel", 193 "authentication.permissions.create_direct_channel.name", 194 "authentication.permissions.create_direct_channel.description", 195 PERMISSION_SCOPE_SYSTEM, 196 } 197 PERMISSION_CREATE_GROUP_CHANNEL = &Permission{ 198 "create_group_channel", 199 "authentication.permissions.create_group_channel.name", 200 "authentication.permissions.create_group_channel.description", 201 PERMISSION_SCOPE_SYSTEM, 202 } 203 PERMISSION_MANAGE_PUBLIC_CHANNEL_PROPERTIES = &Permission{ 204 "manage_public_channel_properties", 205 "authentication.permissions.manage_public_channel_properties.name", 206 "authentication.permissions.manage_public_channel_properties.description", 207 PERMISSION_SCOPE_CHANNEL, 208 } 209 PERMISSION_MANAGE_PRIVATE_CHANNEL_PROPERTIES = &Permission{ 210 "manage_private_channel_properties", 211 "authentication.permissions.manage_private_channel_properties.name", 212 "authentication.permissions.manage_private_channel_properties.description", 213 PERMISSION_SCOPE_CHANNEL, 214 } 215 PERMISSION_LIST_PUBLIC_TEAMS = &Permission{ 216 "list_public_teams", 217 "authentication.permissions.list_public_teams.name", 218 "authentication.permissions.list_public_teams.description", 219 PERMISSION_SCOPE_SYSTEM, 220 } 221 PERMISSION_JOIN_PUBLIC_TEAMS = &Permission{ 222 "join_public_teams", 223 "authentication.permissions.join_public_teams.name", 224 "authentication.permissions.join_public_teams.description", 225 PERMISSION_SCOPE_SYSTEM, 226 } 227 PERMISSION_LIST_PRIVATE_TEAMS = &Permission{ 228 "list_private_teams", 229 "authentication.permissions.list_private_teams.name", 230 "authentication.permissions.list_private_teams.description", 231 PERMISSION_SCOPE_SYSTEM, 232 } 233 PERMISSION_JOIN_PRIVATE_TEAMS = &Permission{ 234 "join_private_teams", 235 "authentication.permissions.join_private_teams.name", 236 "authentication.permissions.join_private_teams.description", 237 PERMISSION_SCOPE_SYSTEM, 238 } 239 PERMISSION_LIST_TEAM_CHANNELS = &Permission{ 240 "list_team_channels", 241 "authentication.permissions.list_team_channels.name", 242 "authentication.permissions.list_team_channels.description", 243 PERMISSION_SCOPE_TEAM, 244 } 245 PERMISSION_JOIN_PUBLIC_CHANNELS = &Permission{ 246 "join_public_channels", 247 "authentication.permissions.join_public_channels.name", 248 "authentication.permissions.join_public_channels.description", 249 PERMISSION_SCOPE_TEAM, 250 } 251 PERMISSION_DELETE_PUBLIC_CHANNEL = &Permission{ 252 "delete_public_channel", 253 "authentication.permissions.delete_public_channel.name", 254 "authentication.permissions.delete_public_channel.description", 255 PERMISSION_SCOPE_CHANNEL, 256 } 257 PERMISSION_DELETE_PRIVATE_CHANNEL = &Permission{ 258 "delete_private_channel", 259 "authentication.permissions.delete_private_channel.name", 260 "authentication.permissions.delete_private_channel.description", 261 PERMISSION_SCOPE_CHANNEL, 262 } 263 PERMISSION_EDIT_OTHER_USERS = &Permission{ 264 "edit_other_users", 265 "authentication.permissions.edit_other_users.name", 266 "authentication.permissions.edit_other_users.description", 267 PERMISSION_SCOPE_SYSTEM, 268 } 269 PERMISSION_READ_CHANNEL = &Permission{ 270 "read_channel", 271 "authentication.permissions.read_channel.name", 272 "authentication.permissions.read_channel.description", 273 PERMISSION_SCOPE_CHANNEL, 274 } 275 PERMISSION_READ_PUBLIC_CHANNEL = &Permission{ 276 "read_public_channel", 277 "authentication.permissions.read_public_channel.name", 278 "authentication.permissions.read_public_channel.description", 279 PERMISSION_SCOPE_TEAM, 280 } 281 PERMISSION_ADD_REACTION = &Permission{ 282 "add_reaction", 283 "authentication.permissions.add_reaction.name", 284 "authentication.permissions.add_reaction.description", 285 PERMISSION_SCOPE_CHANNEL, 286 } 287 PERMISSION_REMOVE_REACTION = &Permission{ 288 "remove_reaction", 289 "authentication.permissions.remove_reaction.name", 290 "authentication.permissions.remove_reaction.description", 291 PERMISSION_SCOPE_CHANNEL, 292 } 293 PERMISSION_REMOVE_OTHERS_REACTIONS = &Permission{ 294 "remove_others_reactions", 295 "authentication.permissions.remove_others_reactions.name", 296 "authentication.permissions.remove_others_reactions.description", 297 PERMISSION_SCOPE_CHANNEL, 298 } 299 // DEPRECATED 300 PERMISSION_PERMANENT_DELETE_USER = &Permission{ 301 "permanent_delete_user", 302 "authentication.permissions.permanent_delete_user.name", 303 "authentication.permissions.permanent_delete_user.description", 304 PERMISSION_SCOPE_SYSTEM, 305 } 306 PERMISSION_UPLOAD_FILE = &Permission{ 307 "upload_file", 308 "authentication.permissions.upload_file.name", 309 "authentication.permissions.upload_file.description", 310 PERMISSION_SCOPE_CHANNEL, 311 } 312 PERMISSION_GET_PUBLIC_LINK = &Permission{ 313 "get_public_link", 314 "authentication.permissions.get_public_link.name", 315 "authentication.permissions.get_public_link.description", 316 PERMISSION_SCOPE_SYSTEM, 317 } 318 // DEPRECATED 319 PERMISSION_MANAGE_WEBHOOKS = &Permission{ 320 "manage_webhooks", 321 "authentication.permissions.manage_webhooks.name", 322 "authentication.permissions.manage_webhooks.description", 323 PERMISSION_SCOPE_TEAM, 324 } 325 // DEPRECATED 326 PERMISSION_MANAGE_OTHERS_WEBHOOKS = &Permission{ 327 "manage_others_webhooks", 328 "authentication.permissions.manage_others_webhooks.name", 329 "authentication.permissions.manage_others_webhooks.description", 330 PERMISSION_SCOPE_TEAM, 331 } 332 PERMISSION_MANAGE_INCOMING_WEBHOOKS = &Permission{ 333 "manage_incoming_webhooks", 334 "authentication.permissions.manage_incoming_webhooks.name", 335 "authentication.permissions.manage_incoming_webhooks.description", 336 PERMISSION_SCOPE_TEAM, 337 } 338 PERMISSION_MANAGE_OUTGOING_WEBHOOKS = &Permission{ 339 "manage_outgoing_webhooks", 340 "authentication.permissions.manage_outgoing_webhooks.name", 341 "authentication.permissions.manage_outgoing_webhooks.description", 342 PERMISSION_SCOPE_TEAM, 343 } 344 PERMISSION_MANAGE_OTHERS_INCOMING_WEBHOOKS = &Permission{ 345 "manage_others_incoming_webhooks", 346 "authentication.permissions.manage_others_incoming_webhooks.name", 347 "authentication.permissions.manage_others_incoming_webhooks.description", 348 PERMISSION_SCOPE_TEAM, 349 } 350 PERMISSION_MANAGE_OTHERS_OUTGOING_WEBHOOKS = &Permission{ 351 "manage_others_outgoing_webhooks", 352 "authentication.permissions.manage_others_outgoing_webhooks.name", 353 "authentication.permissions.manage_others_outgoing_webhooks.description", 354 PERMISSION_SCOPE_TEAM, 355 } 356 PERMISSION_MANAGE_OAUTH = &Permission{ 357 "manage_oauth", 358 "authentication.permissions.manage_oauth.name", 359 "authentication.permissions.manage_oauth.description", 360 PERMISSION_SCOPE_SYSTEM, 361 } 362 PERMISSION_MANAGE_SYSTEM_WIDE_OAUTH = &Permission{ 363 "manage_system_wide_oauth", 364 "authentication.permissions.manage_system_wide_oauth.name", 365 "authentication.permissions.manage_system_wide_oauth.description", 366 PERMISSION_SCOPE_SYSTEM, 367 } 368 // DEPRECATED 369 PERMISSION_MANAGE_EMOJIS = &Permission{ 370 "manage_emojis", 371 "authentication.permissions.manage_emojis.name", 372 "authentication.permissions.manage_emojis.description", 373 PERMISSION_SCOPE_TEAM, 374 } 375 // DEPRECATED 376 PERMISSION_MANAGE_OTHERS_EMOJIS = &Permission{ 377 "manage_others_emojis", 378 "authentication.permissions.manage_others_emojis.name", 379 "authentication.permissions.manage_others_emojis.description", 380 PERMISSION_SCOPE_TEAM, 381 } 382 PERMISSION_CREATE_EMOJIS = &Permission{ 383 "create_emojis", 384 "authentication.permissions.create_emojis.name", 385 "authentication.permissions.create_emojis.description", 386 PERMISSION_SCOPE_TEAM, 387 } 388 PERMISSION_DELETE_EMOJIS = &Permission{ 389 "delete_emojis", 390 "authentication.permissions.delete_emojis.name", 391 "authentication.permissions.delete_emojis.description", 392 PERMISSION_SCOPE_TEAM, 393 } 394 PERMISSION_DELETE_OTHERS_EMOJIS = &Permission{ 395 "delete_others_emojis", 396 "authentication.permissions.delete_others_emojis.name", 397 "authentication.permissions.delete_others_emojis.description", 398 PERMISSION_SCOPE_TEAM, 399 } 400 PERMISSION_CREATE_POST = &Permission{ 401 "create_post", 402 "authentication.permissions.create_post.name", 403 "authentication.permissions.create_post.description", 404 PERMISSION_SCOPE_CHANNEL, 405 } 406 PERMISSION_CREATE_POST_PUBLIC = &Permission{ 407 "create_post_public", 408 "authentication.permissions.create_post_public.name", 409 "authentication.permissions.create_post_public.description", 410 PERMISSION_SCOPE_CHANNEL, 411 } 412 PERMISSION_CREATE_POST_EPHEMERAL = &Permission{ 413 "create_post_ephemeral", 414 "authentication.permissions.create_post_ephemeral.name", 415 "authentication.permissions.create_post_ephemeral.description", 416 PERMISSION_SCOPE_CHANNEL, 417 } 418 PERMISSION_EDIT_POST = &Permission{ 419 "edit_post", 420 "authentication.permissions.edit_post.name", 421 "authentication.permissions.edit_post.description", 422 PERMISSION_SCOPE_CHANNEL, 423 } 424 PERMISSION_EDIT_OTHERS_POSTS = &Permission{ 425 "edit_others_posts", 426 "authentication.permissions.edit_others_posts.name", 427 "authentication.permissions.edit_others_posts.description", 428 PERMISSION_SCOPE_CHANNEL, 429 } 430 PERMISSION_DELETE_POST = &Permission{ 431 "delete_post", 432 "authentication.permissions.delete_post.name", 433 "authentication.permissions.delete_post.description", 434 PERMISSION_SCOPE_CHANNEL, 435 } 436 PERMISSION_DELETE_OTHERS_POSTS = &Permission{ 437 "delete_others_posts", 438 "authentication.permissions.delete_others_posts.name", 439 "authentication.permissions.delete_others_posts.description", 440 PERMISSION_SCOPE_CHANNEL, 441 } 442 PERMISSION_REMOVE_USER_FROM_TEAM = &Permission{ 443 "remove_user_from_team", 444 "authentication.permissions.remove_user_from_team.name", 445 "authentication.permissions.remove_user_from_team.description", 446 PERMISSION_SCOPE_TEAM, 447 } 448 PERMISSION_CREATE_TEAM = &Permission{ 449 "create_team", 450 "authentication.permissions.create_team.name", 451 "authentication.permissions.create_team.description", 452 PERMISSION_SCOPE_SYSTEM, 453 } 454 PERMISSION_MANAGE_TEAM = &Permission{ 455 "manage_team", 456 "authentication.permissions.manage_team.name", 457 "authentication.permissions.manage_team.description", 458 PERMISSION_SCOPE_TEAM, 459 } 460 PERMISSION_IMPORT_TEAM = &Permission{ 461 "import_team", 462 "authentication.permissions.import_team.name", 463 "authentication.permissions.import_team.description", 464 PERMISSION_SCOPE_TEAM, 465 } 466 PERMISSION_VIEW_TEAM = &Permission{ 467 "view_team", 468 "authentication.permissions.view_team.name", 469 "authentication.permissions.view_team.description", 470 PERMISSION_SCOPE_TEAM, 471 } 472 PERMISSION_LIST_USERS_WITHOUT_TEAM = &Permission{ 473 "list_users_without_team", 474 "authentication.permissions.list_users_without_team.name", 475 "authentication.permissions.list_users_without_team.description", 476 PERMISSION_SCOPE_SYSTEM, 477 } 478 PERMISSION_CREATE_USER_ACCESS_TOKEN = &Permission{ 479 "create_user_access_token", 480 "authentication.permissions.create_user_access_token.name", 481 "authentication.permissions.create_user_access_token.description", 482 PERMISSION_SCOPE_SYSTEM, 483 } 484 PERMISSION_READ_USER_ACCESS_TOKEN = &Permission{ 485 "read_user_access_token", 486 "authentication.permissions.read_user_access_token.name", 487 "authentication.permissions.read_user_access_token.description", 488 PERMISSION_SCOPE_SYSTEM, 489 } 490 PERMISSION_REVOKE_USER_ACCESS_TOKEN = &Permission{ 491 "revoke_user_access_token", 492 "authentication.permissions.revoke_user_access_token.name", 493 "authentication.permissions.revoke_user_access_token.description", 494 PERMISSION_SCOPE_SYSTEM, 495 } 496 PERMISSION_CREATE_BOT = &Permission{ 497 "create_bot", 498 "authentication.permissions.create_bot.name", 499 "authentication.permissions.create_bot.description", 500 PERMISSION_SCOPE_SYSTEM, 501 } 502 PERMISSION_ASSIGN_BOT = &Permission{ 503 "assign_bot", 504 "authentication.permissions.assign_bot.name", 505 "authentication.permissions.assign_bot.description", 506 PERMISSION_SCOPE_SYSTEM, 507 } 508 PERMISSION_READ_BOTS = &Permission{ 509 "read_bots", 510 "authentication.permissions.read_bots.name", 511 "authentication.permissions.read_bots.description", 512 PERMISSION_SCOPE_SYSTEM, 513 } 514 PERMISSION_READ_OTHERS_BOTS = &Permission{ 515 "read_others_bots", 516 "authentication.permissions.read_others_bots.name", 517 "authentication.permissions.read_others_bots.description", 518 PERMISSION_SCOPE_SYSTEM, 519 } 520 PERMISSION_MANAGE_BOTS = &Permission{ 521 "manage_bots", 522 "authentication.permissions.manage_bots.name", 523 "authentication.permissions.manage_bots.description", 524 PERMISSION_SCOPE_SYSTEM, 525 } 526 PERMISSION_MANAGE_OTHERS_BOTS = &Permission{ 527 "manage_others_bots", 528 "authentication.permissions.manage_others_bots.name", 529 "authentication.permissions.manage_others_bots.description", 530 PERMISSION_SCOPE_SYSTEM, 531 } 532 PERMISSION_MANAGE_JOBS = &Permission{ 533 "manage_jobs", 534 "authentication.permisssions.manage_jobs.name", 535 "authentication.permisssions.manage_jobs.description", 536 PERMISSION_SCOPE_SYSTEM, 537 } 538 PERMISSION_VIEW_MEMBERS = &Permission{ 539 "view_members", 540 "authentication.permisssions.view_members.name", 541 "authentication.permisssions.view_members.description", 542 PERMISSION_SCOPE_TEAM, 543 } 544 PERMISSION_INVITE_GUEST = &Permission{ 545 "invite_guest", 546 "authentication.permissions.invite_guest.name", 547 "authentication.permissions.invite_guest.description", 548 PERMISSION_SCOPE_TEAM, 549 } 550 PERMISSION_PROMOTE_GUEST = &Permission{ 551 "promote_guest", 552 "authentication.permissions.promote_guest.name", 553 "authentication.permissions.promote_guest.description", 554 PERMISSION_SCOPE_SYSTEM, 555 } 556 557 PERMISSION_DEMOTE_TO_GUEST = &Permission{ 558 "demote_to_guest", 559 "authentication.permissions.demote_to_guest.name", 560 "authentication.permissions.demote_to_guest.description", 561 PERMISSION_SCOPE_SYSTEM, 562 } 563 564 PERMISSION_USE_CHANNEL_MENTIONS = &Permission{ 565 "use_channel_mentions", 566 "authentication.permissions.use_channel_mentions.name", 567 "authentication.permissions.use_channel_mentions.description", 568 PERMISSION_SCOPE_CHANNEL, 569 } 570 571 PERMISSION_USE_GROUP_MENTIONS = &Permission{ 572 "use_group_mentions", 573 "authentication.permissions.use_group_mentions.name", 574 "authentication.permissions.use_group_mentions.description", 575 PERMISSION_SCOPE_CHANNEL, 576 } 577 578 ALL_PERMISSIONS = []*Permission{ 579 PERMISSION_INVITE_USER, 580 PERMISSION_ADD_USER_TO_TEAM, 581 PERMISSION_USE_SLASH_COMMANDS, 582 PERMISSION_MANAGE_SLASH_COMMANDS, 583 PERMISSION_MANAGE_OTHERS_SLASH_COMMANDS, 584 PERMISSION_CREATE_PUBLIC_CHANNEL, 585 PERMISSION_CREATE_PRIVATE_CHANNEL, 586 PERMISSION_MANAGE_PUBLIC_CHANNEL_MEMBERS, 587 PERMISSION_MANAGE_PRIVATE_CHANNEL_MEMBERS, 588 PERMISSION_ASSIGN_SYSTEM_ADMIN_ROLE, 589 PERMISSION_MANAGE_ROLES, 590 PERMISSION_MANAGE_TEAM_ROLES, 591 PERMISSION_MANAGE_CHANNEL_ROLES, 592 PERMISSION_CREATE_DIRECT_CHANNEL, 593 PERMISSION_CREATE_GROUP_CHANNEL, 594 PERMISSION_MANAGE_PUBLIC_CHANNEL_PROPERTIES, 595 PERMISSION_MANAGE_PRIVATE_CHANNEL_PROPERTIES, 596 PERMISSION_LIST_PUBLIC_TEAMS, 597 PERMISSION_JOIN_PUBLIC_TEAMS, 598 PERMISSION_LIST_PRIVATE_TEAMS, 599 PERMISSION_JOIN_PRIVATE_TEAMS, 600 PERMISSION_LIST_TEAM_CHANNELS, 601 PERMISSION_JOIN_PUBLIC_CHANNELS, 602 PERMISSION_DELETE_PUBLIC_CHANNEL, 603 PERMISSION_DELETE_PRIVATE_CHANNEL, 604 PERMISSION_EDIT_OTHER_USERS, 605 PERMISSION_READ_CHANNEL, 606 PERMISSION_READ_PUBLIC_CHANNEL, 607 PERMISSION_ADD_REACTION, 608 PERMISSION_REMOVE_REACTION, 609 PERMISSION_REMOVE_OTHERS_REACTIONS, 610 PERMISSION_PERMANENT_DELETE_USER, 611 PERMISSION_UPLOAD_FILE, 612 PERMISSION_GET_PUBLIC_LINK, 613 PERMISSION_MANAGE_WEBHOOKS, 614 PERMISSION_MANAGE_OTHERS_WEBHOOKS, 615 PERMISSION_MANAGE_INCOMING_WEBHOOKS, 616 PERMISSION_MANAGE_OUTGOING_WEBHOOKS, 617 PERMISSION_MANAGE_OTHERS_INCOMING_WEBHOOKS, 618 PERMISSION_MANAGE_OTHERS_OUTGOING_WEBHOOKS, 619 PERMISSION_MANAGE_OAUTH, 620 PERMISSION_MANAGE_SYSTEM_WIDE_OAUTH, 621 PERMISSION_MANAGE_EMOJIS, 622 PERMISSION_MANAGE_OTHERS_EMOJIS, 623 PERMISSION_CREATE_EMOJIS, 624 PERMISSION_DELETE_EMOJIS, 625 PERMISSION_DELETE_OTHERS_EMOJIS, 626 PERMISSION_CREATE_POST, 627 PERMISSION_CREATE_POST_PUBLIC, 628 PERMISSION_CREATE_POST_EPHEMERAL, 629 PERMISSION_EDIT_POST, 630 PERMISSION_EDIT_OTHERS_POSTS, 631 PERMISSION_DELETE_POST, 632 PERMISSION_DELETE_OTHERS_POSTS, 633 PERMISSION_REMOVE_USER_FROM_TEAM, 634 PERMISSION_CREATE_TEAM, 635 PERMISSION_MANAGE_TEAM, 636 PERMISSION_IMPORT_TEAM, 637 PERMISSION_VIEW_TEAM, 638 PERMISSION_LIST_USERS_WITHOUT_TEAM, 639 PERMISSION_MANAGE_JOBS, 640 PERMISSION_CREATE_USER_ACCESS_TOKEN, 641 PERMISSION_READ_USER_ACCESS_TOKEN, 642 PERMISSION_REVOKE_USER_ACCESS_TOKEN, 643 PERMISSION_CREATE_BOT, 644 PERMISSION_READ_BOTS, 645 PERMISSION_READ_OTHERS_BOTS, 646 PERMISSION_MANAGE_BOTS, 647 PERMISSION_MANAGE_OTHERS_BOTS, 648 PERMISSION_MANAGE_SYSTEM, 649 PERMISSION_VIEW_MEMBERS, 650 PERMISSION_INVITE_GUEST, 651 PERMISSION_PROMOTE_GUEST, 652 PERMISSION_DEMOTE_TO_GUEST, 653 PERMISSION_USE_CHANNEL_MENTIONS, 654 PERMISSION_USE_GROUP_MENTIONS, 655 } 656 657 CHANNEL_MODERATED_PERMISSIONS = []string{ 658 PERMISSION_CREATE_POST.Id, 659 "create_reactions", 660 "manage_members", 661 PERMISSION_USE_CHANNEL_MENTIONS.Id, 662 } 663 664 CHANNEL_MODERATED_PERMISSIONS_MAP = map[string]string{ 665 PERMISSION_CREATE_POST.Id: CHANNEL_MODERATED_PERMISSIONS[0], 666 PERMISSION_ADD_REACTION.Id: CHANNEL_MODERATED_PERMISSIONS[1], 667 PERMISSION_REMOVE_REACTION.Id: CHANNEL_MODERATED_PERMISSIONS[1], 668 PERMISSION_MANAGE_PUBLIC_CHANNEL_MEMBERS.Id: CHANNEL_MODERATED_PERMISSIONS[2], 669 PERMISSION_MANAGE_PRIVATE_CHANNEL_MEMBERS.Id: CHANNEL_MODERATED_PERMISSIONS[2], 670 PERMISSION_USE_CHANNEL_MENTIONS.Id: CHANNEL_MODERATED_PERMISSIONS[3], 671 } 672 } 673 674 func init() { 675 initializePermissions() 676 }