Esempio n. 1
0
        public virtual void configureQuery(AbstractQuery query, Resource resource, string queryParam, Permission permission)
        {
            configureQuery(query);
            CompositePermissionCheck permissionCheck = (new PermissionCheckBuilder()).atomicCheck(resource, queryParam, permission).build();

            addPermissionCheck(query.AuthCheck, permissionCheck);
        }
Esempio n. 2
0
        // execution/process instance query ////////////////////////

        public virtual void configureExecutionQuery(AbstractQuery query)
        {
            configureQuery(query);
            CompositePermissionCheck permissionCheck = (new PermissionCheckBuilder()).disjunctive().atomicCheck(PROCESS_INSTANCE, "RES.PROC_INST_ID_", READ).atomicCheck(PROCESS_DEFINITION, "P.KEY_", READ_INSTANCE).build();

            addPermissionCheck(query.AuthCheck, permissionCheck);
        }
        public string ReceiveRequest(string request)
        {
            AbstractQuery query = QueryFactory.GetQueryFactory().GetQuery(new XmlMessage(request), this);

            query.ValidateParameters();
            query.Execute();
            return(query.GetResult());
        }
Esempio n. 4
0
        public virtual Filter setQuery <T>(T query)
        {
            ensureNotNull(typeof(NotValidException), "query", query);
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: this.query = (org.camunda.bpm.engine.impl.AbstractQuery<?, ?>) query;
            this.query = (AbstractQuery <object, ?>)query;
            return(this);
        }
        public static string ReceiveRequest(UserThread thread, string request)
        {
            AbstractQuery query = QueryFactory.GetQueryFactory().GetQuery(new XmlMessage(request), thread);

            Console.WriteLine(thread.username);
            query.ValidateParameters();
            query.Execute();
            return(query.GetResult());
        }
Esempio n. 6
0
        protected internal virtual void applyRequestControls <T1>(AbstractQuery <T1> query)
        {
            try
            {
                IList <Control> controls = new List <Control>();

                IList <QueryOrderingProperty> orderBy = query.OrderingProperties;
                if (orderBy != null)
                {
                    foreach (QueryOrderingProperty orderingProperty in orderBy)
                    {
                        string propertyName = orderingProperty.QueryProperty.Name;
                        if (org.camunda.bpm.engine.impl.UserQueryProperty_Fields.USER_ID.Name.Equals(propertyName))
                        {
                            controls.Add(new SortControl(ldapConfiguration.UserIdAttribute, Control.CRITICAL));
                        }
                        else if (org.camunda.bpm.engine.impl.UserQueryProperty_Fields.EMAIL.Name.Equals(propertyName))
                        {
                            controls.Add(new SortControl(ldapConfiguration.UserEmailAttribute, Control.CRITICAL));
                        }
                        else if (org.camunda.bpm.engine.impl.UserQueryProperty_Fields.FIRST_NAME.Name.Equals(propertyName))
                        {
                            controls.Add(new SortControl(ldapConfiguration.UserFirstnameAttribute, Control.CRITICAL));
                        }
                        else if (org.camunda.bpm.engine.impl.UserQueryProperty_Fields.LAST_NAME.Name.Equals(propertyName))
                        {
                            controls.Add(new SortControl(ldapConfiguration.UserLastnameAttribute, Control.CRITICAL));
                        }
                    }
                }

                initialContext.RequestControls = controls.ToArray();
            }
            catch (Exception e)
            {
                throw new IdentityProviderException("Exception while setting paging settings", e);
            }
        }
Esempio n. 7
0
        //authorizations ////////////////////////////////////////////////////

//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Override protected void configureQuery(@SuppressWarnings("rawtypes") org.camunda.bpm.engine.impl.AbstractQuery query, org.camunda.bpm.engine.authorization.Resource resource)
        protected internal override void configureQuery(AbstractQuery query, Resource resource)
        {
            Context.CommandContext.AuthorizationManager.configureQuery(query, resource);
        }
Esempio n. 8
0
 public virtual void configureQuery(AbstractQuery query, Resource resource, string queryParam)
 {
     configureQuery(query, resource, queryParam, Permissions.READ);
 }
Esempio n. 9
0
 public override void configureQuery(AbstractQuery query, Resource resource)
 {
     configureQuery(query, resource, "RES.ID_");
 }
Esempio n. 10
0
 private void SetDatabaseAndTableTarget(IMessage request, AbstractQuery query)
 {
     query.targetDatabase  = this.GetTargetDatabase(request);
     query.targetTableName = request.GetElementsContentByTagName(RequestAndRegexConstants.tableTagName)[0];
 }
