Skip to content

Commit fcf5adf

Browse files
committed
list user available actions
1 parent bd54762 commit fcf5adf

File tree

8 files changed

+34
-18
lines changed

8 files changed

+34
-18
lines changed

core/src/main/java/com/flowci/core/auth/AuthController.java renamed to core/src/main/java/com/flowci/core/auth/controller/AuthController.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,19 @@
1515
*
1616
*/
1717

18-
package com.flowci.core.auth;
18+
package com.flowci.core.auth.controller;
1919

2020
import com.flowci.core.auth.domain.Tokens;
2121
import com.flowci.core.auth.service.AuthService;
2222
import com.flowci.core.user.domain.User;
2323
import com.flowci.exception.AuthenticationException;
2424
import com.google.common.base.Strings;
25-
import java.nio.charset.StandardCharsets;
26-
import java.util.Base64;
2725
import org.springframework.beans.factory.annotation.Autowired;
2826
import org.springframework.validation.annotation.Validated;
29-
import org.springframework.web.bind.annotation.PostMapping;
30-
import org.springframework.web.bind.annotation.RequestBody;
31-
import org.springframework.web.bind.annotation.RequestHeader;
32-
import org.springframework.web.bind.annotation.RequestMapping;
33-
import org.springframework.web.bind.annotation.RestController;
27+
import org.springframework.web.bind.annotation.*;
28+
29+
import java.nio.charset.StandardCharsets;
30+
import java.util.Base64;
3431

3532
@RestController()
3633
@RequestMapping("/auth")

core/src/main/java/com/flowci/core/auth/WebAuth.java renamed to core/src/main/java/com/flowci/core/auth/controller/WebAuth.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*
1616
*/
1717

18-
package com.flowci.core.auth;
18+
package com.flowci.core.auth.controller;
1919

2020
import com.flowci.core.auth.annotation.Action;
2121
import com.flowci.core.auth.service.AuthService;

core/src/main/java/com/flowci/core/auth/service/AuthService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.flowci.core.user.domain.User;
2323

2424
import java.util.Optional;
25+
import java.util.Set;
2526

2627
/**
2728
* 'login' ->
@@ -65,4 +66,8 @@ public interface AuthService {
6566
*/
6667
Optional<User> get(String token);
6768

69+
/**
70+
* Get action list by role
71+
*/
72+
Set<String> getActions(User.Role role);
6873
}

core/src/main/java/com/flowci/core/auth/service/AuthServiceImpl.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636

3737
import java.util.Objects;
3838
import java.util.Optional;
39+
import java.util.Set;
3940

4041
@Log4j2
4142
@Service
@@ -159,6 +160,11 @@ public Optional<User> get(String token) {
159160
return Optional.empty();
160161
}
161162

163+
@Override
164+
public Set<String> getActions(User.Role role) {
165+
return permissionMap.get(role);
166+
}
167+
162168
private User getUser(String email) {
163169
try {
164170
return userService.getByEmail(email);

core/src/main/java/com/flowci/core/job/controller/TtyController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.flowci.core.job.controller;
22

33
import com.flowci.core.agent.domain.TtyCmd;
4-
import com.flowci.core.auth.WebAuth;
4+
import com.flowci.core.auth.controller.WebAuth;
55
import com.flowci.core.common.manager.SpringEventManager;
66
import com.flowci.core.job.event.TtyStatusUpdateEvent;
77
import com.flowci.core.job.service.TtyService;

core/src/main/java/com/flowci/core/user/UserController.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,12 @@
1818

1919
import com.flowci.core.auth.annotation.Action;
2020
import com.flowci.core.auth.service.AuthService;
21+
import com.flowci.core.common.manager.SessionManager;
2122
import com.flowci.core.user.domain.*;
2223
import com.flowci.core.user.service.UserService;
2324
import com.flowci.exception.ArgumentException;
25+
26+
import java.util.Collection;
2427
import java.util.Objects;
2528
import java.util.Optional;
2629

@@ -41,6 +44,9 @@ public class UserController {
4144

4245
private static final String DefaultSize = "20";
4346

47+
@Autowired
48+
private SessionManager sessionManager;
49+
4450
@Autowired
4551
private UserService userService;
4652

@@ -58,6 +64,12 @@ public void createDefaultAdmin(@Validated @RequestBody CreateUser body) {
5864
userService.createDefaultAdmin(body.getEmail(), body.getPasswordOnMd5());
5965
}
6066

67+
@GetMapping("/actions")
68+
public Collection<String> actions() {
69+
User user = sessionManager.get();
70+
return authService.getActions(user.getRole());
71+
}
72+
6173
@GetMapping
6274
@Action(UserAction.LIST_ALL)
6375
public Page<User> listAll(@RequestParam(required = false, defaultValue = DefaultPage) int page,
@@ -75,7 +87,8 @@ public User create(@Validated @RequestBody CreateUser body) {
7587
@Action(UserAction.CHANGE_PASSWORD)
7688
public void changePassword(@Validated @RequestBody ChangePassword body) {
7789
if (Objects.equals(body.getNewOne(), body.getConfirm())) {
78-
userService.changePassword(body.getOld(), body.getNewOne());
90+
User user = sessionManager.get();
91+
userService.changePassword(user, body.getOld(), body.getNewOne());
7992
authService.logout();
8093
return;
8194
}

core/src/main/java/com/flowci/core/user/service/UserService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public interface UserService {
6262
/**
6363
* Change password for current user
6464
*/
65-
void changePassword(String old, String newOne);
65+
void changePassword(User user, String old, String newOne);
6666

6767
/**
6868
* Change role for target user

core/src/main/java/com/flowci/core/user/service/UserServiceImpl.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,6 @@ public class UserServiceImpl implements UserService {
5656
@Autowired
5757
private UserDao userDao;
5858

59-
@Autowired
60-
private SessionManager sessionManager;
61-
6259
@Autowired
6360
private SpringEventManager eventManager;
6461

@@ -108,9 +105,7 @@ public User getByEmail(String email) {
108105
}
109106

110107
@Override
111-
public void changePassword(String oldOnMd5, String newOnMd5) {
112-
User user = sessionManager.get();
113-
108+
public void changePassword(User user, String oldOnMd5, String newOnMd5) {
114109
if (Objects.equals(user.getPasswordOnMd5(), oldOnMd5)) {
115110
user.setPasswordOnMd5(newOnMd5);
116111
userDao.save(user);

0 commit comments

Comments
 (0)