please read my previous answer On Mon, 18 May 2020 at 19:00, Ninnig, Alexander < [email protected]> wrote:
> Hello, > > I enabled debug-mode for ldap-connections and checked the log. > > AD-Binding works, AD-query also works, there is exactly one hit, the log > displays like all my AD-attributes. > After that, the log shows errors - and "caused at" shows: "Data > truncation: Data too long for column 'pictureuri' at row 1 (...)". > Which seems weird, because <ldap_user_picture_uri> is not set (first it > starts with #, so it's a comment, second there is no value). > > > Does anyone know how to provide user-pictures for ldap-accounts? > > Here's the anonymized log: > > > DEBUG 05-18 11:24:15.221 o.a.d.l.c.a.LdapNetworkConnection:596 > [NioProcessor-10] - MSG_04126_REMOVING > (3,org.apache.directory.ldap.client.api.future.BindFuture) > DEBUG 05-18 11:24:15.249 o.a.o.c.l.LdapLoginManager:232 [0.0-5080-exec-4] > - getByLogin:: authenticated ? true, login = 'mylogin', domain = 1, user = > User [id=2, firstname=Alexander, lastname=MyLastname, login=mylogin, > pictureuri=null, deleted=false, languageId=2, address=Address [id=2, > country=DE, street=My Street N. 1, town=Mytown, zip=12345, deleted=false, > [email protected], phone=+49 (01234) 123 - 456], > externalId=null, externalType=null, type=ldap] > DEBUG 05-18 11:24:16.137 o.a.d.l.c.a.LdapNetworkConnection:830 > [NioProcessor-10] - MSG_04137_NOD_RECEIVED () > ERROR 05-18 11:24:16.139 o.a.o.c.l.LdapLoginManager:262 [0.0-5080-exec-4] > - Unexpected exception. > org.springframework.orm.jpa.JpaSystemException: The transaction has been > rolled back. See the nested exceptions for details on the errors that > occurred.; nested exception is > <openjpa-3.1.0-rafcec21a1d489dff682a3ce7986fac6a1c80e8e0 fatal general > error> org.apache.openjpa.persistence.PersistenceException: The transaction > has been rolled back. See the nested exceptions for details on the errors > that occurred. > FailedObject: org.apache.openmeetings.db.entity.user.User-2 > at > org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:408) > at > org.springframework.orm.jpa.DefaultJpaDialect.translateExceptionIfPossible(DefaultJpaDialect.java:128) > at > org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:538) > at > org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:744) > at > org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:712) > at > org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:631) > at > org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:385) > at > org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:99) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) > at > org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:747) > at > org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689) > at > org.apache.openmeetings.db.dao.user.UserDao$$EnhancerBySpringCGLIB$$9dce9d40.update(<generated>) > at > org.apache.openmeetings.core.ldap.LdapLoginManager.login(LdapLoginManager.java:250) > at > org.apache.openmeetings.web.app.WebSession.signIn(WebSession.java:291) > at > org.apache.openmeetings.web.pages.auth.SignInDialog.onSubmit(SignInDialog.java:194) > at > org.apache.openmeetings.web.pages.auth.SignInDialog$SignInForm$1.onSubmit(SignInDialog.java:248) > at > org.apache.wicket.ajax.markup.html.form.AjaxButton$1.onSubmit(AjaxButton.java:113) > at > org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$AjaxFormSubmitter.onSubmit(AjaxFormSubmitBehavior.java:223) > at > org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1308) > at org.apache.wicket.markup.html.form.Form.process(Form.java:1001) > at > org.apache.wicket.markup.html.form.StatelessForm.process(StatelessForm.java:100) > at > org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:825) > at > org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:176) > at > org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:127) > 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:914) > at > org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65) > at > org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282) > 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 > .AbstractUpgradeFilter.processRequestCycle(AbstractUpgradeFilter.java:70) > at > org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206) > at > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) > at > org.red5.logging.LoggerContextFilter.doFilter(LoggerContextFilter.java:84) > 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:202) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:643) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) > at > org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) > at > org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367) > at > org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) > at > org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860) > at org.apache.tomcat.util.net > .Nio2Endpoint$SocketProcessor.doRun(Nio2Endpoint.java:1682) > at org.apache.tomcat.util.net > .SocketProcessorBase.run(SocketProcessorBase.java:49) > at org.apache.tomcat.util.net > .AbstractEndpoint.processSocket(AbstractEndpoint.java:1105) > at org.apache.tomcat.util.net > .Nio2Endpoint$Nio2SocketWrapper$2.completed(Nio2Endpoint.java:596) > at org.apache.tomcat.util.net > .Nio2Endpoint$Nio2SocketWrapper$2.completed(Nio2Endpoint.java:574) > at java.base/sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:127) > at java.base/sun.nio.ch.Invoker$2.run(Invoker.java:219) > at java.base/sun.nio.ch > .AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112) > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > at > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) > at java.base/java.lang.Thread.run(Thread.java:834) > Caused by: org.apache.openjpa.persistence.PersistenceException: The > transaction has been rolled back. See the nested exceptions for details on > the errors that occurred. > at > org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2470) > at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2308) > at > org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2199) > at > org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:2116) > at > org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:84) > at > org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1600) > at > org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:1035) > at > org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:669) > at > org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:534) > ... 62 common frames omitted > Caused by: org.apache.openjpa.persistence.PersistenceException: Data > truncation: Data too long for column 'pictureuri' at row 1 {prepstmnt > 906753354 UPDATE om_user SET updated = ?, pictureuri = ? WHERE id = ?} > [code=1406, state=22001] > at > org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:5250) > at > org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:5210) > at > org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:134) > at > org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:75) > at > org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushBatch(BatchingPreparedStatementManagerImpl.java:226) > at > org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:65) > at > org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:108) > at > org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:81) > at > org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:757) > at > org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:146) > at > org.apache.openjpa.datacache.DataCacheStoreManager.flush(DataCacheStoreManager.java:679) > at > org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:146) > ... 70 common frames omitted > Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: Data > truncation: Data too long for column 'pictureuri' at row 1 {prepstmnt > 906753354 UPDATE om_user SET updated = ?, pictureuri = ? WHERE id = ?} > [code=1406, state=22001] > at > org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:219) > at > org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:195) > at > org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$1000(LoggingConnectionDecorator.java:58) > at > org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:1188) > at > org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:308) > at > org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1856) > at > org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:271) > at > org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushSingleRow(BatchingPreparedStatementManagerImpl.java:255) > at > org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushBatch(BatchingPreparedStatementManagerImpl.java:158) > ... 77 common frames omitted > ERROR 05-18 11:24:16.140 o.a.w.DefaultExceptionMapper:170 > [0.0-5080-exec-4] - Unexpected error occurred > java.util.MissingResourceException: Unable to find property: 'null' for > component: signin > [class=org.apache.openmeetings.web.pages.auth.SignInDialog]. Locale: null, > style: null > at org.apache.wicket.Localizer.getString(Localizer.java:269) > at org.apache.wicket.Localizer.getString(Localizer.java:201) > at org.apache.wicket.Localizer.getString(Localizer.java:131) > at org.apache.wicket.Component.getString(Component.java:1834) > at org.apache.wicket.Component.getString(Component.java:1821) > at > org.apache.openmeetings.web.pages.auth.SignInDialog.onSubmit(SignInDialog.java:196) > at > org.apache.openmeetings.web.pages.auth.SignInDialog$SignInForm$1.onSubmit(SignInDialog.java:248) > at > org.apache.wicket.ajax.markup.html.form.AjaxButton$1.onSubmit(AjaxButton.java:113) > at > org.apache.wicket.ajax.form.AjaxFormSubmitBehavior$AjaxFormSubmitter.onSubmit(AjaxFormSubmitBehavior.java:223) > at > org.apache.wicket.markup.html.form.Form.delegateSubmit(Form.java:1308) > at org.apache.wicket.markup.html.form.Form.process(Form.java:1001) > at > org.apache.wicket.markup.html.form.StatelessForm.process(StatelessForm.java:100) > at > org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:825) > at > org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubmitBehavior.java:176) > at > org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:127) > 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:914) > at > org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65) > at > org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282) > 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 > .AbstractUpgradeFilter.processRequestCycle(AbstractUpgradeFilter.java:70) > at > org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206) > at > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) > at > org.red5.logging.LoggerContextFilter.doFilter(LoggerContextFilter.java:84) > 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:202) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:643) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) > at > org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) > at > org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367) > at > org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) > at > org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860) > at org.apache.tomcat.util.net > .Nio2Endpoint$SocketProcessor.doRun(Nio2Endpoint.java:1682) > at org.apache.tomcat.util.net > .SocketProcessorBase.run(SocketProcessorBase.java:49) > at org.apache.tomcat.util.net > .AbstractEndpoint.processSocket(AbstractEndpoint.java:1105) > at org.apache.tomcat.util.net > .Nio2Endpoint$Nio2SocketWrapper$2.completed(Nio2Endpoint.java:596) > at org.apache.tomcat.util.net > .Nio2Endpoint$Nio2SocketWrapper$2.completed(Nio2Endpoint.java:574) > at java.base/sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:127) > at java.base/sun.nio.ch.Invoker$2.run(Invoker.java:219) > at java.base/sun.nio.ch > .AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112) > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > at > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) > at java.base/java.lang.Thread.run(Thread.java:834) > > > > > > -----Ursprüngliche Nachricht----- > Von: Ninnig, Alexander <[email protected]> > Gesendet: Montag, 18. Mai 2020 12:41 > An: [email protected] > Betreff: AW: OM 4.0.10, AD-Pictures (or: how can I provide pictures for > LDAP-accounts) > > Hello, > > Another Update: > > I also tried the AD-attribute <photo>. > And I also used a software instead of PowerShell (CodeTwo Active Directory > Photos 1.32 - this software also checks the imagefiles for allowed maximum > size). > Still - doesn't work ("Internal Error"). > > By the way (this might actually be an important information): > One DOESN'T get "Internal Error" if there is no AD-Photo provided. > So all users with no picture stored in AD can login. > The second I save <ldap_user_attr_picture=thumbnailPhoto> or > <ldap_user_attr_picture=jpegPhoto> or <ldap_user_attr_picture=photo> AND > try to login with a an LDAP-user-account, that has an image stored in AD, I > get "Internal Error". > > > > I'm beginning to think, that openmeetings cannot read pictures from AD > (octet string). > Has anyone managed to use AD-stored-photos OR found a way to provide > LDAP-accounts with photos? > > Best wishes, > Alex > > > -----Ursprüngliche Nachricht----- > Von: Ninnig, Alexander <[email protected]> > Gesendet: Montag, 18. Mai 2020 12:03 > An: [email protected] > Betreff: AW: OM 4.0.10, AD-Pictures (or: how can I provide pictures for > LDAP-accounts) > > Hello, > > update on my question. > > CHECKING ANOTHER AD-ATTRIBUTE > --------------------------------------------------- > > I just checked the AD-attribute <jpegPhoto>, which also can be used to > store pictures in Active Directory (<ldap_user_attr_picture=jpegPhoto>). > Doesn't work either ("Internal Error"). > > > CHECKING THE PICTUREFILES > -------------------------------------------------- > > After that, I checked my picture-files (to make sure, there is nothing > wrong with them) and I created two picturefiles "from scratch", meaning, I > copied my picture into Windows Paint and saved it as .png and as .jpg and > even as .bmp. > > I imported the jpg using powershell: > Import-Module ActiveDirectory > $photo = [byte[]](Get-Content C:\Thumbs\myself.jpg -Encoding byte) > Set-ADUser Alex -Replace @{jpegPhoto=$photo} > Set-ADUser Alex -Replace @{thumbnailPhoto=$photo} > Still: "Internal Error" when trying to login. > > Then I used the png using powershell: > Import-Module ActiveDirectory > $photo = [byte[]](Get-Content C:\Thumbs\myself.png -Encoding byte) > Set-ADUser Alex -Replace @{jpegPhoto=$photo} > Set-ADUser Alex -Replace @{thumbnailPhoto=$photo} > Still: "Internal Error" when trying to login. > > Then I used the bmp using powershell: > Import-Module ActiveDirectory > $photo = [byte[]](Get-Content C:\Thumbs\myself.png -Encoding byte) > Set-ADUser Alex -Replace @{jpegPhoto=$photo} > Set-ADUser Alex -Replace @{thumbnailPhoto=$photo} Last command led > to an error, since <thumbnailPhoto> doens't accept bitmap. > Still: "Internal Error" when trying to login. > > My picturefiles are 200x200 pixel and pretty small (png 64 kb, jpg 13 kb, > bmp 118 kb). > I could work on the picturefiles, if I knew what to change (like > compression or dpi). > But without any hints, it's like a needle in a haystack. > And I don't know if the files are the problem or the AD-attribute or the > way, the pictures are stored in AD. > > > Does anyone have an idea? > > Best wishes, > Alex > > -----Ursprüngliche Nachricht----- > Von: Ninnig, Alexander <[email protected]> > Gesendet: Montag, 18. Mai 2020 10:40 > An: [email protected] > Betreff: OM 4.0.10, AD-Pictures (or: how can I provide pictures for > LDAP-accounts) > > Hello, > > we are using OpenMeetings 4.0.10 in our productive environment. > > LDAP-Configuration (om_ldap.cfg) works fine, except for getting > thumbnails/pictures stored in Active Directory. > If I uncomment the line <ldap_user_attr_picture=thumbnailPhoto> and save > the config-file, I cannot login anymore with my Active-Directory-account - > OpenMeetings shows an internal error instead. > > The only AD-account with a picture stored is my own (so far). The > AD-attribute ist thumbnailPhoto, so that is correct. Outlook displays my > picture, so that works, too. > > I wouldn't really need AD-stored photos, but I would like my user-accounts > to have pictures, so one doesn't just see a lot of > questionmarks-profilepictures, when starting a conference without webcam. > If I use the LDAP-connection, I can provide a picture for my account, but > this picture is discarded the next time I log in. > So the ldap-connection configured doesn't let me change > openmeetings-accounts permantenly - which is logical, since they are > ldap-accounts. > > I just need a way to provide accounts with pictures. > I wouldn't mind configuring them manually. > > Does anyone know how to provide user-pictures for ldap-accounts? > > Have a nice day and an even better week, Alex > > PS: If this already has been discussed and there is an answer I haven't > found by myself, I apologize. In that case, can you just send my the link > tot he previous discussion? > -- Best regards, Maxim
