Search in sources :

Example 96 with User

use of com.serotonin.m2m2.vo.User in project ma-core-public by infiniteautomation.

the class DataPointTagsDao method getTagValuesForKey.

public Set<String> getTagValuesForKey(String tagKey, ASTNode restrictions, User user) {
    RQLToConditionWithTagKeys visitor = new RQLToConditionWithTagKeys();
    Name tagKeyColumn = visitor.columnNameForTagKey(tagKey);
    List<Condition> conditionList = new ArrayList<>();
    ConditionSortLimitWithTagKeys conditions = visitor.visit(restrictions);
    if (conditions.getCondition() != null) {
        conditionList.add(conditions.getCondition());
    }
    Map<String, Name> tagKeyToColumn = conditions.getTagKeyToColumn();
    Table<Record> from = createTagPivotSql(tagKeyToColumn).asTable().as(DATA_POINT_TAGS_PIVOT_ALIAS);
    if (!user.isAdmin()) {
        from = joinPointPermissions(from, PIVOT_ALIAS_DATA_POINT_ID, user);
    }
    SelectJoinStep<Record1<String>> query = this.create.selectDistinct(DSL.field(DATA_POINT_TAGS_PIVOT_ALIAS.append(tagKeyColumn), String.class)).from(from);
    Select<Record1<String>> result = query;
    if (!conditionList.isEmpty()) {
        result = query.where(DSL.and(conditionList));
    }
    try (Stream<Record1<String>> stream = result.stream()) {
        return stream.map(r -> r.value1()).collect(Collectors.toSet());
    }
}
Also used : Condition(org.jooq.Condition) SelectJoinStep(org.jooq.SelectJoinStep) DSL(org.jooq.impl.DSL) Table(org.jooq.Table) TableOnConditionStep(org.jooq.TableOnConditionStep) HashMap(java.util.HashMap) DataPointRT(com.serotonin.m2m2.rt.dataImage.DataPointRT) Condition(org.jooq.Condition) DataPointVO(com.serotonin.m2m2.vo.DataPointVO) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) Record2(org.jooq.Record2) Record1(org.jooq.Record1) Map(java.util.Map) ConditionSortLimitWithTagKeys(com.infiniteautomation.mango.db.query.ConditionSortLimitWithTagKeys) Select(org.jooq.Select) Record(org.jooq.Record) Common(com.serotonin.m2m2.Common) Name(org.jooq.Name) Set(java.util.Set) Field(org.jooq.Field) Collectors(java.util.stream.Collectors) List(java.util.List) Stream(java.util.stream.Stream) ASTNode(net.jazdw.rql.parser.ASTNode) SQLDataType(org.jooq.impl.SQLDataType) Entry(java.util.Map.Entry) Log(org.apache.commons.logging.Log) BatchBindStep(org.jooq.BatchBindStep) LogFactory(org.apache.commons.logging.LogFactory) RQLToConditionWithTagKeys(com.infiniteautomation.mango.db.query.RQLToConditionWithTagKeys) User(com.serotonin.m2m2.vo.User) ArrayList(java.util.ArrayList) ConditionSortLimitWithTagKeys(com.infiniteautomation.mango.db.query.ConditionSortLimitWithTagKeys) RQLToConditionWithTagKeys(com.infiniteautomation.mango.db.query.RQLToConditionWithTagKeys) Name(org.jooq.Name) Record(org.jooq.Record) Record1(org.jooq.Record1)

Example 97 with User

use of com.serotonin.m2m2.vo.User in project ma-core-public by infiniteautomation.

the class UserDao method saveHomeUrl.

public void saveHomeUrl(int userId, String homeUrl) {
    User old = getUser(userId);
    ejt.update("UPDATE users SET homeUrl=? WHERE id=?", new Object[] { homeUrl, userId });
    User user = getUser(userId);
    AuditEventType.raiseChangedEvent(AuditEventType.TYPE_USER, old, user);
    userCache.put(user.getUsername(), user);
}
Also used : User(com.serotonin.m2m2.vo.User)

Example 98 with User

use of com.serotonin.m2m2.vo.User in project ma-core-public by infiniteautomation.

the class UserDao method saveMuted.

