Removing user from MUC member list - xmpp

Is there a way a user can remove himself from a XMPP Multi-User Chat member list without being necessarily an owner or admin (i.e., change his affiliation from member to none)?

From the XEP 045 about MUC (section 5.2.2) clearly states that affiliation changes from member to none requires an Admin or an Owner to change the affiliation, this is the third section in the table:
(for clarification, the table states an affiliation change, i.e.
Member -> to -> none)
Table 7: Affiliation State Chart
Member | Admin or owner changes affiliation to "none"
So sorry but the answer is no, if you're looking for a way to do it that will be unnoticeable to the user - you might need another layer, or a web service that works as admin and make these changes in the background.
Hope this helps.

Related

Keycloak: How to customize user email to be mandatory and immutable

Our old authentication mechanism had mandatory and immutable email for each user by design. After exporting old authentincation mechanism into the hands of Keycloak 4.6.Final, We are left with old references to users by email as this was in fact used as an id from the beginning of this system.
Keycloak User Management UI is delivered to client as part of a whole system. Now we're facing a problem where the users administrator at the customer's side is able to create users with no email, and even worst, he give a user one email and overtime change it. Leaving this option open is most likely to create bugs for the client as the user base grows.
I've been digging around google, sof, keycloak mailing list search engine, and couldn't find any documentation relating developer's ability to apply configuration on top of particular keycloak distribution which would set features such as mandatory and immutable on some user attributes which are optional and editable by default.
I know that question is old, but maybe someone will need answer.
it's 2022-11 and there is experimentas feature in Keycloak 20. You can enable declarative-user-profile and then customize your user profile and set required fields and other options. user-profile
This feature may be removed in the future, because it's experimental.
And this feature has bugs (tried with 20.0.1). For example, if you add required attribute group, then you can see groups while creating new user and you can select groups. But if you try to save user, then error appears telling, that group is required.

How to send notifications to an offline member deleted from a chat group?

I am new to XMPP and working on a group chat application similar to watsapp. The scenario is:
"User A creates a group chat adding users B, C and D to it. All members are online and they are chatting. Now D takes the app to background or kills the app. Now A removes D from the group. How user D will be notified that A has removed him from the group, when D comes back to the app ?
I am using ejabberd (15.11) with PostgreSQL and following the XMPP architecture. I am not sure if the answer is out there, so would like to get help here.
XMPP MUC specifications says in section 9.5: Modifying the Member List:
If a removed member is currently in a members-only room, the service
SHOULD kick the occupant by changing the removed member's role to
"none" and send appropriate presence to the removed member as
previously described. The service MUST subsequently refuse entry to
the user.
It means that the participant will only receive his own status change modification if it is present it the room when the event happen. If he is not online at that time, he can only know his credentials has been removed, because he cannot join the room anymore. In other words, in the current state of the specifications, there is no way to get that removal notification when user was not in the room when the removal happened. You can just infer he was removed because he cannot join the room again on next login.
There is nothing else defined in XEP-0045 Multi-User Chat to store membership event for offline participant and later delivery.

How to reassign "legal" permission in iTunesConnect

On our first iOS app, the person who started up our account with Apple assigned the "legal" permission to our shared support mail, and as such, the "legal" permission was assigned to that Apple ID. Even though the CEO filled in all the paperwork there, having access to that mail as well, "legal" should not have been assigned to that AppleID.
We need to now move that permission from the shared support mail over to our CEO's own company mail, but I can't seem to move that permission over, even while logged in as the current "legal" user. The check box for "legal" seems to be unclickable.
Is there any way to CHANGE the AppleID that is assigned to "legal?"
See instructions for Transferring the Team Agent Role (legal role) on this page:
https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/ManagingYourTeam/ManagingYourTeam.html
In a nutshell (from the page above):
Sign in to developer.apple.com/account as the team agent, and click
Membership.
Scroll down to Settings, and click Transfer Team Agent Role.
Follow the instructions that appear in a series of dialogs.
For example, you will be asked to choose a new team agent and sign an
Agent Transferor Agreement.
The legal role can only be reassigned by contacting the developer support
https://developer.apple.com/contact/submit/
If I understand correctly and you would like to sign the legal role to another person, you have o do that under the User and Roles Tab in iTunes Connect. To change the user's roles you need to have the admin account. If you want to change the Apple ID that is used to sign all the contacts, that is unfortunately not possible. This is in most cases the initial email with which the account was initially created. This unfortunately will have to stay the same unless you convert from a private to a company account. Hope that helps.

Openfire contact list sharing

I installed openfire on CentOs and it uses external database for authentification and user list.
I managed groups based on a user table and a friend listing so that each user is also a group that is is an administrator and populated with users that are (friends).
External users and authentication works fine.
The issue is that the buddy list is only populated when is check "enable contact list group sharing openfire" on group administration.
I want to make this option always enabled so that user can see each other in their buddy list.
this is an existing issue openfire issue
Are there any possible solutions or alternatives.
Edit:
In other words, I want to avoid adding the following three lines to the ofGroupProp table:
name sharedRoster.displayName groupname
name sharedRoster.groupList
name sharedRoster.showInRoster onlyGroup

Leave group chat, and get removed from member list

I am working on the chat application.
I want to implement the group user chat and I have successfully done that.
Now I want toad the functionality by which user can leave the group. I found leave the group but it seems like it's just making user unavailable but not removing user from the member list.
Is there any way by which user remove himself from the member list?
I have read the xep 0045 for it, in that there is a topic for existing the room which seems make user unavailable but not removing from member list.
http://xmpp.org/extensions/xep-0045.html#exit
If anyone has any idea how to do this please share it.
Leaving a room in XMPP (0045) is accomplished by sending an unavailable presence to that room (see XMPPRoom.leaveRoom() in the XMPPFramework) - that should remove them from the occupants of that room (we do this with our app regularly).
"Members list" - is a MUC feature for moderator use cases, it is not related to user. Just leave room as described in XEP, you no need to modify members list. In fact, you no need to add user in this list too, simple chat application should only tracks <presence> stanzas from and to room JID.