Skip to content
GitLab
Explore
Projects
Groups
Topics
Snippets
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Register
Sign in
Toggle navigation
Menu
UPSMF
sunbird-lms-service
Commits
ef67e1bc
Unverified
Commit
ef67e1bc
authored
3 years ago
by
sreeragksgh
Committed by
GitHub
3 years ago
Browse files
Options
Download
Plain Diff
Merge branch 'release-4.0.0' into SB-229888
parents
df8167c0
f72b9b14
release-5.1.0-student-login-endpoint
dependabot/maven/actors/sunbird-lms-mw/actors/sunbird-utils/sunbird-notification/org.apache.httpcomponents-httpclient-4.5.13
dependabot/maven/actors/sunbird-lms-mw/actors/sunbird-utils/sunbird-platform-core/common-util/org.jboss.resteasy-resteasy-client-4.5.7.Final
dependabot/maven/controller/com.fasterxml.jackson.core-jackson-databind-2.12.7.1
dependabot/maven/core/actor-core/com.fasterxml.jackson.core-jackson-databind-2.12.7.1
dependabot/maven/core/cassandra-utils/com.fasterxml.jackson.core-jackson-databind-2.12.7.1
dependabot/maven/core/notification-utils/com.fasterxml.jackson.core-jackson-databind-2.12.7.1
dependabot/maven/core/notification-utils/org.apache.httpcomponents-httpclient-4.5.13
dependabot/maven/core/platform-common/com.fasterxml.jackson.core-jackson-databind-2.12.7.1
dependabot/maven/core/platform-common/org.apache.kafka-kafka-clients-0.10.2.2
dependabot/maven/core/platform-common/org.jboss.resteasy-resteasy-client-3.14.0.Final
dependabot/maven/core/sunbird-notification/com.fasterxml.jackson.core-jackson-databind-2.9.10.7
dependabot/maven/core/sunbird-notification/org.apache.httpcomponents-httpclient-4.5.13
dependabot/maven/junit-junit-4.13.1
helmchart
master
patch-1
patch-2
release-4.0.0
release-4.1.0
release-4.10.0
release-4.10.1
release-4.2.0
release-4.3.0
release-4.4.0
release-4.4.1
release-4.5.0
release-4.6.0
release-4.7.0
release-4.9.0
release-5.0.0
release-5.0.1
release-5.0.2
release-5.1.0
release-5.0.1_RC1
release-5.0.0_RC5
release-5.0.0_RC4
release-5.0.0_RC3
release-5.0.0_RC2
release-5.0.0_RC1
release-4.10.1_RC1
release-4.10.0_RC5
release-4.10.0_RC4
release-4.10.0_RC3
release-4.10.0_RC2
release-4.10.0_RC1
release-4.9.0_RC3
release-4.9.0_RC2
release-4.9.0_RC1
release-4.7.0_RC11
release-4.7.0_RC10
release-4.7.0_RC9
release-4.7.0_RC8
release-4.7.0_RC7
release-4.7.0_RC6
release-4.7.0_RC5
release-4.7.0_RC4
release-4.7.0_RC3
release-4.7.0_RC2
release-4.7.0_RC1
release-4.6.0_RC9
release-4.6.0_RC8
release-4.6.0_RC7
release-4.6.0_RC6
release-4.6.0_RC5
release-4.6.0_RC4
release-4.6.0_RC3
release-4.6.0_RC2
release-4.6.0_RC1
release-4.5.0_RC14
release-4.5.0_RC13
release-4.5.0_RC12
release-4.5.0_RC11
release-4.5.0_RC10
release-4.5.0_RC9
release-4.5.0_RC8
release-4.5.0_RC7
release-4.5.0_RC6
release-4.5.0_RC5
release-4.5.0_RC4
release-4.5.0_RC3
release-4.5.0_RC2
release-4.5.0_RC1
release-4.4.1_RC1
release-4.4.0_RC15
release-4.4.0_RC14
release-4.4.0_RC13
release-4.4.0_RC12
release-4.4.0_RC11
release-4.4.0_RC10
release-4.4.0_RC9
release-4.4.0_RC8
release-4.4.0_RC7
release-4.4.0_RC6
release-4.4.0_RC5
release-4.4.0_RC4
release-4.4.0_RC3
release-4.4.0_RC2
release-4.4.0_RC1
release-4.3.0_RC16
release-4.3.0_RC15
release-4.3.0_RC14
release-4.3.0_RC13
release-4.3.0_RC12
release-4.3.0_RC11
release-4.3.0_RC10
release-4.3.0_RC9
release-4.3.0_RC8
release-4.3.0_RC7
release-4.3.0_RC6
release-4.3.0_RC5
release-4.3.0_RC4
release-4.3.0_RC3
release-4.3.0_RC2
release-4.3.0_RC1
release-4.2.0_RC13
release-4.2.0_RC12
release-4.2.0_RC11
release-4.2.0_RC10
release-4.2.0_RC9
release-4.2.0_RC8
release-4.2.0_RC7
release-4.2.0_RC6
release-4.2.0_RC5
release-4.2.0_RC4
release-4.2.0_RC3
release-4.2.0_RC2
release-4.2.0_RC1
release-4.1.0_RC16
release-4.1.0_RC15
release-4.1.0_RC14
release-4.1.0_RC13
release-4.1.0_RC12
release-4.1.0_RC11
release-4.1.0_RC10
release-4.1.0_RC9
release-4.1.0_RC8
release-4.1.0_RC7
release-4.1.0_RC6
release-4.1.0_RC5
release-4.1.0_RC4
release-4.1.0_RC3
release-4.1.0_RC2
release-4.1.0_RC1
release-4.0.0_RC18
release-4.0.0_RC17
release-4.0.0_RC16
release-4.0.0_RC15
release-4.0.0_RC14
release-4.0.0_RC13
release-4.0.0_RC12
release-4.0.0_RC11
release-4.0.0_RC10
release-4.0.0_RC9
release-4.0.0_RC8
release-4.0.0_RC7
release-4.0.0_RC6
release-4.0.0_RC5
release-4.0.0_RC4
release-4.0.0_RC3
release-4.0.0_RC2
release-4.0.0_RC1
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
actors/sunbird-lms-mw/actors/sunbird-utils/sunbird-platform-core/common-util/src/main/java/org/sunbird/common/models/util/JsonKey.java
+2
-0
...src/main/java/org/sunbird/common/models/util/JsonKey.java
actors/sunbird-lms-mw/actors/user/src/main/java/org/sunbird/user/actors/UserTnCActor.java
+7
-11
...r/src/main/java/org/sunbird/user/actors/UserTnCActor.java
actors/sunbird-lms-mw/actors/user/src/main/java/org/sunbird/user/service/UserTncService.java
+7
-5
...rc/main/java/org/sunbird/user/service/UserTncService.java
actors/sunbird-lms-mw/actors/user/src/test/java/org/sunbird/user/service/UserTncServiceTest.java
+39
-13
...est/java/org/sunbird/user/service/UserTncServiceTest.java
with
55 additions
and
29 deletions
+55
-29
actors/sunbird-lms-mw/actors/sunbird-utils/sunbird-platform-core/common-util/src/main/java/org/sunbird/common/models/util/JsonKey.java
+
2
−
0
View file @
ef67e1bc
...
...
@@ -607,6 +607,8 @@ public final class JsonKey {
public
static
final
String
FEED_LIMIT
=
"feed_limit"
;
public
static
final
String
ORG_ADMIN
=
"ORG_ADMIN"
;
public
static
final
String
ORG_ADMIN_TNC
=
"orgAdminTnc"
;
public
static
final
String
REPORT_VIEWER
=
"REPORT_VIEWER"
;
public
static
final
String
REPORT_VIEWER_TNC
=
"reportViewerTnc"
;
public
static
final
String
REQUEST_ID
=
"requestid"
;
public
static
final
String
LOCATION_TYPE_SCHOOL
=
"school"
;
public
static
final
String
UPDATE_USER_SCHOOL_ORG
=
"updateUserSchoolOrg"
;
...
...
This diff is collapsed.
Click to expand it.
actors/sunbird-lms-mw/actors/user/src/main/java/org/sunbird/user/actors/UserTnCActor.java
+
7
−
11
View file @
ef67e1bc
...
...
@@ -9,7 +9,6 @@ import org.apache.commons.collections4.MapUtils;
import
org.apache.commons.lang3.StringUtils
;
import
org.sunbird.actor.core.BaseActor
;
import
org.sunbird.actor.router.ActorConfig
;
import
org.sunbird.cassandra.CassandraOperation
;
import
org.sunbird.common.exception.ProjectCommonException
;
import
org.sunbird.common.models.response.Response
;
import
org.sunbird.common.models.util.ActorOperations
;
...
...
@@ -18,8 +17,9 @@ import org.sunbird.common.models.util.ProjectUtil;
import
org.sunbird.common.request.Request
;
import
org.sunbird.common.request.RequestContext
;
import
org.sunbird.common.responsecode.ResponseCode
;
import
org.sunbird.helper.ServiceFactory
;
import
org.sunbird.learner.util.Util
;
import
org.sunbird.user.dao.UserDao
;
import
org.sunbird.user.dao.impl.UserDaoImpl
;
import
org.sunbird.user.service.UserTncService
;
@ActorConfig
(
...
...
@@ -29,10 +29,10 @@ import org.sunbird.user.service.UserTncService;
)
public
class
UserTnCActor
extends
BaseActor
{
private
UserTncService
tncService
=
new
UserTncService
();
private
CassandraOperation
cassandraOperation
=
ServiceFactory
.
getInstance
();
private
Util
.
DbInfo
usrDbInfo
=
Util
.
dbInfoMap
.
get
(
JsonKey
.
USER_DB
);
private
ObjectMapper
mapper
=
new
ObjectMapper
();
UserDao
userDao
=
UserDaoImpl
.
getInstance
();
@Override
public
void
onReceive
(
Request
request
)
throws
Throwable
{
String
operation
=
request
.
getOperation
();
...
...
@@ -62,7 +62,7 @@ public class UserTnCActor extends BaseActor {
tncService
.
validateLatestTncVersion
(
request
,
tncType
);
Map
<
String
,
Object
>
user
=
tncService
.
getUserById
(
userId
,
requestContext
);
tncService
.
isAccountManagedUser
(
isManagedUser
,
user
);
tncService
.
validate
OrgAdmin
Tnc
(
requestContext
,
tncType
,
user
);
tncService
.
validate
RoleFor
Tnc
(
requestContext
,
tncType
,
user
);
if
(
JsonKey
.
TNC_CONFIG
.
equals
(
tncType
))
{
updateUserTncConfig
(
user
,
acceptedTnC
,
requestContext
,
context
);
}
else
{
...
...
@@ -120,9 +120,7 @@ public class UserTnCActor extends BaseActor {
logger
.
error
(
requestContext
,
"Exception occurred while mapping"
,
ex
);
ProjectCommonException
.
throwServerErrorException
(
ResponseCode
.
SERVER_ERROR
);
}
response
=
cassandraOperation
.
updateRecord
(
usrDbInfo
.
getKeySpace
(),
usrDbInfo
.
getTableName
(),
userMap
,
requestContext
);
response
=
userDao
.
updateUser
(
userMap
,
requestContext
);
sender
().
tell
(
response
,
self
());
if
(((
String
)
response
.
get
(
JsonKey
.
RESPONSE
)).
equalsIgnoreCase
(
JsonKey
.
SUCCESS
))
{
// In ES this field is getting stored as Map<String, Map<String,String>>
...
...
@@ -161,9 +159,7 @@ public class UserTnCActor extends BaseActor {
userMap
.
put
(
JsonKey
.
TNC_ACCEPTED_VERSION
,
acceptedTnC
);
userMap
.
put
(
JsonKey
.
TNC_ACCEPTED_ON
,
new
Timestamp
(
Calendar
.
getInstance
().
getTime
().
getTime
()));
response
=
cassandraOperation
.
updateRecord
(
usrDbInfo
.
getKeySpace
(),
usrDbInfo
.
getTableName
(),
userMap
,
requestContext
);
response
=
userDao
.
updateUser
(
userMap
,
requestContext
);
if
(((
String
)
response
.
get
(
JsonKey
.
RESPONSE
)).
equalsIgnoreCase
(
JsonKey
.
SUCCESS
))
{
tncService
.
syncUserDetails
(
userMap
,
requestContext
);
}
...
...
This diff is collapsed.
Click to expand it.
actors/sunbird-lms-mw/actors/user/src/main/java/org/sunbird/user/service/UserTncService.java
+
7
−
5
View file @
ef67e1bc
...
...
@@ -116,10 +116,12 @@ public class UserTncService {
}
}
public
void
validateOrgAdminTnc
(
RequestContext
context
,
String
tncType
,
Map
<
String
,
Object
>
user
)
{
public
void
validateRoleForTnc
(
RequestContext
context
,
String
tncType
,
Map
<
String
,
Object
>
user
)
{
// check if it is org admin TnC and user is not an admin of the organisation
if
(
JsonKey
.
ORG_ADMIN_TNC
.
equals
(
tncType
)
&&
!
isOrgAdmin
(
user
,
context
))
{
// OR check if it is report viewer tnc and user not having the report viewer role
if
((
JsonKey
.
ORG_ADMIN_TNC
.
equals
(
tncType
)
&&
!
roleCheck
(
user
,
JsonKey
.
ORG_ADMIN
,
context
))
||
(
JsonKey
.
REPORT_VIEWER_TNC
.
equals
(
tncType
)
&&
!
roleCheck
(
user
,
JsonKey
.
REPORT_VIEWER
,
context
)))
{
ProjectCommonException
.
throwClientErrorException
(
ResponseCode
.
invalidParameterValue
,
MessageFormat
.
format
(
...
...
@@ -129,7 +131,7 @@ public class UserTncService {
}
}
private
boolean
isOrgAdmin
(
Map
<
String
,
Object
>
user
,
RequestContext
context
)
{
private
boolean
roleCheck
(
Map
<
String
,
Object
>
user
,
String
role
,
RequestContext
context
)
{
Map
<
String
,
Object
>
searchMap
=
new
LinkedHashMap
<>(
2
);
searchMap
.
put
(
JsonKey
.
USER_ID
,
user
.
get
(
JsonKey
.
ID
));
searchMap
.
put
(
JsonKey
.
ORGANISATION_ID
,
user
.
get
(
JsonKey
.
ROOT_ORG_ID
));
...
...
@@ -141,7 +143,7 @@ public class UserTncService {
Map
<
String
,
Object
>
org
=
orgDetails
.
get
(
0
);
if
(
MapUtils
.
isNotEmpty
(
org
))
{
List
<
String
>
roles
=
(
List
<
String
>)
org
.
get
(
JsonKey
.
ROLES
);
return
roles
.
contains
(
JsonKey
.
ORG_ADMIN
);
return
roles
.
contains
(
role
);
}
}
return
false
;
...
...
This diff is collapsed.
Click to expand it.
actors/sunbird-lms-mw/actors/user/src/test/java/org/sunbird/user/service/UserTncServiceTest.java
+
39
−
13
View file @
ef67e1bc
...
...
@@ -59,6 +59,7 @@ public class UserTncServiceTest {
@Before
public
void
beforeEachTest
()
{
PowerMockito
.
mockStatic
(
DataCacheHandler
.
class
);
PowerMockito
.
mockStatic
(
ServiceFactory
.
class
);
Map
<
String
,
String
>
config
=
new
HashMap
<>();
config
.
put
(
JsonKey
.
TNC_CONFIG
,
tncConfig
);
config
.
put
(
"groups"
,
groupsConfig
);
...
...
@@ -68,7 +69,6 @@ public class UserTncServiceTest {
@Test
public
void
getUserByIdTest
()
{
PowerMockito
.
mockStatic
(
ServiceFactory
.
class
);
CassandraOperation
cassandraOperationImpl
=
mock
(
CassandraOperation
.
class
);
when
(
ServiceFactory
.
getInstance
()).
thenReturn
(
cassandraOperationImpl
);
Response
response
=
new
Response
();
...
...
@@ -89,7 +89,6 @@ public class UserTncServiceTest {
@Test
public
void
getUserByIdForLockedAccountTest
()
{
PowerMockito
.
mockStatic
(
ServiceFactory
.
class
);
CassandraOperation
cassandraOperationImpl
=
mock
(
CassandraOperation
.
class
);
when
(
ServiceFactory
.
getInstance
()).
thenReturn
(
cassandraOperationImpl
);
Response
response
=
new
Response
();
...
...
@@ -112,7 +111,6 @@ public class UserTncServiceTest {
@Test
public
void
getUserByIdForEmptyResultTest
()
{
PowerMockito
.
mockStatic
(
ServiceFactory
.
class
);
CassandraOperation
cassandraOperationImpl
=
mock
(
CassandraOperation
.
class
);
when
(
ServiceFactory
.
getInstance
()).
thenReturn
(
cassandraOperationImpl
);
Response
response
=
new
Response
();
...
...
@@ -141,27 +139,55 @@ public class UserTncServiceTest {
@Test
public
void
validateOrgAdminTncTest
()
{
PowerMockito
.
mockStatic
(
ServiceFactory
.
class
);
CassandraOperation
cassandraOperationImpl
=
mock
(
CassandraOperation
.
class
);
when
(
ServiceFactory
.
getInstance
()).
thenReturn
(
cassandraOperationImpl
);
Response
response
=
new
Response
();
List
<
Map
<
String
,
Object
>>
orgs
=
new
ArrayList
<>();
Map
<
String
,
Object
>
org
=
new
HashMap
<>();
org
.
put
(
JsonKey
.
ORGANISATION_ID
,
"4567"
);
org
.
put
(
JsonKey
.
ROLES
,
Arrays
.
asList
(
"PUBLIC"
));
orgs
.
add
(
org
);
List
<
Map
<
String
,
Object
>>
orgs
=
orgResponse
();
response
.
put
(
JsonKey
.
RESPONSE
,
orgs
);
when
(
cassandraOperationImpl
.
getRecordsByCompositeKey
(
Mockito
.
anyString
(),
Mockito
.
anyString
(),
Mockito
.
anyMap
(),
Mockito
.
any
()))
.
thenReturn
(
response
);
UserTncService
tncService
=
new
UserTncService
();
Map
<
String
,
Object
>
searchMap
=
new
LinkedHashMap
<>(
2
);
searchMap
.
put
(
JsonKey
.
USER_ID
,
"1234"
);
searchMap
.
put
(
JsonKey
.
ORGANISATION_ID
,
"4567"
);
Map
<
String
,
Object
>
searchMap
=
userOrgData
();
try
{
tncService
.
validateRoleForTnc
(
null
,
"orgAdminTnc"
,
searchMap
);
}
catch
(
ProjectCommonException
ex
)
{
Assert
.
assertEquals
(
ResponseCode
.
invalidParameterValue
.
getErrorCode
(),
ex
.
getCode
());
}
}
@Test
public
void
reportViewerTncTest
()
{
CassandraOperation
cassandraOperationImpl
=
mock
(
CassandraOperation
.
class
);
when
(
ServiceFactory
.
getInstance
()).
thenReturn
(
cassandraOperationImpl
);
Response
response
=
new
Response
();
List
<
Map
<
String
,
Object
>>
orgs
=
orgResponse
();
response
.
put
(
JsonKey
.
RESPONSE
,
orgs
);
when
(
cassandraOperationImpl
.
getRecordsByCompositeKey
(
Mockito
.
anyString
(),
Mockito
.
anyString
(),
Mockito
.
anyMap
(),
Mockito
.
any
()))
.
thenReturn
(
response
);
UserTncService
tncService
=
new
UserTncService
();
Map
<
String
,
Object
>
searchMap
=
userOrgData
();
try
{
tncService
.
validate
OrgAdmin
Tnc
(
null
,
"
orgAdmin
Tnc"
,
searchMap
);
tncService
.
validate
RoleFor
Tnc
(
null
,
"
reportViewer
Tnc"
,
searchMap
);
}
catch
(
ProjectCommonException
ex
)
{
Assert
.
assertEquals
(
ResponseCode
.
invalidParameterValue
.
getErrorCode
(),
ex
.
getCode
());
}
}
private
List
<
Map
<
String
,
Object
>>
orgResponse
()
{
List
<
Map
<
String
,
Object
>>
orgs
=
new
ArrayList
<>();
Map
<
String
,
Object
>
org
=
new
HashMap
<>();
org
.
put
(
JsonKey
.
ORGANISATION_ID
,
"4567"
);
org
.
put
(
JsonKey
.
ROLES
,
Arrays
.
asList
(
"PUBLIC"
));
orgs
.
add
(
org
);
return
orgs
;
}
private
Map
<
String
,
Object
>
userOrgData
()
{
Map
<
String
,
Object
>
searchMap
=
new
LinkedHashMap
<>(
2
);
searchMap
.
put
(
JsonKey
.
USER_ID
,
"1234"
);
searchMap
.
put
(
JsonKey
.
ORGANISATION_ID
,
"4567"
);
return
searchMap
;
}
}
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Topics
Snippets