[Building Sakai] How to create user using Sql Queries

Steve Swinsburg steve.swinsburg at gmail.com
Mon Jun 23 06:54:19 PDT 2014


Can you show your actual code for this piece? I have a feeling your unlock
isn't being done correctly.

cheers,
Steve


On Mon, Jun 23, 2014 at 7:18 PM, Jehan <jeehaaan at gmail.com> wrote:

> Why I am facing following exception though I have assigned permission
> user.upd.any to user "david"
>
> New user successfully inserting but updation create problem
>
> org.sakaiproject.user.api.*UserPermissionException *user=*david *function=
> *user.upd.any* resource=*/user/stewart1*
>         at
> org.sakaiproject.user.impl.BaseUserDirectoryService.unlock(BaseUserDi
> rectoryService.java:270)
>         at
> org.sakaiproject.user.impl.BaseUserDirectoryService.editUser(BaseUser
> DirectoryService.java:1085)
>         at
> org.sakaiproject.user.cover.UserDirectoryService.editUser(UserDirecto
> ryService.java:156)
>         at
> org.sakaiproject.tool.qarnet.QarnetTool.CreateUpdateSakaiUser(QarnetT
> ool.java:3825)
>         at
> org.sakaiproject.tool.qarnet.QarnetTool.processCreateStudent(QarnetTo
> ol.java:3760)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at
> com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:146)
>
>         at
> com.sun.faces.application.ActionListenerImpl.processAction(ActionList
> enerImpl.java:92)
>         at javax.faces.component.UICommand.broadcast(UICommand.java:332)
>         at
> javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:287)
>
>         at
> javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:4
> 01)
>         at
> com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicat
> ionPhase.java:95)
>         at
> com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:268)
>         at
> com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110)
>
>         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:213)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
> icationFilterChain.java:305)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
> ilterChain.java:210)
>         at
> org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:634)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
> icationFilterChain.java:243)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
> ilterChain.java:210)
>         at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDisp
> atcher.java:749)
>         at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(Applica
> tionDispatcher.java:487)
>         at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationD
> ispatcher.java:412)
>         at
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDis
> patcher.java:339)
>         at
> org.sakaiproject.tool.qarnet.QarnetFilePickerServlet.dispatch(QarnetF
> ilePickerServlet.java:158)
>         at org.sakaiproject.jsf.util.JsfTool.doPost(JsfTool.java:256)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
> icationFilterChain.java:305)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
> ilterChain.java:210)
>         at
> org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:634)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
> icationFilterChain.java:243)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
> ilterChain.java:210)
>         at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDisp
> atcher.java:749)
>         at
> org.apache.catalina.core.ApplicationDispatcher.processRequest(Applica
> tionDispatcher.java:487)
>         at
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationD
> ispatcher.java:379)
>         at
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDis
> patcher.java:339)
>         at
> org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(A
> ctiveToolComponent.java:511)
>         at
> org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(Skin
> nableCharonPortal.java:1483)
>         at
> org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandle
> r.java:213)
>         at
> org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler
> .java:96)
>         at
> org.sakaiproject.portal.charon.handlers.ToolHandler.doPost(ToolHandle
> r.java:73)
>         at
> org.sakaiproject.portal.charon.SkinnableCharonPortal.doPost(Skinnable
> CharonPortal.java:1273)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
> icationFilterChain.java:305)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
> ilterChain.java:210)
>         at
> org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:695)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
> icationFilterChain.java:243)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
> ilterChain.java:210)
>         at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
> alve.java:222)
>         at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
> alve.java:123)
>         at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
> torBase.java:472)
>         at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
> ava:171)
>         at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
> ava:99)
>         at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
> 947)
>         at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
> ve.java:118)
>         at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
> a:408)
>         at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp
> 11Processor.java:1009)
>         at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(
> AbstractProtocol.java:589)
>         at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoin
> t.java:312)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
> utor.java:886)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
> .java:908)
>         at java.lang.Thread.run(Thread.java:619)
>
>
>
>
> On Mon, Jun 23, 2014 at 1:35 PM, Jehan <jeehaaan at gmail.com> wrote:
>
>> Everything works fine,
>>
>>  but following error log is generating when creating new user or updating
>> existing user
>>
>>
>>
>> Jun 23, 2014 2:32:08 PM org.apache.catalina.loader.WebappClassLoader
>> loadClass
>> INFO: Illegal access: this web application instance has been stopped
>> already.  C
>> ould not load org.sakaiproject.sitestats.impl.ServerStatImpl.  The
>> eventual foll
>> owing stack trace is caused by an error thrown for debugging purposes as
>> well as
>>  to attempt to terminate the thread which caused the illegal access, and
>> has no
>> functional impact.
>> java.lang.IllegalStateException
>>         at
>> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoa
>> der.java:1599)
>>         at
>> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoa
>> der.java:1558)
>>         at
>> org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:164)
>>
>>         at
>> org.hibernate.impl.SessionFactoryImpl.getImplementors(SessionFactoryI
>> mpl.java:730)
>>         at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1544)
>>         at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
>>         at
>> org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java:305)
>>         at
>> org.sakaiproject.sitestats.impl.StatsUpdateManagerImpl.doUpdateServer
>> StatObjects(StatsUpdateManagerImpl.java:1157)
>>         at
>> org.sakaiproject.sitestats.impl.StatsUpdateManagerImpl.access$1400(St
>> atsUpdateManagerImpl.java:76)
>>         at
>> org.sakaiproject.sitestats.impl.StatsUpdateManagerImpl$4.doInHibernat
>> e(StatsUpdateManagerImpl.java:878)
>>         at
>> org.springframework.orm.hibernate3.HibernateTemplate.doExecute(Hibern
>> ateTemplate.java:419)
>>         at
>> org.springframework.orm.hibernate3.HibernateTemplate.execute(Hibernat
>> eTemplate.java:339)
>>         at
>> org.sakaiproject.sitestats.impl.StatsUpdateManagerImpl.doUpdateConsol
>> idatedEvents(StatsUpdateManagerImpl.java:805)
>>         at
>> org.sakaiproject.sitestats.impl.StatsUpdateManagerImpl.run(StatsUpdat
>> eManagerImpl.java:484)
>>         at java.lang.Thread.run(Thread.java:619)
>>
>>
>>
>> On Mon, Jun 23, 2014 at 1:04 PM, Jehan <jeehaaan at gmail.com> wrote:
>>
>>> Thanks! problem resolved, it was realm entry missing.
>>>
>>>
>>>
>>> On Mon, Jun 23, 2014 at 10:24 AM, Jehan <jeehaaan at gmail.com> wrote:
>>>
>>>> Dear Metthew Jhones!
>>>>
>>>> Yes! I want to create new tool for some users who will create new user
>>>> accounts only.
>>>>
>>>> Yes! I am using UserDirectoryService.
>>>>
>>>> New tool is added to a project site, and that user  i.g., "DAVID" is
>>>> added with maintain role.
>>>>
>>>>
>>>> When "DAVID" attempt to create new user  then face permission/security
>>>> exception. I don't want to give access of  !admin (Administrator
>>>> Workspace) to that user.
>>>>
>>>> How to resolve permission exception.
>>>>
>>>> Thanks
>>>>
>>>>
>>>>
>>>> On Mon, Jun 23, 2014 at 8:50 AM, Steve Swinsburg <
>>>> steve.swinsburg at gmail.com> wrote:
>>>>
>>>>> As others have suggested, use the api.
>>>>>
>>>>> Rule of thumb: unless your tool owns the database tables, dont touch
>>>>> them with SQL.
>>>>>
>>>>> You can wrap the api calls with session escalation if required. Know
>>>>> what you are doing before you do that though, and how to cleanup.
>>>>>
>>>>> Cheers
>>>>> Steve
>>>>>
>>>>> sent from my mobile device
>>>>> On 21/06/2014 3:09 PM, "Jehan" <jeehaaan at gmail.com> wrote:
>>>>>
>>>>>>  Dear Johan
>>>>>>
>>>>>> I want to create a new tool for user creation and password resetting,
>>>>>> that tool permission will be given to an academic assistant, who will be
>>>>>> able to change password and create new user  of his department only, we
>>>>>> cannot give him admin rights/realm, and without admin rights webservices
>>>>>> gives permission exception while creating new user.
>>>>>>
>>>>>> Can you help.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Fri, Jun 20, 2014 at 8:06 PM, John Bush <jbush at anisakai.com>
>>>>>> wrote:
>>>>>>
>>>>>>> yes but I think it would be several sql calls, but its the wrong way
>>>>>>> to do it,  so I'm not going to give you any details to shoot yourself
>>>>>>> in the foot with.
>>>>>>>
>>>>>>> On Fri, Jun 20, 2014 at 3:06 AM, Jehan <jeehaaan at gmail.com> wrote:
>>>>>>> > Dear All
>>>>>>> >
>>>>>>> >
>>>>>>> > Is it possible to create new user using Sql Query instead of using
>>>>>>> > web-service call.
>>>>>>> >
>>>>>>> > Thanks
>>>>>>> >
>>>>>>> > _______________________________________________
>>>>>>> > sakai-dev mailing list
>>>>>>> > sakai-dev at collab.sakaiproject.org
>>>>>>> > http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>>>>>> >
>>>>>>> > TO UNSUBSCRIBE: send email to
>>>>>>> sakai-dev-unsubscribe at collab.sakaiproject.org
>>>>>>> > with a subject of "unsubscribe"
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> John Bush
>>>>>>> 602-490-0470
>>>>>>>
>>>>>>> ** This message is neither private nor confidential in fact the US
>>>>>>> government is storing it in a warehouse located in Utah for future
>>>>>>> data mining use cases should they arise. **
>>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> sakai-dev mailing list
>>>>>> sakai-dev at collab.sakaiproject.org
>>>>>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>>>>>
>>>>>> TO UNSUBSCRIBE: send email to
>>>>>> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>>>>>> "unsubscribe"
>>>>>>
>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20140623/d3d38937/attachment.html 


More information about the sakai-dev mailing list