public void saveMuted(int userId, boolean muted) {
    User old = getUser(userId);
    ejt.update("UPDATE users SET muted=? WHERE id=?", new Object[] { boolToChar(muted), userId });
    User user = getUser(userId);
    AuditEventType.raiseChangedEvent(AuditEventType.TYPE_USER, old, user);
    userCache.put(user.getUsername(), user);
}
Also used : User(com.serotonin.m2m2.vo.User)

Example 99 with User

use of com.serotonin.m2m2.vo.User in project ma-core-public by infiniteautomation.

the class UserDao method deleteUser.

public void deleteUser(final int userId) {
    User user = getTransactionTemplate().execute(new TransactionCallback<User>() {

        @Override
        public User doInTransaction(TransactionStatus status) {
            User user = get(userId);
            Object[] args = new Object[] { userId };
            ejt.update("UPDATE userComments SET userId=null WHERE userId=?", args);
            ejt.update("DELETE FROM mailingListMembers WHERE userId=?", args);
            ejt.update("DELETE FROM userEvents WHERE userId=?", args);
            ejt.update("UPDATE events SET ackUserId=null, alternateAckSource=? WHERE ackUserId=?", new Object[] { new TranslatableMessage("events.ackedByDeletedUser").serialize(), userId });
            ejt.update("DELETE FROM users WHERE id=?", args);
            return user;
        }
    });
    AuditEventType.raiseDeletedEvent(AuditEventType.TYPE_USER, user);
    countMonitor.decrement();
    if (handler != null)
        handler.notify("delete", user);
    // Update User In Session
    MangoSecurityConfiguration.sessionRegistry.exireSessionsForUser(user);
    userCache.remove(user.getUsername());
}
Also used : User(com.serotonin.m2m2.vo.User) TransactionStatus(org.springframework.transaction.TransactionStatus) TranslatableMessage(com.serotonin.m2m2.i18n.TranslatableMessage)

Example 100 with User

use of com.serotonin.m2m2.vo.User in project ma-core-public by infiniteautomation.

the class RealTimeDataPointValueCache method createPointHierarchy.

/**
 * Create a point hierarchy for this user out of all points they can read
 *
 * @param translations
 * @param user
 * @return
 */
private static PointHierarchy createPointHierarchy(Translations translations) {
    // Create a point hierarchy for the user.
    PointHierarchy ph = DataPointDao.instance.getPointHierarchy(true).copyFoldersOnly();
    List<DataPointVO> points = DataPointDao.instance.getDataPoints(DataPointExtendedNameComparator.instance, false);
    for (DataPointVO point : points) {
        ph.addDataPoint(point.getPointFolderId(), new DataPointSummary(point));
    }
    ph.parseEmptyFolders();
    return ph;
}
Also used : DataPointVO(com.serotonin.m2m2.vo.DataPointVO) DataPointSummary(com.serotonin.m2m2.vo.DataPointSummary) PointHierarchy(com.serotonin.m2m2.vo.hierarchy.PointHierarchy)

Aggregations

User (com.serotonin.m2m2.vo.User)281 DwrPermission (com.serotonin.m2m2.web.dwr.util.DwrPermission)163 ApiOperation (com.wordnik.swagger.annotations.ApiOperation)163 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)163 DataPointVO (com.serotonin.m2m2.vo.DataPointVO)123 RestProcessResult (com.serotonin.m2m2.web.mvc.rest.v1.message.RestProcessResult)119 ProcessResult (com.serotonin.m2m2.i18n.ProcessResult)99 ArrayList (java.util.ArrayList)97 TranslatableMessage (com.serotonin.m2m2.i18n.TranslatableMessage)95 HashMap (java.util.HashMap)46 NotFoundRestException (com.infiniteautomation.mango.rest.v2.exception.NotFoundRestException)45 PermissionException (com.serotonin.m2m2.vo.permission.PermissionException)41 List (java.util.List)36 ASTNode (net.jazdw.rql.parser.ASTNode)31 ResponseEntity (org.springframework.http.ResponseEntity)31 URI (java.net.URI)25 IOException (java.io.IOException)24 PointValueTime (com.serotonin.m2m2.rt.dataImage.PointValueTime)22 InvalidRQLRestException (com.infiniteautomation.mango.rest.v2.exception.InvalidRQLRestException)21 RestValidationFailedException (com.serotonin.m2m2.web.mvc.rest.v1.exception.RestValidationFailedException)20