Esempio n. 11
0
        public AbstractQuery GetQuery(IMessage request, IUserThread thread)
        {
            IDatabaseContainer container = ((ISystemeDatabaseModule)this.systeme.GetSystemeModule(SystemeConstants.SystemeDatabaseModule)).GetDatabaseContainer();
            AbstractQuery      query     = null;
            string             queryTag  = request.GetElementsContentByTagName(RequestAndRegexConstants.queryTagName)[0];

            switch (queryTag)
            {
            case RequestAndRegexConstants.selectQueryIdentificator:
                query = this.CreateSelectQuery(request, container);
                break;

            case RequestAndRegexConstants.createUserQueryIdentificator:
                query = CreateUserQuery(request, container);
                break;

            case RequestAndRegexConstants.insertQueryIdentificator:
                query = this.CreateInsertQuery(request, container);
                break;

            case RequestAndRegexConstants.updateQueryIdentificator:
                query = this.CreateUpdateQuery(request, container);
                break;

            case RequestAndRegexConstants.deleteQueryIdentificator:
                query = this.CreateDeleteQuery(request, container);
                break;

            case RequestAndRegexConstants.dropTableQueryIdentificator:
                query = this.CreateDropTableQuery(request, container);
                break;

            case RequestAndRegexConstants.createTableQueryIdentificator:
                query = this.CreateCreateTableQuery(request, container);
                break;

            case RequestAndRegexConstants.createDatabaseQueryIdentificator:
                query = this.CreateDatabaseQuery(request, container);
                break;

            case RequestAndRegexConstants.dropDatabaseQueryIdentificator:
                query = this.DropDatabaseQuery(request, container);
                break;

            case RequestAndRegexConstants.createSecurityProfileQueryIdentificator:
                query = CreateSecurityProfileQuery(request, container);
                break;

            case RequestAndRegexConstants.deleteUserQueryIdentificator:
                query = CreateDeleteUserQuery(request, container);
                break;

            case RequestAndRegexConstants.grantDatabasePrivilegeQueryIdentificator:
                query = CreateGrantDatabasePrivilege(request, container);
                break;

            case RequestAndRegexConstants.revokeDatabasePrivilegeQueryIdentificator:
                query = CreateRevoqueDatabasePrivilege(request, container);
                break;

            case RequestAndRegexConstants.dropSecurityProfileQueryIdentificator:
                query = CreateDropSecurityProfile(request, container);
                break;

            case RequestAndRegexConstants.grantTablePrivilegeQueryIdentificator:
                query = CreateGrantPrivilege(request, container);
                break;

            case RequestAndRegexConstants.revokeTablePrivilegeQueryIdentificator:
                query = CreateRevoquePrivilege(request, container);
                break;

            case RequestAndRegexConstants.loginQueryIdentificator:
                query = CreateLogin(request, container, thread);
                break;

            case RequestAndRegexConstants.exitIdentificator:
                query = CreateExit(container, thread, (ISystemeDatabaseModule)systeme.GetSystemeModule(SystemeConstants.SystemeDatabaseModule));
                break;
            }
            query.username = thread.username;
            query.SetPrivilegeModule((ISystemePrivilegeModule)this.systeme.GetSystemeModule(SystemeConstants.SystemePrivilegeModule));
            return(query);
        }
Esempio n. 12
0
 protected internal virtual void configureQuery <T1>(AbstractQuery <T1> query, Resource resource)
 {
     AuthorizationManager.configureQuery(query, resource);
 }
Esempio n. 13
0
 protected internal virtual void configureTenantCheck <T1>(AbstractQuery <T1> query)
 {
     TenantManager.configureQuery(query);
 }
Esempio n. 14
0
        internal string GetAbstractQuery(Type type,
                                         string whereTerm     = null,
                                         FilterRequest filter = null)
        {
            var reflectionHelper = new TablesReflectionHelper();
            var node             = reflectionHelper.GetReflectionTable(type);
            var result           = new AbstractQuery()
            {
                SelectTerm = GetSelectTerm($"[{node.TableName}].[{node.PrimaryKey.Name}]", node.TableName, node.Cols),
                Root       = node,
                WhereTerm  = whereTerm
            };

            (result.WhereTerm, result.OrderByTerm) =
                GetOrderByTerm(result.WhereTerm, filter, node.TableName, node.Cols);
            node.UniqName = node.TableName;
            var que = new Queue <SelectStackItem>();

            if (node.JoinTables != null)
            {
                foreach (var joinTable in node.JoinTables
                         .Where(q => q.SelectedForAbstract))
                {
                    if (!joinTable.IsOneToMany && !joinTable.IsInverse)
                    {
                        que.Enqueue(new SelectStackItem()
                        {
                            Table          = joinTable,
                            ParentUniqName = node.UniqName
                        });
                    }
                }

                while (que.Any())
                {
                    var item = que.Dequeue();
                    node = item.Table.ReflectionTable;
                    // سلمت
                    result.SelectTerm = GetSelectTerm(result.SelectTerm, node.UniqName,
                                                      node.Cols);
                    // جوین ها
                    result.JoinTerm += Environment.NewLine +
                                       $" left join [{node.TableName}] as {node.UniqName} " +
                                       $"on [{item.ParentUniqName}].[{item.Table.ForeignKey}] = [{node.UniqName}].{node.PrimaryKey.Name} ";

                    // فیلتر
                    if (filter != null && string.IsNullOrEmpty(result.OrderByTerm))
                    {
                        (result.WhereTerm, result.OrderByTerm) =
                            GetOrderByTerm(result.WhereTerm, filter, node.UniqName, node.Cols);
                    }

                    // زیر مجموعه
                    if (node.JoinTables != null)
                    {
                        foreach (var joinTable in node.JoinTables
                                 .Where(q => q.SelectedForAbstract))
                        {
                            if (!joinTable.IsOneToMany && !joinTable.IsInverse)
                            {
                                que.Enqueue(new SelectStackItem()
                                {
                                    Table          = joinTable,
                                    ParentUniqName = node.UniqName
                                });
                            }
                        }
                    }
                }
            }

            if (!string.IsNullOrEmpty(result.WhereTerm))
            {
                result.WhereTerm = "Where " + result.WhereTerm;
            }
            var nodeQuery = $@"select {result.SelectTerm} 
                               from [{result.Root.TableName}] 
                               {result.JoinTerm}
                               {result.WhereTerm}
                               {result.OrderByTerm}";

            nodeQuery += Environment.NewLine;

            return(nodeQuery);
        }
Esempio n. 15
0
 protected internal virtual void configureQuery <T1>(AbstractQuery <T1> query)
 {
     AuthorizationManager.configureExecutionQuery(query);
     TenantManager.configureQuery(query);
 }