TIL 2018-07-18
오늘 배운 것 & 한 것
요약
- react input에 autoFocus 속성을 설정하면 mount시 자동으로 focus 된다.
LTC 작업
- blueprintjs처럼 editable text를 만들고 싶은데, 클릭하면 span이 input으로 바뀌는 것 까지는 간단했다. 그러나 커서 포지션 (caret)이 자동으로 생기지 않아서 한 번 더 눌러주어야 한다. 사실 어차피 다른 section과 rank도 admin은 한 번에 바꿀 수 있게 보일테니 애초에 input인게 나으려나?
react input에 autoFocus라는 속성이 있었다!! 마운트 될 때 자동으로 focus 해준다!!
- schedule update하는 부분의 권한 검사를 직접 했더니, 유저가 로그아웃 했을 때 에러가 나서 getEditAccess라는 함수를 만들고, try catch를 써서 해결했다. 그런데 약간 디자인 상 고민되는 점은, schedule update에서는 어드민이 아니어도 유저 아이디가 자기 자신일 경우 편집 가능해야 하고, member info update에서는 반드시 관리자여야 가능하다. 그래서 getEditAcess에 accessType을 줘서 구별할 지, 아니면 그냥 schedule update에만 따로 or를 이용하여 user id가 같을 경우를 처리할 지 고민하다 후자를 선택했다. 왜냐하면, 이 경우가 좀 더 특수성이 있으므로 api에 가까운 getEditAccess에 변경을 줘선 안 된다고 생각되기 때문이다. (현재로서는,)
클라이언트 쪽, 서버쪽 모두 검증 코드를 넣었다. 그렇지만 지금 서버쪽 코드는 그냥 열려있는 것이나 마찬가지다. 당연하게도 클라이언트 쪽에서 아이디를 가짜로 보내는 등 클라이언트는 뭐든지 할 수 있다고 생각하면 세션 토큰이나 기타 인증 없이 그냥 아이디로 받아서 검증 하는 것은 검증이 아니겠지.
아 문제가 있다. 변경 타겟 아이디랑 변경하는 요청인 아이디랑 똑같이 썻다.
const EditInput = styled.input`
width: 100%;
height: 100%;
display: grid;
justify-items: center;
text-align: center;
border:none;
background:transparent;
`
Comments