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
Jenkintown, PA 19046
Office: 215.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

Reply via email to