nextcloud / spreed

🗨️ Nextcloud Talk – chat, video & audio calls for Nextcloud
https://nextcloud.com/talk
GNU Affero General Public License v3.0
1.62k stars 433 forks source link

Add an option to remove a group but keep members in a group conversation #7348

Open christianhkaiser opened 2 years ago

christianhkaiser commented 2 years ago

I love the new possibility of having a group conversations members updated automaticly when a new member is added to a nextcloud usergroup. It makes it a lot easier to keep conversations up to date. Nevertheless I am facing a problem that makes it difficult for me and my colleges to deal with the groupfeature of nextcloud talk now:

Description of the problem In almost every educational scenario we are dealing with dynamic usergroups that get frequently updated once a year when the students change the grade. For example todays class 06a (usergroup) consists of the studens of last years 05a and so on.

Therefore it woud be benificial to have a possibility to add the students (users) only and not the dynamical changing group itself. Otherwise all classconversaions including the associated shared files of the conversation will be automaticly passed to the new students when changing from grade 5 to grade 6 which is problematic. (same group but different sudents) It would be great to have an option of having the conversation stop syncing the users at a certain point - like removing the group but keeping the users. In an office scenario I could imagine a very similar situation if you add two teams to a project but once the project has started you don't want new users to join automaticly and see the content and the conversation.

Describe the possible solution Solution1: It would be great to have a second option beside "remove group and members" - like "remove group and keep members". Solution2: It would be great to have the opportunity to decide weather the conversaion adds the group itself (keeping it up to date) or just the users once - (so you dont need to add 30 or even more users manually) Solution3: Provide a checkbox in the conversation settings like: "update groups automatically..." or "do not sync members..."

I also tried solving the problem by creating circles for each calss but its not really convinient and rather confusion having a circle associated with an already existing group.

Since nextcloud is heavily used in edu context it would be great if you'd consider such a feature. thanks a lot

nickvergessen commented 2 years ago

In this case I would not reuse the same group. That sounds way to fragile across the board.

I would recommend to take "random" group ids and just set the display name of the groups to "Class 06a" You could then rename the group after the year e.g. to "Class 06a 2022" and nothing would conflict or get leaked to different groups, etc.

christianhkaiser commented 2 years ago

thanks for your reply on my request,

in our case (German school) nextclouds LDAP backend (AD) is directly connected to the student information system keeping the groups in sync with our office. When students change a calss during the year leave school or repeat a grade its represented in the ldap groups. None of these groups needs to be managed by a person and no mistake can happen cause they are mirrored with the sis.

In the past: When a teacher started a group conversation for one of his courses (eg 07a-history) he just picked the classgroup(LDAP) … , picked a displayName - done. Later on he created some folders and shared them directly with this conversation. In other words teachers were able to create kind of static conversations (courses) out of the dynamic AD groups and kept them over the years with his students. Solutions wich are a bit more edu specific often offer features for this particular usecase. For example our IPad management service (jamf) provides an option to create „class from group“ – I do not suggest such a school specific feature here because nextcloud talk is not specific into school context but there might be some other usecases beside our very specific workflow where it would be benifital to add only the users of a group and not the group itself or to make a conversation „static“. If one would want to turn a talkgroup dynamic again one can just add the group again later on…

According to your suggested sloution of creating „random static groups“ there are downsides if you consider a students career as a development (in a digital way) – in the 5th grade there are many restrictions in the campus network – sudents are even kept in a seperate vlan in our case. There are also specific areas in our wiki specific to their grade. All these permissions and (groupspecific) features are usually hard coded with the group and depend on the students age. Therefore binding the groups themself to the services and pushing the students into them (depending on their grade) dynamically makes the administration at school a lot easier and leads to less mistakes. That is why we choose to do it this way and as far as I know from some colleges its not uncomman at school.

But you are right – sharing a folder with a LDAP group doesnt make sense at all in this scenario and we don‘t do it. (feature disabled) - That is why we are using the conversations to share the folders with and this worked totally fine in the past and during the pandemia. We have been using this workflow on an everyday basis. I know it would be another option to create open conversations and let the students join. I know adding the students one by one is also possible – but both options are much less convinient than using existing managed usergroups (LDAP) and lead to more confusion. We usually start to introduce nextcloud talk in the 5th grade.

Please get me right - I really like the groupsyncing feature and Im already using it in other contexts. I just believe that both ways could be possible (static/dynamic) to keep some well implemented workflows running and do not give up a feature for another without any need...

nickvergessen commented 2 years ago

When students change a calss during the year leave school or repeat a grade its represented in the ldap groups. None of these groups needs to be managed by a person and no mistake can happen cause they are mirrored with the sis.

This is exactly one of the things we had in mind. When a student is assigned to a class all files and conversations the class is part of should be accessible by the new user too, no?

christianhkaiser commented 2 years ago

I totally agree on your ideas and I am already making use of this feature when it comes to teachers shares and project teams. These are also represented within LDAP groups in my case as the sis provides them also - and they are getting dynamically updated already since the last major release. It works pretty well. But until nextcloud core system lacks a feature of mapping a dynamic gradespecific group to a static group some sis-systems organized like ours will kinda loose compatibility when it comes to gradechange. (using the groupfeature) - I also could imagine a busisness situation where you would want to add a group like „officestaff“ and then remove like two persons afterwards. Also such a usecase wouldn’t be possible without a feature like „remove group - keep users“. I also agree that it would be best to have the system updating students groups on-the-fly for convenience but since I‘m not seeing this kind of educational group management to be implemented in nextcloud in the future, cause its supposed to have a wider range than only edu-use. (which is good) - I decided to make that feature request. (And some sis like ours don‘t offer this static groups eighter) In the past every new student had access to the groups files once the teacher added them to his talk. And teachers were able to start a new class without the need of a list of students to add manually. So though the classtalks didnt update automatically it was convenient to maintaine for the teachers. (just making one single change when having a new student in his class) - I would like to keep this useful workaround possible in the future and I don’t want I to loose the newly intorduced possibility of having dynamicly updated groupschats. I like both and have usecases for both kinds of chats within one organisation. I totally understand if you might be of the opinion that my suggestion is not a necessary feature in talk anymore - but there are certain situations where you could really benefit from it. And the actual idea is to add functionality not to replace sth. What do you think? Do you see a chance of implementing such a feature in the future or do you think it is not needed ? - Maybe you can imagine of another usecase where you would want to make a conversation static that started out as groupchat originally - or remove users afterwards without removing the entire group?

nickvergessen commented 2 years ago

Sorry forgot to add this before.

I also totally get your point and I guess it wouldn't even be very complicated, just ending up with 2 buttons in the ... menu of groups allowing to remove with and without the members.

For now you could even do this on a database level manually (just drop the entry from the oc_talk_attendees table with actor_type groups and actorid starting with class* 🙈 )

christianhkaiser commented 2 years ago

I also think implementing this function wouldn't be a great deal. As you already pointed out its one aditional entry in the menu and one database command to run. I admit I didnt search the db to find the group-entries in the attendees table yet - for that reason I didn't know that it was just one entry to drop per group. As long as there is not a frontend solution I will proceed as you suggested like dropping these group entries once a year manually. Thats not a problem but it requires database access. Thank you so far - this workaround helps me doing the groupupdate in july. Nethertheless I still suggest adding this funktion maybe in the future - It would be great to do it from the frontend and a lot of installations out there maintened by hosting companies do not offer database access for their customers. Again thank you for pointing me in the direction of doing a "end-year routine"