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);
}
}
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() });
}
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 });
}
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;
}
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;
}
Aggregations