Uploaded image for project: 'Grouper'
  1. Grouper
  2. GRP-3172

Privilege group inherit save error

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Fixed
    • Minor
    • 2.5.44
    • None
    • None
    • None

    Description

      gsh_builtin_gshTemplateOutput.addOutputLine("Finished executing template: " + gsh_input_workingGroupExtension);, Output (1000k max):
      groovy:001> import edu.internet2.middleware.grouper.app.gsh.template.*;
      groovy:002> import edu.internet2.middleware.grouper.util.*;
      groovy:003> GshTemplateOutput gsh_builtin_gshTemplateOutput = GshTemplateOutput.retrieveGshTemplateOutput();
      ===> edu.internet2.middleware.grouper.app.gsh.template.GshTemplateOutput@626ff077
      groovy:004> GshTemplateRuntime gsh_builtin_gshTemplateRuntime = GshTemplateRuntime.retrieveGshTemplateRuntime();
      ===> edu.internet2.middleware.grouper.app.gsh.template.GshTemplateRuntime@445b4594
      groovy:005> GrouperSession gsh_builtin_grouperSession = gsh_builtin_gshTemplateRuntime.getGrouperSession();
      ===> 2ab03bd3032240b4877fffae384cba4a,'GrouperSystem','application'
      groovy:006> Subject gsh_builtin_subject = gsh_builtin_gshTemplateRuntime.getCurrentSubject();
      ===> Subject id: chris.hubing@at.internet2.edu, sourceId: ldap, name: Chris Hubing
      groovy:007> String gsh_builtin_subjectId = "chris.hubing@at.internet2.edu";
      ===> chris.hubing@at.internet2.edu
      groovy:008> String gsh_builtin_ownerStemName = "ref:incommon-collab";
      ===> ref:incommon-collab
      groovy:009> String gsh_input_workingGroupExtension = "myGroup";
      ===> myGroup
      groovy:010> String gsh_input_workingGroupDisplayExtension = "My group";
      ===> My group
      groovy:011> String gsh_input_workingGroupDescription = "My working group will do a lot of group work";
      ===> My working group will do a lot of group work
      groovy:012> Boolean gsh_input_isSympa = true;
      ===> true
      groovy:013> String gsh_input_sympaDomain = "internet2";
      ===> internet2
      groovy:014> Boolean gsh_input_isSympaModerated = true;
      ===> true
      groovy:015> String workingGroupFolderName = "ref:incommon-collab:" + gsh_input_workingGroupExtension;
      ===> ref:incommon-collab:myGroup
      groovy:016>
      groovy:017> // default value for display extension is just the extension
      groovy:018> String displayExtension = GrouperUtil.defaultIfBlank(gsh_input_workingGroupDisplayExtension, gsh_input_workingGroupExtension);
      ===> My group
      groovy:019>
      groovy:020> // we dont want the word "null" printed out if this is null, so convert to empty string if this is null
      groovy:021> gsh_input_workingGroupDescription = GrouperUtil.defaultString(gsh_input_workingGroupDescription);
      ===> My working group will do a lot of group work
      groovy:022>
      groovy:023> // validate first
      groovy:024> // Check if working group folder exists
      groovy:025> Stem workingGroupFolder = StemFinder.findByName(gsh_builtin_grouperSession, workingGroupFolderName, false);
      groovy:026> if (workingGroupFolder != null)

      { groovy:027> gsh_builtin_gshTemplateOutput.addValidationLine("gsh_input_workingGroupExtension", groovy:028> "Error: working group extension '" + gsh_input_workingGroupExtension + "' already exists!"); groovy:029> }

      groovy:030>
      groovy:031> // Check gsh_input_sympaDomain if gsh_input_isSympa
      groovy:032> if (gsh_input_isSympa && GrouperUtil.isBlank(gsh_input_sympaDomain))

      { groovy:033> gsh_builtin_gshTemplateOutput.addValidationLine("gsh_input_sympaDomain", groovy:034> "Error: Sympa domain is required if provisioning to Sympa"); groovy:035> }

      groovy:036>
      groovy:037> String sympaFolderName = null;
      groovy:038>
      groovy:039> if (gsh_input_isSympa) {
      groovy:040> sympaFolderName = "app:sympa:" + gsh_input_sympaDomain + ":" + gsh_input_workingGroupExtension;
      groovy:041> Stem sympaFolder = StemFinder.findByName(gsh_builtin_grouperSession, sympaFolderName, false);
      groovy:042> if (workingGroupFolder != null)

      { groovy:043> gsh_builtin_gshTemplateOutput.addValidationLine("gsh_input_workingGroupExtension", groovy:044> "Error: sympa folder '" + sympaFolderName + "' already exists!"); groovy:045> }

      groovy:046> }
      groovy:047>
      groovy:048> // Do not proceed is there is an error
      groovy:049> if (GrouperUtil.length(gsh_builtin_gshTemplateOutput.getOutputLines()) > 0)

      { groovy:050> gsh_builtin_gshTemplateOutput.assignIsError(true); groovy:051> }

      else {
      groovy:052>
      groovy:053> // Create working group folder
      groovy:054> Stem workingGroupFolder = new StemSave().assignName(workingGroupFolderName).assignDisplayExtension(displayExtension)
      groovy:055> .assignDescription("Folder holds working group roles. " + gsh_input_workingGroupDescription).save();
      groovy:056> gsh_builtin_gshTemplateOutput.addOutputLine("Folder created: " + workingGroupFolderName);
      groovy:057>
      groovy:058> // Create users group
      groovy:059> Group usersGroup = new GroupSave().assignName(workingGroupFolderName + ":users")
      groovy:060> .assignDisplayExtension(displayExtension + " users")
      groovy:061> .assignDescription("Users role means members of the working group with access to collaboration tools. "
      groovy:062> + gsh_input_workingGroupDescription).save();
      groovy:063> gsh_builtin_gshTemplateOutput.addOutputLine("Group created: " + usersGroup.getName());
      groovy:064>
      groovy:065> // Create admins group
      groovy:066> Group adminsGroup = new GroupSave().assignName(workingGroupFolderName + ":admins")
      groovy:067> .assignDisplayExtension(displayExtension + " admins")
      groovy:068> .assignDescription("Admins role means can manage / attest the working group. " + gsh_input_workingGroupDescription).save();
      groovy:069> gsh_builtin_gshTemplateOutput.addOutputLine("Group created: " + adminsGroup.getName());
      groovy:070>
      groovy:071> // If the initial admin is passed in
      groovy:072> if (gsh_builtin_subject != null && GrouperUtil.equals("ldap", gsh_builtin_subject.getSourceId()))

      { groovy:073> groovy:074> // add the initial admin to be in the admins group groovy:075> new MembershipSave().assignGroup(adminsGroup).assignSubject(gsh_builtin_subject).save(); groovy:076> gsh_builtin_gshTemplateOutput.addOutputLine("Added admin: " + gsh_builtin_subject.getId() + " to group: " + adminsGroup.getName()); groovy:077> }

      else

      { groovy:078> // if not resolvable thats just a warning groovy:079> gsh_builtin_gshTemplateOutput.addOutputLine("warning", groovy:080> "Warning: admin subject not resolvable or in wrong source '" + gsh_builtin_subjectId + "'"); groovy:081> groovy:082> }

      groovy:083> }
      ===> edu.internet2.middleware.grouper.app.gsh.template.GshTemplateOutput@626ff077
      groovy:084>
      groovy:085> // Assign privs for admins on folder
      groovy:086> new PrivilegeGroupInheritanceSave().assignStem(workingGroupFolder)
      ===> edu.internet2.middleware.grouper.PrivilegeGroupInheritanceSave@2333333c
      groovy:087> .addPrivilegeName("admin").assignSubject(adminsGroup.toSubject()).save();
      org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
      groovysh_parse: 2: unexpected token: . @ line 2, column 7.
      .addPrivilegeName("admin").assignSubject(adminsGroup.toSubject()).save();
      ^
      1 error
      ,
      Error while running line number 87 command ( .addPrivilegeName("admin").assignSubject(adminsGroup.toSubject()).save(), :
      groovysh_parse: 2: unexpected token: . @ line 2, column 7.
      .addPrivilegeName("admin").assignSubject(adminsGroup.toSubject()).save();
      ^
      1 error
      at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:312)
      at org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:109)
      at org.codehaus.groovy.control.ErrorCollector.addFatalError(ErrorCollector.java:151)
      at org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:122)
      at org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:134)
      at org.codehaus.groovy.control.SourceUnit.addError(SourceUnit.java:332)
      at org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:189)
      at org.codehaus.groovy.antlr.AntlrParserPlugin.parseCST(AntlrParserPlugin.java:155)
      at org.codehaus.groovy.control.SourceUnit.parse(SourceUnit.java:230)
      at org.codehaus.groovy.control.SourceUnit$parse$0.call(Unknown Source)
      at org.codehaus.groovy.tools.shell.RigidParser.parse(Parser.groovy:159)
      at org.codehaus.groovy.tools.shell.Parsing$parse.call(Unknown Source)
      at org.codehaus.groovy.tools.shell.Parser.parse(Parser.groovy:75)
      at org.codehaus.groovy.tools.shell.Parser$parse.call(Unknown Source)
      at org.codehaus.groovy.tools.shell.Groovysh.execute(Groovysh.groovy:183)
      at org.codehaus.groovy.tools.shell.Shell.leftShift(Shell.groovy:122)
      at org.codehaus.groovy.tools.shell.Shell$leftShift$0.call(Unknown Source)
      at GSHScriptLoad.execute(groovysh_evaluate:20)
      at org.codehaus.groovy.tools.shell.Command$execute.call(Unknown Source)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
      at org.codehaus.groovy.tools.shell.Command$execute.call(Unknown Source)
      at org.codehaus.groovy.tools.shell.Shell.execute(Shell.groovy:104)
      at org.codehaus.groovy.tools.shell.Groovysh.super$2$execute(Groovysh.groovy)
      at sun.reflect.GeneratedMethodAccessor287.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
      at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
      at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1224)
      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:132)
      at org.codehaus.groovy.tools.shell.Groovysh.executeCommand(Groovysh.groovy:271)
      at org.codehaus.groovy.tools.shell.Groovysh.execute(Groovysh.groovy:164)
      at org.codehaus.groovy.tools.shell.Shell.leftShift(Shell.groovy:122)
      at org.codehaus.groovy.tools.shell.Shell$leftShift$0.call(Unknown Source)
      at org.codehaus.groovy.tools.shell.ShellRunner.work(ShellRunner.groovy:95)
      at org.codehaus.groovy.tools.shell.InteractiveShellRunner.super$2$work(InteractiveShellRunner.groovy)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
      at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
      at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1224)
      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:132)
      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0(ScriptBytecodeAdapter.java:152)
      at org.codehaus.groovy.tools.shell.InteractiveShellRunner.work(InteractiveShellRunner.groovy:134)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210)
      at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:158)
      at org.codehaus.groovy.tools.shell.ShellRunner.run(ShellRunner.groovy:59)
      at org.codehaus.groovy.tools.shell.InteractiveShellRunner.super$2$run(InteractiveShellRunner.groovy)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
      at groovy...

      Attachments

        Activity

          People

            chris.hyzer@at.internet2.edu Chris Hyzer (upenn.edu)
            chris.hyzer@at.internet2.edu Chris Hyzer (upenn.edu)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: