private String editRolePermission(Operation op, Permission permission, IRole role) {
   IGuild parent = role.getGuild();
   DiscordGuild g =
       cacheService.findGuildById(parent.getID()).orElseGet(() -> new DiscordGuild(parent));
   DiscordRole edit = null;
   for (DiscordRole r : g.getRoles()) {
     if (r.getId().equals(role.getID())) {
       edit = r;
       break;
     }
   }
   if (edit == null) {
     edit = new DiscordRole(role);
     g.getRoles().add(edit);
   }
   if (edit.getName() == null) {
     edit.setName(role.getName());
   }
   changePermission(op, permission, edit);
   g = cacheService.saveGuild(g);
   log.info("Saving new guild/role permission settings: {}", g);
   permissionService.evict();
   return String.format(
       "Modified role %s: %s permission %s",
       edit.getName(), op.name().toLowerCase(), permission.getName());
 }
 public void mergeFrom(AccessSection section) {
   for (Permission src : section.getPermissions()) {
     Permission dst = getPermission(src.getName());
     if (dst != null) {
       dst.mergeFrom(src);
     } else {
       permissions.add(src);
     }
   }
 }
 private String editUserPermission(Operation op, Permission permission, IUser user) {
   DiscordUser u = cacheService.findUserById(user.getID()).orElseGet(() -> new DiscordUser(user));
   changePermission(op, permission, u);
   u = cacheService.saveUser(u);
   log.info("Saving new user permission settings: {}", u);
   permissionService.evict();
   return String.format(
       "Modified user %s: %s permission %s",
       u.getName(), op.name().toLowerCase(), permission.getName());
 }
  public void setPermissions(List<Permission> list) {
    Set<String> names = new HashSet<>();
    for (Permission p : list) {
      if (!names.add(p.getName().toLowerCase())) {
        throw new IllegalArgumentException();
      }
    }

    permissions = list;
  }
Example #5
0
  public void testGetSetting() {
    Setting setting = m_permission.getSetting();
    assertEquals(m_permission.getName(), setting.getName());
    assertTrue(setting.getType() instanceof BooleanSetting);

    Permission permission = new Permission();
    permission.setDefaultValue(true);
    assertEquals("ENABLE", permission.getSetting().getDefaultValue());
    assertTrue(permission.getSetting().getName().startsWith("perm"));
  }
 private String editGuildPermission(Operation op, Permission permission, IGuild guild) {
   DiscordGuild g =
       cacheService.findGuildById(guild.getID()).orElseGet(() -> new DiscordGuild(guild));
   changePermission(op, permission, g);
   g = cacheService.saveGuild(g);
   log.info("Saving new guild permission settings: {}", g);
   permissionService.evict();
   return String.format(
       "Modified server %s: %s permission %s",
       g.getName(), op.name().toLowerCase(), permission.getName());
 }
Example #7
0
 public Set<String> getPermissionNames() {
   if (this.permissionNames == null || this.stale) {
     this.permissionNames = new HashSet<String>(this.permissions.size());
     for (Permission perm : this.permissions) {
       this.permissionNames.add(perm.getName());
     }
     this.permissionNames = Collections.unmodifiableSet(this.permissionNames);
     this.stale = false;
   }
   return this.permissionNames;
 }
  public Permission getPermission(String name, boolean create) {
    for (Permission p : getPermissions()) {
      if (p.getName().equalsIgnoreCase(name)) {
        return p;
      }
    }

    if (create) {
      Permission p = new Permission(name);
      permissions.add(p);
      return p;
    }

    return null;
  }
 /**
  * Aggiorna un permesso nel db.
  *
  * @param permission Oggetto Permission rappresentante il permesso da aggionare.
  */
 public void updatePermission(Permission permission) {
   Connection conn = null;
   PreparedStatement stat = null;
   try {
     conn = this.getConnection();
     conn.setAutoCommit(false);
     stat = conn.prepareStatement(UPDATE_PERMISSIONS);
     stat.setString(1, permission.getDescription());
     stat.setString(2, permission.getName());
     stat.executeUpdate();
     conn.commit();
   } catch (Throwable t) {
     this.executeRollback(conn);
     _logger.error("Error while updating a permission", t);
     throw new RuntimeException("Error while updating a permission", t);
     // processDaoException(t, "Error while updating a permission", "updatePermission");
   } finally {
     closeDaoResources(null, stat, conn);
   }
 }
 private String editChannelPermission(Operation op, Permission permission, IChannel channel) {
   if (channel.isPrivate()) {
     throw new IllegalArgumentException("No private channels allowed!");
   }
   DiscordGuild g =
       cacheService
           .findGuildById(channel.getGuild().getID())
           .orElseGet(() -> new DiscordGuild(channel.getGuild()));
   g = cacheService.saveGuild(g);
   DiscordChannel ch =
       cacheService.findChannelById(channel.getID()).orElseGet(() -> new DiscordChannel(channel));
   ch.setGuild(g);
   g.getChannels().add(ch);
   changePermission(op, permission, ch);
   ch = cacheService.saveChannel(ch);
   cacheService.saveGuild(g);
   log.info("Saving new permission data: {}", g);
   permissionService.evict();
   return String.format(
       "Modified channel %s: %s permission %s",
       ch.getName(), op.name().toLowerCase(), permission.getName());
 }
 /**
  * Carica la mappa (indicizzata in base al nome) dei permessi di autorizzazione presenti nel db.
  *
  * @return La mappa dei permessi di autorizzazione.
  */
 public Map<String, Permission> loadPermissions() {
   Connection conn = null;
   Statement stat = null;
   ResultSet res = null;
   Map<String, Permission> permissions = new HashMap<String, Permission>();
   Permission permission = null;
   try {
     conn = this.getConnection();
     stat = conn.createStatement();
     res = stat.executeQuery(ALL_PERMISSIONS);
     while (res.next()) {
       permission = this.createPermissionFromRecord(res);
       permissions.put(permission.getName(), permission);
     }
   } catch (Throwable t) {
     _logger.error("Error loading permissions", t);
     throw new RuntimeException("Error loading permissions", t);
     // processDaoException(t, "Error loading permissions", "loadPermissions");
   } finally {
     closeDaoResources(res, stat, conn);
   }
   return permissions;
 }
 /**
  * Cancella un permesso di autorizzazione dal db.
  *
  * @param permission Oggetto Permission rappresentante il permesso da eliminare.
  */
 public void deletePermission(Permission permission) {
   this.deletePermission(permission.getName());
 }
 /**
  * Compute the URL to which to send the user to request the extended permission.
  *
  * @param apiKey your application's API key.
  * @param permission the permission you want the grant URL for.
  * @return a String that specifies the URL to direct users to in order to grant this permission to
  *     the application.
  */
 public static String authorizationUrl(String apiKey, Permission permission) {
   return authorizationUrl(apiKey, permission.getName());
 }
 public void remove(Permission permission) {
   if (permission != null) {
     removePermission(permission.getName());
   }
 }