Interface IPermissionManagement

    • Method Detail

      • canBeOverwritten

        boolean canBeOverwritten()
      • getUser

        @Deprecated
        @ScheduledForRemoval(inVersion="3.5")
        java.util.List<IPermissionUser> getUser​(java.lang.String name)
        Deprecated.
        use getUsers(String) instead
      • reload

        boolean reload()
      • testPermissionGroup

        boolean testPermissionGroup​(@Nullable
                                    @Nullable IPermissionGroup permissionGroup)
      • testPermissionUser

        boolean testPermissionUser​(@Nullable
                                   @Nullable IPermissionUser permissionUser)
      • testPermissible

        boolean testPermissible​(@Nullable
                                @Nullable IPermissible permissible)
      • addUser

        IPermissionUser addUser​(@NotNull
                                @NotNull java.lang.String name,
                                @NotNull
                                @NotNull java.lang.String password,
                                int potency)
      • addGroup

        IPermissionGroup addGroup​(@NotNull
                                  @NotNull java.lang.String role,
                                  int potency)
      • hasPermission

        default boolean hasPermission​(@NotNull
                                      @NotNull IPermissionUser permissionUser,
                                      @NotNull
                                      @NotNull java.lang.String permission)
      • hasPermission

        default boolean hasPermission​(@NotNull
                                      @NotNull IPermissionUser permissionUser,
                                      @NotNull
                                      @NotNull Permission permission)
      • hasPermission

        default boolean hasPermission​(@NotNull
                                      @NotNull IPermissionUser permissionUser,
                                      @NotNull
                                      @NotNull java.lang.String group,
                                      @NotNull
                                      @NotNull Permission permission)
      • getPermissionResult

        @NotNull
        @NotNull PermissionCheckResult getPermissionResult​(@NotNull
                                                           @NotNull IPermissionUser permissionUser,
                                                           @NotNull
                                                           @NotNull java.lang.String permission)
      • getAllPermissions

        java.util.Collection<Permission> getAllPermissions​(@NotNull
                                                           @NotNull IPermissible permissible)
      • getAllPermissions

        java.util.Collection<Permission> getAllPermissions​(@NotNull
                                                           @NotNull IPermissible permissible,
                                                           @Nullable
                                                           @Nullable java.lang.String group)
      • addUser

        IPermissionUser addUser​(@NotNull
                                @NotNull IPermissionUser permissionUser)
        Adds a new user to the database.
        Parameters:
        permissionUser - the user to be added
        Returns:
        the new user
      • updateUser

        void updateUser​(@NotNull
                        @NotNull IPermissionUser permissionUser)
        Updates an already existing user in the database.
        Parameters:
        permissionUser - the user to be updated
      • deleteUser

        boolean deleteUser​(@NotNull
                           @NotNull java.lang.String name)
        Deletes all users in the database matching the given name. This method is case-sensitive.
        Parameters:
        name - the name of the users to be deleted
      • deleteUser

        boolean deleteUser​(@NotNull
                           @NotNull IPermissionUser permissionUser)
        Deletes one user with the uniqueId of the given user.
        Parameters:
        permissionUser - the user to be deleted
      • containsUser

        boolean containsUser​(@NotNull
                             @NotNull java.util.UUID uniqueId)
        Checks if a user with the given uniqueId is stored in the database.
        Parameters:
        uniqueId - the uniqueId of the user
        Returns:
        true if there is a user with that uniqueId, false otherwise
      • containsUser

        boolean containsUser​(@NotNull
                             @NotNull java.lang.String name)
        Checks if at least one user with the given name is stored in the database. This method is case-sensitive.
        Parameters:
        name - the name of the user
        Returns:
        true if there is a user with that name, false otherwise
      • getUser

        @Nullable
        @Nullable IPermissionUser getUser​(@NotNull
                                          @NotNull java.util.UUID uniqueId)
        Gets a user with the given uniqueId out of the database.
        Parameters:
        uniqueId - the uniqueId of the user
        Returns:
        the IPermissionUser from the database or null if there is no user with that uniqueId stored
      • getUsers

        @NotNull
        @NotNull java.util.List<IPermissionUser> getUsers​(@NotNull
                                                          @NotNull java.lang.String name)
        Gets a list of all users with the given name out of the database. This can only return null when the connection to the database (or when it is executed in a Wrapper instance the connection to the cloud) times out.
        Parameters:
        name - the name of the users
        Returns:
        a list of all IPermissionUsers stored in the database or an empty list if there is no user with that name stored.
      • getUsers

        java.util.Collection<IPermissionUser> getUsers()
        Gets a list of all users stored in the database. This can only return null when the connection to the database (or when it is executed in a Wrapper instance the connection to the cloud) times out.

        This method shouldn't be used when there are many users stored in the database, because that takes a lot of memory.

        Returns:
        a list of all IPermissionUsers stored in the database or an empty list if there is no user with that name stored.
      • setUsers

        void setUsers​(@Nullable
                      @Nullable java.util.Collection<? extends IPermissionUser> users)
        Clears all users stored in the database and inserts the given list.
        Parameters:
        users - the new IPermissionUsers to be stored in the database
      • getUsersByGroup

        java.util.Collection<IPermissionUser> getUsersByGroup​(@NotNull
                                                              @NotNull java.lang.String group)
        Gets a list of all users stored in the database with the given group. This can only return null when the connection to the database (or when it is executed in a Wrapper instance the connection to the cloud) times out.

        This method shouldn't be used when there are many users with that group stored in the database, because that takes a lot of memory.

        Returns:
        a list of all IPermissionUsers stored in the database or an empty list if there is no user with that name stored.
      • addGroup

        IPermissionGroup addGroup​(@NotNull
                                  @NotNull IPermissionGroup permissionGroup)
        Adds a new permission group to the list of groups. If a group with that name already exists, it will be deleted and created again.
        Parameters:
        permissionGroup - the IPermissionGroup to be added
        Returns:
        the new group
      • updateGroup

        void updateGroup​(@NotNull
                         @NotNull IPermissionGroup permissionGroup)
        Updates a permission group in the list of groups. If a group with that name doesn't exist, it will be created.
        Parameters:
        permissionGroup - the IPermissionGroup to be updated
      • deleteGroup

        void deleteGroup​(@NotNull
                         @NotNull java.lang.String name)
        Deletes a group by its name out of the list of groups. If a group with that name doesn't exist, nothing happens.
        Parameters:
        name - the case-sensitive name of the group
      • deleteGroup

        void deleteGroup​(@NotNull
                         @NotNull IPermissionGroup permissionGroup)
        Deletes a group by its name out of the list of groups. If a group with that name doesn't exist, nothing happens.
        Parameters:
        permissionGroup - the IPermissionGroup to be deleted
      • containsGroup

        boolean containsGroup​(@NotNull
                              @NotNull java.lang.String group)
        Checks if a specific group exists.
        Parameters:
        group - the case-sensitive name of the group
        Returns:
        true if the group exists, false otherwise
      • getGroup

        @Nullable
        @Nullable IPermissionGroup getGroup​(@NotNull
                                            @NotNull java.lang.String name)
        Gets a specific group by its name.
        Parameters:
        name - the case-sensitive name of the group
        Returns:
        the IPermissionUser if it exists, null otherwise
      • getGroups

        java.util.Collection<IPermissionGroup> getGroups()
        Gets the list of all groups in the Cloud.
        Returns:
        a list of IPermissionGroups registered in the cloud or an empty list if there is no group registered
      • setGroups

        void setGroups​(@Nullable
                       @Nullable java.util.Collection<? extends IPermissionGroup> groups)
        Clears all groups in the Cloud and sets given groups.
        Parameters:
        groups - the new groups
      • getGroupsAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.util.Collection<IPermissionGroup>> getGroupsAsync​(@Nullable
                                                                                                                    @Nullable IPermissionUser permissionUser)
      • addUserAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<IPermissionUser> addUserAsync​(@NotNull
                                                                                           @NotNull IPermissionUser permissionUser)
        Adds a new user to the database.
        Parameters:
        permissionUser - the user to be added
      • addUserAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<IPermissionUser> addUserAsync​(@NotNull
                                                                                           @NotNull java.lang.String name,
                                                                                           @NotNull
                                                                                           @NotNull java.lang.String password,
                                                                                           int potency)
      • updateUserAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.lang.Void> updateUserAsync​(@NotNull
                                                                                             @NotNull IPermissionUser permissionUser)
        Updates an already existing user in the database.
        Parameters:
        permissionUser - the user to be updated
      • deleteUserAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.lang.Boolean> deleteUserAsync​(@NotNull
                                                                                                @NotNull java.lang.String name)
        Deletes all users in the database matching the given name. This method is case-sensitive.
        Parameters:
        name - the name of the users to be deleted
      • deleteUserAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.lang.Boolean> deleteUserAsync​(@NotNull
                                                                                                @NotNull IPermissionUser permissionUser)
        Deletes one user with the uniqueId of the given user.
        Parameters:
        permissionUser - the user to be deleted
      • containsUserAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.lang.Boolean> containsUserAsync​(@NotNull
                                                                                                  @NotNull java.util.UUID uniqueId)
        Checks if a user with the given uniqueId is stored in the database.
        Parameters:
        uniqueId - the uniqueId of the user
        Returns:
        true if there is a user with that uniqueId, false otherwise
      • containsUserAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.lang.Boolean> containsUserAsync​(@NotNull
                                                                                                  @NotNull java.lang.String name)
        Checks if at least one user with the given name is stored in the database. This method is case-sensitive.
        Parameters:
        name - the name of the user
        Returns:
        true if there is a user with that name, false otherwise
      • getUserAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<IPermissionUser> getUserAsync​(@NotNull
                                                                                           @NotNull java.util.UUID uniqueId)
        Gets a user with the given uniqueId out of the database.
        Parameters:
        uniqueId - the uniqueId of the user
        Returns:
        the IPermissionUser from the database or null if there is no user with that uniqueId stored
      • getUsersAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.util.List<IPermissionUser>> getUsersAsync​(@NotNull
                                                                                                            @NotNull java.lang.String name)
        Gets a list of all users with the given name out of the database. This can only return null when the connection to the database (or when it is executed in a Wrapper instance the connection to the cloud) times out.
        Parameters:
        name - the name of the users
        Returns:
        a list of all IPermissionUsers stored in the database or an empty list if there is no user with that name stored.
      • getFirstUserAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<IPermissionUser> getFirstUserAsync​(java.lang.String name)
      • getUsersAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.util.Collection<IPermissionUser>> getUsersAsync()
        Gets a list of all users stored in the database. This can only return null when the connection to the database (or when it is executed in a Wrapper instance the connection to the cloud) times out.

        This method shouldn't be used when there are many users stored in the database, because that takes a lot of memory.

        Returns:
        a list of all IPermissionUsers stored in the database or an empty list if there is no user with that name stored.
      • setUsersAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.lang.Void> setUsersAsync​(@NotNull
                                                                                           @NotNull java.util.Collection<? extends IPermissionUser> users)
        Clears all users stored in the database and inserts the given list.
        Parameters:
        users - the new IPermissionUsers to be stored in the database
      • getUsersByGroupAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.util.Collection<IPermissionUser>> getUsersByGroupAsync​(@NotNull
                                                                                                                         @NotNull java.lang.String group)
        Gets a list of all users stored in the database with the given group. This can only return null when the connection to the database (or when it is executed in a Wrapper instance the connection to the cloud) times out.

        This method shouldn't be used when there are many users with that group stored in the database, because that takes a lot of memory.

        Returns:
        a list of all IPermissionUsers stored in the database or an empty list if there is no user with that name stored.
      • addGroupAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<IPermissionGroup> addGroupAsync​(@NotNull
                                                                                             @NotNull IPermissionGroup permissionGroup)
        Adds a new permission group to the list of groups. If a group with that name already exists, it will be deleted and created again.
        Parameters:
        permissionGroup - the IPermissionGroup to be added
      • addGroupAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<IPermissionGroup> addGroupAsync​(@NotNull
                                                                                             @NotNull java.lang.String role,
                                                                                             int potency)
      • updateGroupAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.lang.Void> updateGroupAsync​(@NotNull
                                                                                              @NotNull IPermissionGroup permissionGroup)
        Updates a permission group in the list of groups. If a group with that name doesn't exist, it will be created.
        Parameters:
        permissionGroup - the IPermissionGroup to be updated
      • deleteGroupAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.lang.Void> deleteGroupAsync​(@NotNull
                                                                                              @NotNull java.lang.String name)
        Deletes a group by its name out of the list of groups. If a group with that name doesn't exist, nothing happens.
        Parameters:
        name - the case-sensitive name of the group
      • deleteGroupAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.lang.Void> deleteGroupAsync​(@NotNull
                                                                                              @NotNull IPermissionGroup permissionGroup)
        Deletes a group by its name out of the list of groups. If a group with that name doesn't exist, nothing happens.
        Parameters:
        permissionGroup - the IPermissionGroup to be deleted
      • containsGroupAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.lang.Boolean> containsGroupAsync​(@NotNull
                                                                                                   @NotNull java.lang.String group)
        Checks if a specific group exists.
        Parameters:
        group - the case-sensitive name of the group
        Returns:
        true if the group exists, false otherwise
      • getGroupAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<IPermissionGroup> getGroupAsync​(@NotNull
                                                                                             @NotNull java.lang.String name)
        Gets a specific group by its name.
        Parameters:
        name - the case-sensitive name of the group
        Returns:
        the IPermissionUser if it exists, null otherwise
      • getDefaultPermissionGroupAsync

        de.dytanic.cloudnet.common.concurrent.ITask<IPermissionGroup> getDefaultPermissionGroupAsync()
      • getGroupsAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.util.Collection<IPermissionGroup>> getGroupsAsync()
        Gets the list of all groups in the Cloud.
        Returns:
        a list of IPermissionGroups registered in the cloud or an empty list if there is no group registered
      • setGroupsAsync

        @NotNull
        @NotNull de.dytanic.cloudnet.common.concurrent.ITask<java.lang.Void> setGroupsAsync​(@Nullable
                                                                                            @Nullable java.util.Collection<? extends IPermissionGroup> groups)
        Clears all groups in the Cloud and sets given groups.
        Parameters:
        groups - the new groups