Thanks Daniel, Maybe I'll come up with some prototype ... Will share it here
We run out of time :( On Fri, May 11, 2018 at 9:17 PM, Daniel Ascher <[email protected]> wrote: > Hi everyone. I will be away today and tomorrow but I will plan to look at > this upon my return. > > Thanks! Dan > > On Thu, May 10, 2018 at 9:19 PM, Maxim Solodovnik <[email protected]> > wrote: > >> Thanks again Daniel, >> >> I believe all external links should be removed >> >> What is different: >> We are >> 1) not tracking user activity >> 2) not adding custom images to check if email was delivered >> 3) using email to invite user or notify about event >> 4) language/country is used to display OM in user native language >> 5) not processing data >> >> do collecting IP addresses on temporary basis >> for logging - to be able to understand what was wrong - being cleaned up >> after configurable period >> >> something like this >> >> On Fri, May 11, 2018 at 12:10 AM, Daniel Ascher <[email protected]> >> wrote: >> >>> No problem Maxim. I can do that. The only thing I need to know is what >>> will be different for OpenMeetings. For example there are many links in the >>> document that would need to point to something. >>> >>> I will take a look and then let you know which questions I have. Also, >>> if there is someone who is an attorney in this usergroup it would be >>> helpful for me to work with that person, even if he/she is not a native >>> English speaker. >>> >>> Dan >>> >>> On Thu, May 10, 2018 at 12:54 PM, Maxim Solodovnik <[email protected] >>> > wrote: >>> >>>> Thanks a lot Daniel, >>>> >>>> Maybe you can create basic "Privacy Statement" based on this [1] one >>>> (public domain) >>>> And we can polish it in mailing list? >>>> >>>> I definitely wrong person for this :(( >>>> >>>> [1] https://help.github.com/articles/github-privacy-statement/ >>>> >>>> On Thu, May 10, 2018 at 11:44 PM, Daniel Ascher <[email protected]> >>>> wrote: >>>> >>>>> Sure! Happy to help with this. :) >>>>> >>>>> Please send me the text once it's ready and I'll review it and discuss >>>>> issues with the group. >>>>> >>>>> Thanks! Dan >>>>> >>>>> On Thu, May 10, 2018 at 12:36 PM, Maxim Solodovnik < >>>>> [email protected]> wrote: >>>>> >>>>>> Hello Peter, All, >>>>>> >>>>>> Just have added link to privacy policy to register dialog (available >>>>>> at upcoming build, will update demo ASAP) >>>>>> >>>>>> Would appreciate is *Native English Speaker* can help with English >>>>>> privacy statement >>>>>> I'll try to create one based on this [1], but I would strongly prefer >>>>>> to get help with this task >>>>>> >>>>>> @Daniel, maybe you can help? >>>>>> >>>>>> According to restoration of deleted user, I'll try to invent >>>>>> something .... (don't like the idea of adding additional "purged" flag) >>>>>> >>>>>> [1] https://help.github.com/articles/github-privacy-statement/ >>>>>> >>>>>> On Thu, Apr 26, 2018 at 7:12 PM, Peter Dähn <[email protected]> wrote: >>>>>> >>>>>>> Hi Maxim, >>>>>>> >>>>>>> I've tested the current state. Seems to be done so far. One little >>>>>>> thing I hope... When I choose a purged user I have the possibility >>>>>>> (button) >>>>>>> to restore that account. Db will be set deleted false... Doesn't make >>>>>>> sense, I think. >>>>>>> >>>>>>> Purge themselves is a way to disagree (I didn't see it till now...), >>>>>>> I think. But a few more clicks are needed to get to that point... But I >>>>>>> think this is ok as long as nobody complain about it. This function >>>>>>> need to >>>>>>> be described in the privacy policy. I hope thats it... >>>>>>> >>>>>>> Almost all done? Maybe someone else could also test this. >>>>>>> >>>>>>> Do you mean the a sample privacy policy here? *"And maybe you can >>>>>>> provide sample "personal data agreement" text?"* >>>>>>> >>>>>>> I think at least for english... This is a task for a native >>>>>>> speaker... In UK they also need to be compliant with GDPR. Maybe someone >>>>>>> from there could provide some text. >>>>>>> >>>>>>> Greetings Peter >>>>>>> >>>>>>> >>>>>>> Am 26.04.2018 um 12:04 schrieb Maxim Solodovnik: >>>>>>> >>>>>>> As per current implementation users can purge themselves >>>>>>> This can't be undone .... >>>>>>> >>>>>>> Is this "a way to disagree" ? >>>>>>> >>>>>>> On Thu, Apr 26, 2018 at 2:35 PM, Peter Dähn <[email protected]> wrote: >>>>>>> >>>>>>>> Hi Maxim, >>>>>>>> >>>>>>>> I will test it during the day.... >>>>>>>> >>>>>>>> Yes you are right... This need to be done during registration. >>>>>>>> checkbox and link to the privacy policy that need to be placed >>>>>>>> somewhere. >>>>>>>> >>>>>>>> Agreement for data processing need to be double opt-in. Most likely >>>>>>>> via E-Mail. I think an e-mail template that could be changed easily is >>>>>>>> the >>>>>>>> most flexible way. >>>>>>>> >>>>>>>> And there should a way to disagree further data-processing. "The >>>>>>>> way to disagree need to be as easy as the way to agree"... My >>>>>>>> understanding: that would be our "soft delete"... If this is used, >>>>>>>> there >>>>>>>> should be a way for the user to reactivate this account. E.g. check >>>>>>>> registration e-mail and if it is soft deleted the registration confirm >>>>>>>> e-mail could have the option to reactivate the old account or generate >>>>>>>> a >>>>>>>> new one >>>>>>>> >>>>>>>> Back later, when I've tested current build >>>>>>>> Greetings Peter >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> Am 26.04.2018 um 08:09 schrieb Maxim Solodovnik: >>>>>>>> >>>>>>>> All your comments should be addressed in latest build available >>>>>>>> >>>>>>>> Could you please re-check? >>>>>>>> >>>>>>>> This question was not answered ..... >>>>>>>> >>>>>>>> Additional question: >>>>>>>> "Registration-Dialog need to have a button/step to agree the data >>>>>>>> processing. And to this belongs a button to disagree." >>>>>>>> >>>>>>>> I guess user should be able to register only if he/she agree to >>>>>>>> data processing >>>>>>>> Registration should be impossible if user disagree >>>>>>>> So I guess having following controls at registration dialog would >>>>>>>> be sufficient: >>>>>>>> >>>>>>>> 1) "I agree my data will be processed" checkbox >>>>>>>> 2) "display agreement" button >>>>>>>> >>>>>>>> would it be OK? >>>>>>>> >>>>>>>> On Wed, Apr 25, 2018 at 6:16 PM, Maxim Solodovnik < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> These errors seems to be caused by code changes after testing :( >>>>>>>>> I'll double-check it >>>>>>>>> >>>>>>>>> IP addresses are cleaned up by periodic job. >>>>>>>>> Will also add clean by purge >>>>>>>>> Thanks for checking! >>>>>>>>> >>>>>>>>> WBR, Maxim >>>>>>>>> (from mobile, sorry for the typos) >>>>>>>>> >>>>>>>>> On Wed, Apr 25, 2018, 17:33 Peter Dähn <[email protected]> wrote: >>>>>>>>> >>>>>>>>>> Hi Maxim, >>>>>>>>>> >>>>>>>>>> first test... >>>>>>>>>> >>>>>>>>>> purge confirmation dialogue should be different from delete... >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> maybe "Do you really want to purge this item? This can't be >>>>>>>>>> undone!" Something like that... >>>>>>>>>> >>>>>>>>>> After purge I got an 500 internal error page... >>>>>>>>>> >>>>>>>>>> openmeetings.log: >>>>>>>>>> >>>>>>>>>> *ERROR 04-25 12:05:13.708 o.a.w.DefaultExceptionMapper:170 >>>>>>>>>> [nio-5080-exec-3] - Unexpected error occurred* >>>>>>>>>> *java.lang.NullPointerException: zoneId* >>>>>>>>>> * at java.util.Objects.requireNonNull(Objects.java:228)* >>>>>>>>>> * at java.time.ZoneId.of(ZoneId.java:311)* >>>>>>>>>> * at >>>>>>>>>> org.apache.openmeetings.util.CalendarHelper.getZoneId(CalendarHelper.java:30)* >>>>>>>>>> * at >>>>>>>>>> org.apache.openmeetings.util.CalendarHelper.getZoneDateTime(CalendarHelper.java:43)* >>>>>>>>>> * at >>>>>>>>>> org.apache.openmeetings.util.CalendarHelper.getDate(CalendarHelper.java:47)* >>>>>>>>>> * at org.apache.openmeetings.web.co >>>>>>>>>> <http://org.apache.openmeetings.web.co>mmon.GeneralUserForm.updateModelObject(GeneralUserForm.java:173)* >>>>>>>>>> * at org.apache.openmeetings.web.ad >>>>>>>>>> <http://org.apache.openmeetings.web.ad>min.users.UserForm.onModelChanged(UserForm.java:198)* >>>>>>>>>> * at org.apache.wicket.Component.mo >>>>>>>>>> <http://org.apache.wicket.Component.mo>delChanged(Component.java:2143)* >>>>>>>>>> * at org.apache.wicket.Component.se >>>>>>>>>> <http://org.apache.wicket.Component.se>tDefaultModelObject(Component.java:3026)* >>>>>>>>>> * at >>>>>>>>>> org.apache.wicket.IGenericComponent.setModelObject(IGenericComponent.java:81)* >>>>>>>>>> * at org.apache.openmeetings.web.ad >>>>>>>>>> <http://org.apache.openmeetings.web.ad>min.users.UserForm.updateForm(UserForm.java:266)* >>>>>>>>>> * at org.apache.openmeetings.web.ad >>>>>>>>>> <http://org.apache.openmeetings.web.ad>min.users.UserForm.purgeUser(UserForm.java:240)* >>>>>>>>>> * at org.apache.openmeetings.web.ad >>>>>>>>>> <http://org.apache.openmeetings.web.ad>min.users.UserForm.onPurgeSubmit(UserForm.java:214)* >>>>>>>>>> * at org.apache.openmeetings.web.ad >>>>>>>>>> <http://org.apache.openmeetings.web.ad>min.AdminBaseForm$1.onPurgeSubmit(AdminBaseForm.java:75)* >>>>>>>>>> * at org.apache.openmeetings.web.co >>>>>>>>>> <http://org.apache.openmeetings.web.co>mmon.FormActionsPanel$3.onSubmit(FormActionsPanel.java:93)* >>>>>>>>>> * at org.apache.openmeetings.web.co >>>>>>>>>> <http://org.apache.openmeetings.web.co>mmon.ConfirmableAjaxBorder.lambda$new$5f39bb3f$1(ConfirmableAjaxBorder.java:74)* >>>>>>>>>> * at org.apache.openmeetings.web.co >>>>>>>>>> <http://org.apache.openmeetings.web.co>mmon.ConfirmableAjaxBorder$ConfirmableBorderDialog.onSubmit(ConfirmableAjaxBorder.java:196)* >>>>>>>>>> * at >>>>>>>>>> com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog$DialogFormSubmitter.onSubmit(AbstractFormDialog.java:294)* >>>>>>>>>> * at >>>>>>>>>> org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1268)* >>>>>>>>>> * at >>>>>>>>>> org.apache.wicket.markup.html.form.Form.process(Form.java:963)* >>>>>>>>>> * at >>>>>>>>>> org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:787)* >>>>>>>>>> * at >>>>>>>>>> com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog.internalOnClick(AbstractFormDialog.java:215)* >>>>>>>>>> * at >>>>>>>>>> com.googlecode.wicket.jquery.ui.widget.dialog.AbstractDialog$1.onClick(AbstractDialog.java:413)* >>>>>>>>>> * at >>>>>>>>>> com.googlecode.wicket.jquery.ui.widget.dialog.DialogBehavior.onAjax(DialogBehavior.java:188)* >>>>>>>>>> * at >>>>>>>>>> com.googlecode.wicket.jquery.core.ajax.JQueryAjaxBehavior.re >>>>>>>>>> <http://ore.ajax.JQueryAjaxBehavior.re>spond(JQueryAjaxBehavior.java:173)* >>>>>>>>>> * at >>>>>>>>>> org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:598)* >>>>>>>>>> * at >>>>>>>>>> org.apache.wicket.core.request.handler.ListenerRequestHandler.internalInvoke(ListenerRequestHandler.java:306)* >>>>>>>>>> * at >>>>>>>>>> org.apache.wicket.core.request.handler.ListenerRequestHandler.invoke(ListenerRequestHandler.java:280)* >>>>>>>>>> * at >>>>>>>>>> org.apache.wicket.core.request.handler.ListenerRequestHandler.invokeListener(ListenerRequestHandler.java:222)* >>>>>>>>>> * at >>>>>>>>>> org.apache.wicket.core.request.handler.ListenerRequestHandler.respond(ListenerRequestHandler.java:208)* >>>>>>>>>> * at >>>>>>>>>> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:912)* >>>>>>>>>> * at >>>>>>>>>> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)* >>>>>>>>>> * at >>>>>>>>>> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:283)* >>>>>>>>>> * at >>>>>>>>>> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)* >>>>>>>>>> * at >>>>>>>>>> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)* >>>>>>>>>> * at org.apache.wicket.protocol.ws >>>>>>>>>> <http://org.apache.wicket.protocol.ws>.AbstractUpgradeFilter.processRequestCycle(AbstractUpgradeFilter.java:70)* >>>>>>>>>> * at >>>>>>>>>> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:204)* >>>>>>>>>> * at >>>>>>>>>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:286)* >>>>>>>>>> * at >>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)* >>>>>>>>>> * at >>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)* >>>>>>>>>> * at >>>>>>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)* >>>>>>>>>> * at >>>>>>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)* >>>>>>>>>> * at >>>>>>>>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:611)* >>>>>>>>>> * at >>>>>>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)* >>>>>>>>>> * at >>>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)* >>>>>>>>>> * at >>>>>>>>>> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651)* >>>>>>>>>> * at >>>>>>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)* >>>>>>>>>> * at >>>>>>>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)* >>>>>>>>>> * at >>>>>>>>>> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:407)* >>>>>>>>>> * at >>>>>>>>>> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)* >>>>>>>>>> * at >>>>>>>>>> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754)* >>>>>>>>>> * at org.apache.tomcat.util.net >>>>>>>>>> <http://org.apache.tomcat.util.net>.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376)* >>>>>>>>>> * at org.apache.tomcat.util.net >>>>>>>>>> <http://org.apache.tomcat.util.net>.SocketProcessorBase.run(SocketProcessorBase.java:49)* >>>>>>>>>> * at >>>>>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)* >>>>>>>>>> * at >>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)* >>>>>>>>>> * at >>>>>>>>>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)* >>>>>>>>>> * at java.lang.Thread.run(Thread.java:745)* >>>>>>>>>> >>>>>>>>>> this error is also shown after choosing a purged user. Set >>>>>>>>>> time_zone manually in db fixed it. >>>>>>>>>> time_zone seems to be deleted while purging and then it causes >>>>>>>>>> the error. >>>>>>>>>> >>>>>>>>>> om_user-table will be handled correctly. >>>>>>>>>> conference_log preserves the ip-address >>>>>>>>>> address-table preserves the address >>>>>>>>>> chat-table preserves from_name >>>>>>>>>> >>>>>>>>>> Did I miss something? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Am 25.04.2018 um 09:00 schrieb Peter Dähn: >>>>>>>>>> >>>>>>>>>> Good morning Maxim, >>>>>>>>>> >>>>>>>>>> I was alone in the office these days... unfortunatly there were >>>>>>>>>> no time left... But I red right in the moment the RUNNING.txt... all >>>>>>>>>> a bit >>>>>>>>>> different... ;-) >>>>>>>>>> >>>>>>>>>> I'm going to text it now... give me a bit time... ;-) >>>>>>>>>> >>>>>>>>>> Am 25.04.2018 um 04:41 schrieb Maxim Solodovnik: >>>>>>>>>> >>>>>>>>>> Good morning Peter :) >>>>>>>>>> >>>>>>>>>> were you able to take a look at this issue? >>>>>>>>>> >>>>>>>>>> On Mon, Apr 23, 2018 at 2:37 PM, Peter Dähn <[email protected]> >>>>>>>>>> <[email protected]> wrote: >>>>>>>>>> >>>>>>>>>> Hi Maxim, >>>>>>>>>> >>>>>>>>>> I will have a look right now. >>>>>>>>>> >>>>>>>>>> Greetings Peter >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Am 21.04.2018 um 18:17 schrieb Maxim Solodovnik: >>>>>>>>>> >>>>>>>>>> Hello Peter, >>>>>>>>>> >>>>>>>>>> this is partially implemented >>>>>>>>>> Could you please test current implementation using latest nightly >>>>>>>>>> build? >>>>>>>>>> >>>>>>>>>> And maybe you can provide sample "personal data agreement" text? >>>>>>>>>> >>>>>>>>>> On Wed, Apr 11, 2018 at 6:38 PM, Peter Dähn <[email protected]> >>>>>>>>>> <[email protected]> wrote: >>>>>>>>>> >>>>>>>>>> I try... ;-) >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Am 11.04.2018 um 13:11 schrieb Maxim Solodovnik: >>>>>>>>>> >>>>>>>>>> Will write it as a requirement, will see what can be done here >>>>>>>>>> Thanks a lot for the quick answers! >>>>>>>>>> >>>>>>>>>> On Wed, Apr 11, 2018 at 5:34 PM, Peter Dähn <[email protected]> >>>>>>>>>> <[email protected]> wrote: >>>>>>>>>> >>>>>>>>>> ip-address is now a private date... it have to be at least >>>>>>>>>> anonymised >>>>>>>>>> after 7 (maybe 14 days)... ipv4 addresses delete last 8 >>>>>>>>>> recommended 16 >>>>>>>>>> bit >>>>>>>>>> (192.168.123.0 or 192.168.0.0) and ipv6 preserve first 48 -8 or >>>>>>>>>> better >>>>>>>>>> 16 >>>>>>>>>> Bit (2a00:1234:56:: or 2a00:1234::) Maybe this could be done >>>>>>>>>> automated >>>>>>>>>> after >>>>>>>>>> 7 Days? >>>>>>>>>> >>>>>>>>>> Greetings Peter >>>>>>>>>> >>>>>>>>>> Am 11.04.2018 um 09:31 schrieb Maxim Solodovnik: >>>>>>>>>> >>>>>>>>>> According "Hash algorithm" I planned to use random UUID >>>>>>>>>> so All fields will look like this: >>>>>>>>>> "Purged_54cd4426-1c0a-4ab8-bb35-eb6d26da99cf" >>>>>>>>>> >>>>>>>>>> Are you sure IP should be cleaned-up? There will be no chance to >>>>>>>>>> "restore" >>>>>>>>>> who was this user ..... >>>>>>>>>> >>>>>>>>>> On Wed, Apr 11, 2018 at 2:18 PM, Peter Dähn <[email protected]> >>>>>>>>>> <[email protected]> wrote: >>>>>>>>>> >>>>>>>>>> Hi Maxim, >>>>>>>>>> >>>>>>>>>> I think this list is complete and you are right, this is a lot of >>>>>>>>>> stuff. >>>>>>>>>> >>>>>>>>>> The option that you suggest sound much more feasible. From my >>>>>>>>>> point of >>>>>>>>>> few this should be enough. >>>>>>>>>> >>>>>>>>>> Hash algorithm need to be state of the art. IP-address in >>>>>>>>>> ConferenceLog >>>>>>>>>> need to be cleaned. >>>>>>>>>> >>>>>>>>>> I think this is a good way. >>>>>>>>>> >>>>>>>>>> Btw... is there is a way/setting to anonymize IP-adresses while >>>>>>>>>> logging? >>>>>>>>>> Otherwise I need to write a script to do so. Maybe I need to do >>>>>>>>>> it >>>>>>>>>> anyway to >>>>>>>>>> kick out usernames. Logfiles need to be delete after 7 (maybe 14) >>>>>>>>>> days >>>>>>>>>> or >>>>>>>>>> they need to be without any userdata. >>>>>>>>>> >>>>>>>>>> Greetings Peter >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Am 11.04.2018 um 06:43 schrieb Maxim Solodovnik: >>>>>>>>>> >>>>>>>>>> Hello Peter, >>>>>>>>>> >>>>>>>>>> Here is the high level list of what need to done to "hard delete" >>>>>>>>>> user >>>>>>>>>> from the system: >>>>>>>>>> >>>>>>>>>> delete user >>>>>>>>>> delete all user contacts (also users, so we might have recursion >>>>>>>>>> here) >>>>>>>>>> delete user from all groups >>>>>>>>>> delete user from room moderators >>>>>>>>>> delete all appointments with owner == user >>>>>>>>>> delete all calendars with owner == user >>>>>>>>>> delete all meeting members in appointments where owner != user >>>>>>>>>> delete all Private Messages where user is in to/from fields >>>>>>>>>> delete all UserContact + Requests >>>>>>>>>> delete all invitation sent by this user >>>>>>>>>> delete all private rooms owned by this user >>>>>>>>>> delete all user private files/recordings >>>>>>>>>> delete all chat messages send/received by this user >>>>>>>>>> clean email messages >>>>>>>>>> clean all Polls/answers >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> This list scares me a lot :((( >>>>>>>>>> >>>>>>>>>> So let's discuss the option: "Mark user deleted and clean-up >>>>>>>>>> sensitive >>>>>>>>>> information" >>>>>>>>>> >>>>>>>>>> What I would propose: >>>>>>>>>> >>>>>>>>>> In Admin->User area >>>>>>>>>> >>>>>>>>>> display all users (deleted should be "read-only" with restore and >>>>>>>>>> purge >>>>>>>>>> options only) >>>>>>>>>> add additional "Purge" button >>>>>>>>>> In case Purge will be selected: >>>>>>>>>> >>>>>>>>>> User will be marked deleted >>>>>>>>>> AsteriskSipUser and Address will be replaced with empty objects >>>>>>>>>> User fields "age, externaluserid, firstname, lastname, login, >>>>>>>>>> pictureuri" >>>>>>>>>> will be replaced with "Purged_some_hash" >>>>>>>>>> User profile picture will be deleted >>>>>>>>>> ChatMessage: fromName will be replaced with "Purged User" >>>>>>>>>> MailMessage: should be purged (some search by email will be >>>>>>>>>> required) >>>>>>>>>> >>>>>>>>>> ConferenceLog right now contains userId+UserIp right now, so it >>>>>>>>>> is 2 >>>>>>>>>> numbers should it be cleaned up? >>>>>>>>>> >>>>>>>>>> SOAPLogin contains clientURL and doesn't contains userId, so it >>>>>>>>>> is >>>>>>>>>> impossible to associate SoapLogin object with particular user >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Would it be enough? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Fri, Apr 6, 2018 at 4:21 PM, Peter Dähn <[email protected]> >>>>>>>>>> <[email protected]> wrote: >>>>>>>>>> >>>>>>>>>> Hi Maxim, >>>>>>>>>> >>>>>>>>>> hard delete as only option would be the easiest way (for the >>>>>>>>>> admin). >>>>>>>>>> One >>>>>>>>>> doesn't need to remind "hard delete" at a given time... I think >>>>>>>>>> it >>>>>>>>>> need to >>>>>>>>>> be implemented anyway. I thought just the ones that doesn't need >>>>>>>>>> to >>>>>>>>>> take >>>>>>>>>> care about these regulation could keep things as they are now... >>>>>>>>>> >>>>>>>>>> Greetings Peter >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Am 06.04.2018 um 10:09 schrieb Maxim Solodovnik: >>>>>>>>>> >>>>>>>>>> I'm afraid there will be no option to "final delete one record" >>>>>>>>>> It will be: perform total clean-up and hard delete all soft >>>>>>>>>> deleted >>>>>>>>>> records >>>>>>>>>> >>>>>>>>>> Or better to perform: hard delete as the only option? >>>>>>>>>> >>>>>>>>>> On Fri, Apr 6, 2018 at 2:44 PM, Peter Dähn <[email protected]> >>>>>>>>>> <[email protected]> wrote: >>>>>>>>>> >>>>>>>>>> Hi Maxim, >>>>>>>>>> >>>>>>>>>> "soft" and "final delete" should be enough I think... >>>>>>>>>> >>>>>>>>>> It just need to be "findable" and described for new admins that >>>>>>>>>> provide the >>>>>>>>>> service in the EU... >>>>>>>>>> >>>>>>>>>> jira in a second... >>>>>>>>>> >>>>>>>>>> Greetings Peter >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Am 05.04.2018 um 17:47 schrieb Maxim Solodovnik: >>>>>>>>>> >>>>>>>>>> Hello Peter, >>>>>>>>>> >>>>>>>>>> This sounds like lots of new testing :( >>>>>>>>>> Will try to find time and include it in 4.0.3/4.0.4 >>>>>>>>>> >>>>>>>>>> (have very limited time right now :( ) >>>>>>>>>> Will appreciated any help with testing >>>>>>>>>> >>>>>>>>>> Would it be OK to perform "final delete" in clean-up widget? i.e. >>>>>>>>>> delete will be "soft delete", then in if will push "Clean-up" all >>>>>>>>>> soft >>>>>>>>>> deleted data will be hard deleted ... >>>>>>>>>> Or it doesn't worth to have both? only hard delete will be >>>>>>>>>> enough? >>>>>>>>>> >>>>>>>>>> On Thu, Apr 5, 2018 at 5:55 PM, Peter Dähn <[email protected]> >>>>>>>>>> <[email protected]> wrote: >>>>>>>>>> >>>>>>>>>> Hey there, >>>>>>>>>> >>>>>>>>>> new privacy regulations will take place on the 25th May 2018 in >>>>>>>>>> Europe. >>>>>>>>>> You >>>>>>>>>> could find informations about it by searching for General Data >>>>>>>>>> Protection >>>>>>>>>> Regulation (EU) 2016/679. >>>>>>>>>> >>>>>>>>>> To use openmeetings after the 25th of May (in Europe) there need >>>>>>>>>> to >>>>>>>>>> be a >>>>>>>>>> few >>>>>>>>>> changes. We use openmeetings integrated. So I will mainly be >>>>>>>>>> focused >>>>>>>>>> on >>>>>>>>>> the >>>>>>>>>> room. >>>>>>>>>> >>>>>>>>>> I have 3 points that are really necessary: >>>>>>>>>> >>>>>>>>>> 1. User deletion: Datasets of users that will be deleted need to >>>>>>>>>> be >>>>>>>>>> remove >>>>>>>>>> from the database, not just marked as deleted. Probably it is >>>>>>>>>> enough >>>>>>>>>> to >>>>>>>>>> hash >>>>>>>>>> those fields. >>>>>>>>>> >>>>>>>>>> I think critical fields are in table: >>>>>>>>>> >>>>>>>>>> om_user -> age, externaluserid, firstname, >>>>>>>>>> lastname, >>>>>>>>>> login, >>>>>>>>>> pictureuri (and picture itself) and sip_user_id >>>>>>>>>> >>>>>>>>>> conferencelog -> email, external_user_id, >>>>>>>>>> firstname, >>>>>>>>>> lastname, >>>>>>>>>> user_id, userip >>>>>>>>>> >>>>>>>>>> soaplogin -> client_url (contains the ip-address) >>>>>>>>>> >>>>>>>>>> sipusers (here empty so please check) -> >>>>>>>>>> defaultuser, >>>>>>>>>> host, >>>>>>>>>> ipaddr, name >>>>>>>>>> >>>>>>>>>> address -> email, fax, phone >>>>>>>>>> >>>>>>>>>> chat -> from_name >>>>>>>>>> >>>>>>>>>> e-mail_queue (if not empty) -> recipients, replyto >>>>>>>>>> >>>>>>>>>> 2. There need to be a place to place a (customized) privacy >>>>>>>>>> policy. >>>>>>>>>> >>>>>>>>>> 3. Registration-Dialog need to have a button/step to agree the >>>>>>>>>> data >>>>>>>>>> processing. And to this belongs a button to disagree. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> As far as I can see this need to be done in the first place. I'm >>>>>>>>>> sure >>>>>>>>>> there >>>>>>>>>> are more things to do. Maybe someone can complete it. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Greetings Peter >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> WBR >>>>>>>>>> Maxim aka solomax >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> WBR >>>>>>>>>> Maxim aka solomax >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> WBR >>>>>>>>>> Maxim aka solomax >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> WBR >>>>>>>> Maxim aka solomax >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> WBR >>>>>>> Maxim aka solomax >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> WBR >>>>>> Maxim aka solomax >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Daniel Ascher, M.Ed. >>>>> President >>>>> A+ Test Prep and Tutoring >>>>> "Creating Bright Futures" >>>>> >>>>> 505 York Road, Suite 6 >>>>> <https://maps.google.com/?q=505+York+Road,+Suite+6+Jenkintown,+PA+19046+Office:%C2%A0+215&entry=gmail&source=g> >>>>> Jenkintown, PA 19046 >>>>> <https://maps.google.com/?q=505+York+Road,+Suite+6+Jenkintown,+PA+19046+Office:%C2%A0+215&entry=gmail&source=g> >>>>> Office: >>>>> <https://maps.google.com/?q=505+York+Road,+Suite+6+Jenkintown,+PA+19046+Office:%C2%A0+215&entry=gmail&source=g> >>>>> 215 >>>>> <https://maps.google.com/?q=505+York+Road,+Suite+6+Jenkintown,+PA+19046+Office:%C2%A0+215&entry=gmail&source=g> >>>>> .886.9188 >>>>> Direct: 267.242.9640 >>>>> Sign Up for A+ News and Test Prep Tips! >>>>> <http://www.aplustutoring.com/sign-up-for-a-news> >>>>> www.aplustutoring.com >>>>> >>>> >>>> >>>> >>>> -- >>>> WBR >>>> Maxim aka solomax >>>> >>> >>> >>> >>> -- >>> Daniel Ascher, M.Ed. >>> President >>> A+ Test Prep and Tutoring >>> "Creating Bright Futures" >>> >>> 505 York Road, Suite 6 >>> <https://maps.google.com/?q=505+York+Road,+Suite+6+Jenkintown,+PA+19046+Office:%C2%A0+215&entry=gmail&source=g> >>> Jenkintown, PA 19046 >>> <https://maps.google.com/?q=505+York+Road,+Suite+6+Jenkintown,+PA+19046+Office:%C2%A0+215&entry=gmail&source=g> >>> Office: >>> <https://maps.google.com/?q=505+York+Road,+Suite+6+Jenkintown,+PA+19046+Office:%C2%A0+215&entry=gmail&source=g> >>> 215 >>> <https://maps.google.com/?q=505+York+Road,+Suite+6+Jenkintown,+PA+19046+Office:%C2%A0+215&entry=gmail&source=g> >>> .886.9188 >>> Direct: 267.242.9640 >>> Sign Up for A+ News and Test Prep Tips! >>> <http://www.aplustutoring.com/sign-up-for-a-news> >>> www.aplustutoring.com >>> >> >> >> >> -- >> WBR >> Maxim aka solomax >> > > > > -- > Daniel Ascher, M.Ed. > President > A+ Test Prep and Tutoring > "Creating Bright Futures" > > 505 York Road, Suite 6 > <https://maps.google.com/?q=505+York+Road,+Suite+6+Jenkintown,+PA+19046+Office:%C2%A0+215&entry=gmail&source=g> > Jenkintown, PA 19046 > <https://maps.google.com/?q=505+York+Road,+Suite+6+Jenkintown,+PA+19046+Office:%C2%A0+215&entry=gmail&source=g> > Office: > <https://maps.google.com/?q=505+York+Road,+Suite+6+Jenkintown,+PA+19046+Office:%C2%A0+215&entry=gmail&source=g> > 215 > <https://maps.google.com/?q=505+York+Road,+Suite+6+Jenkintown,+PA+19046+Office:%C2%A0+215&entry=gmail&source=g> > .886.9188 > Direct: 267.242.9640 > Sign Up for A+ News and Test Prep Tips! > <http://www.aplustutoring.com/sign-up-for-a-news> > www.aplustutoring.com > -- WBR Maxim aka solomax
