Search in sources :

Example 6 with User

use of com.rebuild.core.privileges.bizz.User in project rebuild by getrebuild.

the class UserAvatar method renderUserAvatar.

/**
 * @param user
 * @param response
 * @throws IOException
 */
private void renderUserAvatar(Object user, HttpServletRequest request, HttpServletResponse response) throws IOException {
    if (user == null) {
        response.sendRedirect(AppUtils.getContextPath(UserHelper.DEFAULT_AVATAR));
        return;
    }
    if (user.equals(UserService.ALLUSERS.toString())) {
        response.sendRedirect(AppUtils.getContextPath("/assets/img/avatar-users.png"));
        return;
    }
    User realUser = null;
    if (ID.isId(user) && Application.getUserStore().existsUser(ID.valueOf(user.toString()))) {
        realUser = Application.getUserStore().getUser(ID.valueOf(user.toString()));
    } else if (Application.getUserStore().existsName(user.toString())) {
        realUser = Application.getUserStore().getUserByName(user.toString());
    } else if (Application.getUserStore().existsEmail(user.toString())) {
        realUser = Application.getUserStore().getUserByEmail(user.toString());
    }
    if (realUser == null) {
        response.sendRedirect(AppUtils.getContextPath(UserHelper.DEFAULT_AVATAR));
        return;
    }
    ServletUtils.addCacheHead(response, 30);
    String avatarUrl = realUser.getAvatarUrl();
    // 外部地址
    if (avatarUrl != null && (avatarUrl.startsWith("http://") || avatarUrl.startsWith("https://"))) {
        response.sendRedirect(avatarUrl);
        return;
    }
    avatarUrl = QiniuCloud.encodeUrl(avatarUrl);
    if (avatarUrl != null) {
        int w = getIntParameter(request, "w", 100);
        avatarUrl = avatarUrl + "?imageView2/2/w/" + w + "/interlace/1/q/100";
        if (QiniuCloud.instance().available()) {
            avatarUrl = QiniuCloud.instance().makeUrl(avatarUrl, 30 * 60);
        } else {
            avatarUrl = AppUtils.getContextPath("/filex/img/" + avatarUrl);
            String authToken = request.getParameter(AppUtils.URL_AUTHTOKEN);
            if (authToken != null) {
                avatarUrl += String.format("&%s=%s", AppUtils.URL_AUTHTOKEN, authToken);
            }
        }
        response.sendRedirect(avatarUrl);
    } else {
        String fullName = realUser.getFullName();
        if (realUser.getId().equals(UserService.SYSTEM_USER) || realUser.getId().equals(UserService.ADMIN_USER)) {
            fullName = "RB";
        }
        File avatarFile = UserHelper.generateAvatar(fullName, false);
        FileDownloader.writeLocalFile(avatarFile, response);
    }
}
Also used : User(com.rebuild.core.privileges.bizz.User) File(java.io.File)

Example 7 with User

use of com.rebuild.core.privileges.bizz.User in project rebuild by getrebuild.

the class UserInfoController method userInfo.

@GetMapping("/account/user-info")
public JSON userInfo(@IdParam ID id) {
    User u = Application.getUserStore().getUser(id);
    Department dept = u.getOwningDept();
    return JSONUtils.toJSONObject(new String[] { "name", "dept", "email", "phone", "isActive" }, new Object[] { u.getFullName(), dept == null ? null : dept.getName(), u.getEmail(), u.getWorkphone(), u.isActive() });
}
Also used : Department(com.rebuild.core.privileges.bizz.Department) User(com.rebuild.core.privileges.bizz.User) GetMapping(org.springframework.web.bind.annotation.GetMapping)

Example 8 with User

use of com.rebuild.core.privileges.bizz.User in project rebuild by getrebuild.

the class ModelExtrasController method fetchRecordMeta.

@GetMapping("record-meta")
public JSONAware fetchRecordMeta(@IdParam ID id) {
    final Entity entity = MetadataHelper.getEntity(id.getEntityCode());
    String sql = "select createdOn,modifiedOn from %s where %s = '%s'";
    if (MetadataHelper.hasPrivilegesField(entity)) {
        sql = sql.replace(",modifiedOn", ",modifiedOn,owningUser");
    }
    sql = String.format(sql, entity.getName(), entity.getPrimaryField().getName(), id);
    Object[] recordMeta = Application.createQueryNoFilter(sql).unique();
    if (recordMeta == null) {
        return RespBody.errorl("记录不存在");
    }
    recordMeta[0] = I18nUtils.formatDate((Date) recordMeta[0]);
    recordMeta[1] = I18nUtils.formatDate((Date) recordMeta[1]);
    String[] owning = null;
    List<String[]> sharingList = null;
    if (recordMeta.length == 3) {
        User user = Application.getUserStore().getUser((ID) recordMeta[2]);
        String dept = user.getOwningDept() == null ? null : user.getOwningDept().getName();
        owning = new String[] { user.getIdentity().toString(), user.getFullName(), dept };
        Object[][] shareTo = Application.createQueryNoFilter("select shareTo from ShareAccess where belongEntity = ? and recordId = ?").setParameter(1, entity.getName()).setParameter(2, id).setLimit(// 最多显示9个
        9).array();
        sharingList = new ArrayList<>();
        for (Object[] st : shareTo) {
            sharingList.add(new String[] { st[0].toString(), UserHelper.getName((ID) st[0]) });
        }
    }
    return JSONUtils.toJSONObject(new String[] { "createdOn", "modifiedOn", "owningUser", "sharingList" }, new Object[] { recordMeta[0], recordMeta[1], owning, sharingList });
}
Also used : EasyEntity(com.rebuild.core.metadata.easymeta.EasyEntity) Entity(cn.devezhao.persist4j.Entity) User(com.rebuild.core.privileges.bizz.User) JSONObject(com.alibaba.fastjson.JSONObject) ID(cn.devezhao.persist4j.engine.ID) Date(java.util.Date) GetMapping(org.springframework.web.bind.annotation.GetMapping)

