示例#1
0
        public static SqlWhereCollection SiteUserWhere(
            this Rds.UsersWhereCollection where, long siteId)
        {
            var deptRaw = "\"Users\".\"DeptId\" and \"Users\".\"DeptId\">0";
            var userRaw = "\"Users\".\"UserId\" and \"Users\".\"UserId\">0";

            return(where.Add(
                       subLeft: Rds.SelectPermissions(
                           column: Rds.PermissionsColumn()
                           .PermissionType(function: Sqls.Functions.Max),
                           where : Rds.PermissionsWhere()
                           .ReferenceId(siteId)
                           .Or(Rds.PermissionsWhere()
                               .DeptId(raw: deptRaw)
                               .Add(
                                   subLeft: Rds.SelectGroupMembers(
                                       column: Rds.GroupMembersColumn()
                                       .GroupMembersCount(),
                                       where : Rds.GroupMembersWhere()
                                       .GroupId(raw: "\"Permissions\".\"GroupId\"")
                                       .Or(Rds.GroupMembersWhere()
                                           .DeptId(raw: deptRaw)
                                           .UserId(raw: userRaw))
                                       .Add(raw: "\"Permissions\".\"GroupId\">0")),
                                   _operator: ">0")
                               .UserId(raw: userRaw)
                               .UserId(-1))),
                       _operator: ">0"));
        }
示例#2
0
 public static SqlWhereCollection SiteUserWhere(
     this Rds.UsersWhereCollection where,
     Context context,
     long siteId,
     bool _using = true)
 {
     return(_using
         ? where.Add(raw: context.Sqls.SiteUserWhere.Params(siteId))
         : where);
 }