Ignore:
Timestamp:
Mar 3, 2011, 8:24:14 PM (9 years ago)
Author:
work@…
Message:

moved text search method into Study domain

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/domain/dbnp/studycapturing/Study.groovy

    r1584 r1585  
    520520
    521521        /**
     522         * perform a text search on studies
     523         * @param query
     524         * @return
     525         */
     526        public static textSearchReadableStudies(SecUser user, String query) {
     527                def c = Study.createCriteria()
     528
     529                if (user == null) {
     530                        // regular user
     531                        return c.list {
     532                                or {
     533                                        ilike("title", "%${query}%")
     534                                        ilike("description", "%${query}%")
     535                                }
     536                                and {
     537                                        eq("published", true)
     538                                        eq("publicstudy", true)
     539                                }
     540                        }
     541                } else if (user.hasAdminRights()) {
     542                        // admin can search everything
     543                        return c.list {
     544                                or {
     545                                        ilike("title", "%${query}%")
     546                                        ilike("description", "%${query}%")
     547                                }
     548                        }
     549                } else {
     550                        return c.list {
     551                                or {
     552                                        ilike("title", "%${query}%")
     553                                        ilike("description", "%${query}%")
     554                                }
     555                                and {
     556                                        or {
     557                                                eq("owner", user)
     558                                                writers {
     559                                                        eq("id", user.id)
     560                                                }
     561                                                and {
     562                                                        readers {
     563                                                                eq("id", user.id)
     564                                                        }
     565                                                        eq("published", true)
     566                                                }
     567                                        }
     568                                }
     569                        }
     570
     571                }
     572        }
     573
     574        /**
    522575         * Returns the number of public studies
    523576         * @return int
Note: See TracChangeset for help on using the changeset viewer.