Example 9 with User

use of com.rebuild.core.privileges.bizz.User in project rebuild by getrebuild.

the class UserHelper method parseUsers.

/**
 * 解析用户列表
 *
 * @param userDefs
 * @param record
 * @param filterDisabled
 * @return
 */
public static Set<ID> parseUsers(Collection<String> userDefs, ID record, boolean filterDisabled) {
    Entity entity = record == null ? null : MetadataHelper.getEntity(record.getEntityCode());
    Set<ID> bizzs = new HashSet<>();
    Set<String> fromFields = new HashSet<>();
    for (String def : userDefs) {
        if (ID.isId(def)) {
            bizzs.add(ID.valueOf(def));
        } else if (entity != null && MetadataHelper.getLastJoinField(entity, def) != null) {
            fromFields.add(def);
        } else {
            log.warn("Invalid id or field : " + def);
        }
    }
    if (!fromFields.isEmpty()) {
        String sql = String.format("select %s from %s where %s = ?", StringUtils.join(fromFields.iterator(), ","), entity.getName(), entity.getPrimaryField().getName());
        Object[] bizzValues = Application.createQueryNoFilter(sql).setParameter(1, record).unique();
        if (bizzValues != null) {
            for (Object bizz : bizzValues) {
                if (bizz != null) {
                    bizzs.add((ID) bizz);
                }
            }
        }
    }
    Set<ID> users = new HashSet<>();
    for (ID bizz : bizzs) {
        if (bizz.getEntityCode() == EntityHelper.User) {
            users.add(bizz);
        } else {
            Member[] ms = getMembers(bizz);
            for (Member m : ms) {
                if (m.getIdentity().equals(UserService.SYSTEM_USER))
                    continue;
                users.add((ID) m.getIdentity());
            }
        }
    }
    // 过滤禁用用户
    if (filterDisabled) {
        for (Iterator<ID> iter = users.iterator(); iter.hasNext(); ) {
            User u = Application.getUserStore().getUser(iter.next());
            if (!u.isActive())
                iter.remove();
        }
    }
    return users;
}
Also used : Entity(cn.devezhao.persist4j.Entity) User(com.rebuild.core.privileges.bizz.User) ID(cn.devezhao.persist4j.engine.ID) Member(cn.devezhao.bizz.security.member.Member)

Example 10 with User

use of com.rebuild.core.privileges.bizz.User in project rebuild by getrebuild.

the class UserHelper method sortUsers.

/**
 * 按全称排序的用户列表
 *
 * @param isAll 是否包括未激活用户
 * @return
 * @see UserStore#getAllUsers()
 */
public static User[] sortUsers(boolean isAll) {
    User[] users = Application.getUserStore().getAllUsers();
    // 排除未激活
    if (!isAll) {
        List<User> list = new ArrayList<>();
        for (User u : users) {
            if (u.isActive()) {
                list.add(u);
            }
        }
        users = list.toArray(new User[0]);
    }
    sortMembers(users);
    return users;
}
Also used : User(com.rebuild.core.privileges.bizz.User)

Aggregations

User (com.rebuild.core.privileges.bizz.User)26 ID (cn.devezhao.persist4j.engine.ID)13 JSONObject (com.alibaba.fastjson.JSONObject)8 GetMapping (org.springframework.web.bind.annotation.GetMapping)6 Member (cn.devezhao.bizz.security.member.Member)3 JSONArray (com.alibaba.fastjson.JSONArray)3 Entity (cn.devezhao.persist4j.Entity)2 Record (cn.devezhao.persist4j.Record)2 JSON (com.alibaba.fastjson.JSON)2 UserService (com.rebuild.core.privileges.UserService)2 Department (com.rebuild.core.privileges.bizz.Department)2 HashMap (java.util.HashMap)2 HashSet (java.util.HashSet)2 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)2 Test (org.junit.jupiter.api.Test)2 PostMapping (org.springframework.web.bind.annotation.PostMapping)2 ModelAndView (org.springframework.web.servlet.ModelAndView)2 Team (cn.devezhao.bizz.security.member.Team)1 Field (cn.devezhao.persist4j.Field)1 ApiInvokeException (com.rebuild.api.ApiInvokeException)1